PTT推薦

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

看板Soft_Job標題[心得] 用 Go 語言實現 Pub/Sub 模式作者
appleboy46
(小惡魔)
時間推噓10 推:10 噓:0 →:6

相信大家都知道發布 / 訂閱模式,開發者可以透過第三方開源工具像是 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留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.110.136.13 (臺灣)
PTT 網址

devilkool05/01 17:54有點興趣,先推再看

shaomi05/01 17:56推 來研究

gofigure05/01 19:02蠻好奇怎麼會用time sleep而不是用wait group

gofigure05/01 19:02有些細節還是可以看出來一些東西 ...

wahaha27905/01 19:18

lovdkkkk05/01 20:51模式本身跟實作細節還好 使用情境可以問很多東西 不過那

lovdkkkk05/01 20:53些直接拿 redis 等工具的做法去問也一樣 還比較好聚焦

YorkLai05/01 23:02推推

appleboy4605/02 07:16@gofigure main.go 用來 Demo 而已,就沒有進一步考慮

appleboy4605/02 07:16需要在 main 結束前等待 Message 處理完畢。

appleboy4605/02 07:18做服務還是要把 Graceful Shutdown 考慮進去

appleboy4605/02 07:18可以參考這篇文章: https://bit.ly/3F8QiVq

ThisRay05/02 09:41

popcorny05/03 23:11推!

blazers0805/05 15:30

piece60105/10 14:33這不是傳說中的 Appleboy 嗎