继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

消息中间件之NSQ

白小九jiu
关注TA
已关注
手记 2
粉丝 1
获赞 0

NSQ被设计为:

  • 支持高可用和消除单点故障的拓扑结构

  • 实现更强的消息交付保证

  • 单个进程的内存占用(通过将一些信息持久化到磁盘)

  • 极大地简化生产者和消费者的配置要求

  • 提供直接升级的路径

  • 提高效率

简化的配置和管理

https://img3.mukewang.com/5d005c3d0001631604640302.jpghttps://img.mukewang.com/5d005c9200013b6904360278.jpg

 nsqd 

单个nsqd实例次性可以处理多个数据流。每个数据流被称为一个“topic”,每个topic拥有一个或多个“channels”。每个channel都会收到从topic发出的所有message的副本(a copy)。通常一个channel是为下流提供消费topic内信息的服务。

topics 和channels并不是提前设置好的。topic是在第一次使用时被发布出来,或者在有channel订阅时被命名的。channel也是同样。

topic和channel都是独自缓存数据的,这防止了存在有缓慢的消费者而导致其他channel堵塞消息的情况。

一个channel通常具有多个消费者连接。如果所有的消费者都在同一个分区里的话,那么从channel分发过来的message将会随机落到每个接受数据流的consumer那里。

message是被topic多路广播的到channel的,channel会将接受到的message随机分发给所有连接了它的consumers,也就是每个consumer只能收到channel通道里的一部分数据。

nsqlookupd

nsqlookupd是为nsqd提供帮助consumer寻找应该订阅的topic的路径服务的帮助程序。根据配置文件,consumer和producer只需要知道去哪里连接nsqlookupd实例就好了,consumer和producer之间是相互独立无需知道对方存在的,这减少了维护的复杂性。

nsqd对nsqlookupd有一个长期的TCP连接,用来通知nsqd的定时的状态,同过这个数据,nsqlookupd会决定向consumer展示哪些nsqd的地址。而consumer则将公开自己的HTTP/lookup 端点。


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP