撸了一个 golang 的 channel 的 pub-sub 的实现,欢迎大家使用与反馈

2017-03-07 13:47:34 +08:00
 myself659410

https://github.com/myself659/ChanBroker

1941 次点击
所在节点    Go 编程语言
10 条回复
zwh8800
2017-03-07 13:53:59 +08:00
如果能分布式就更好了
myself659410
2017-03-07 14:20:58 +08:00
@zwh8800 分布式可以直接上 kafka ,这个主要是方便 goroutine 之间通信
gwind
2017-03-07 16:38:53 +08:00
不错,还可以搞下 mangos
zeromq, nanomsg, https://github.com/go-mangos/mangos
fyibmsd
2017-03-07 17:20:24 +08:00
和 nsq 有什么不同
myself659410
2017-03-07 17:35:58 +08:00
@fyibmsd
主要是应用场景不一样, nsq 应用于进程级 pub-sub 通信,一般有三种类型进程:
1. nsqd 守护进程
2. consumer 进程
3. producer 进程

chanbroker 应用于同一个进程内 goroutine 的 pub-sub 通信,通过 channel 传输 interface (支持多种数据),有三种类型 goroutine :
1. Producer
2. Consumer(Subscriber)
3. Broker
mengzhuo
2017-03-08 07:20:20 +08:00
其实还有 nanomsg
myself659410
2017-03-08 09:27:28 +08:00
@mengzhuo 写了多年 c ,竟然不知道 nanomsg ,涨姿势了
mengskysama
2017-03-08 10:32:14 +08:00
不错。不知道我有没有理解对, stop 方法如果调用的时候没有处理干净就会导致一些 channel 永远不能关闭。
myself659410
2017-03-08 11:54:22 +08:00
@mengskysama 谢谢提醒,再看了一下代码虽然有条件触发关闭,在一定情况下,确实存在一些 channel 永远不能关闭
tcpdumpp
2017-03-08 13:42:42 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/345559

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX