为了账号安全,请及时绑定邮箱和手机立即绑定

消息中间件之NSQ

NSQ被设计为:

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

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

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

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

  • 提供直接升级的路径

  • 提高效率

简化的配置和管理

https://img1.sycdn.imooc.com//5d005c3d0001631604640302.jpghttps://img1.sycdn.imooc.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 端点。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消