作者appleboy46 (小恶魔)
看板Soft_Job
标题[心得] 用 Go 语言实现 Pub/Sub 模式
时间Sun May 1 17:40:59 2022
相信大家都知道发布 / 订阅模式,开发者可以透过第三方开源工具像是 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://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1651398064.A.707.html
1F:推 devilkool: 有点兴趣,先推再看 05/01 17:54
2F:推 shaomi: 推 来研究 05/01 17:56
3F:推 gofigure: 蛮好奇怎麽会用time sleep而不是用wait group 05/01 19:02
4F:→ gofigure: 有些细节还是可以看出来一些东西 ... 05/01 19:02
5F:推 wahaha279: 酷 05/01 19:18
6F:推 lovdkkkk: 模式本身跟实作细节还好 使用情境可以问很多东西 不过那 05/01 20:51
7F:→ lovdkkkk: 些直接拿 redis 等工具的做法去问也一样 还比较好聚焦 05/01 20:53
8F:推 YorkLai: 推推 05/01 23:02
9F:→ appleboy46: @gofigure main.go 用来 Demo 而已,就没有进一步考虑 05/02 07:16
10F:→ appleboy46: 需要在 main 结束前等待 Message 处理完毕。 05/02 07:16
11F:→ appleboy46: 做服务还是要把 Graceful Shutdown 考虑进去 05/02 07:18
13F:推 ThisRay: 推 05/02 09:41
14F:推 popcorny: 推! 05/03 23:11
15F:推 blazers08: 推 05/05 15:30
16F:推 piece601: 这不是传说中的 Appleboy 吗 05/10 14:33