[心得] 用 Go 語言實現 Pub/Sub 模式

軟工

11100

相信大家都知道發布 / 訂閱模式,開發者可以透過第三方開源工具像是 Redis, NSQ 或
Nats 等來實現訂閱機制,本篇則是會教大家如何用 Go 語言寫出一個單機版本的
Pub/Sub 模式,在單一系統內非常輕量級,且不需要靠第三方服務就可以輕易實現。底下
會直接用單一訂閱 Topic 機制來撰寫 Publisher 及 Subscriber。

00:00 為什麼要用 Go 語言實現 Pub/Sub 模式
01:00 Subscriber 訂閱訊息
05:14 Publisher 發送訊息
07:19 Unsubscribe 取消訂閱
10:01 實際範例
11:14 使用 goleak 偵測代碼是否有 leaks
15:18 心得

部落格: https://bit.ly/pub-sub-in-go
程式碼: https://bit.ly/3P0WzXN
影片: https://www.youtube.com/watch?v=blaYXmmA8zw


PS. 面試來討論這題,應該可以有不錯的交流?

--
AppleBoy Blog: http://blog.wu-boy.com

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.110.136.13 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1651398064.A.707.html
devilkool1樓有點興趣,先推再看 05/01 17:54
shaomi2樓推 來研究 05/01 17:56
gofigure3樓蠻好奇怎麼會用time sleep而不是用wait group 05/01 19:02
gofigure4樓有些細節還是可以看出來一些東西 ... 05/01 19:02
wahaha2795樓 05/01 19:18
lovdkkkk6樓模式本身跟實作細節還好 使用情境可以問很多東西 不過那 05/01 20:51
lovdkkkk7樓些直接拿 redis 等工具的做法去問也一樣 還比較好聚焦 05/01 20:53
YorkLai8樓推推 05/01 23:02
本人9樓@gofigure main.go 用來 Demo 而已,就沒有進一步考慮 05/02 07:16
本人10樓需要在 main 結束前等待 Message 處理完畢。 05/02 07:16
本人11樓做服務還是要把 Graceful Shutdown 考慮進去 05/02 07:18
ThisRay13樓 05/02 09:41
popcorny14樓推! 05/03 23:11
blazers0815樓 05/05 15:30
piece60116樓這不是傳說中的 Appleboy 嗎 05/10 14:33
更多心得
[心得] Line TW / Vewd
[心得] 彩虹科技 / AmazingTalker Back-end Developer
[心得] 後端工程師面試心得
[心得] 非本科自學轉職分享
[心得] android developer 面試 恒遠/AILAB人工智慧/MEGA/crypto.co
[心得] 黑特 瑪黑家居選物
[心得] 實習1.5日逃跑心得分享
[心得] 轉職3年後面試心得分享