消息队列 NSQ 源码学习笔记 (五)

1 · huber · Sept. 12, 2019, 11:08 a.m.
NSQ 的拓扑结构和生产消费端配置 单机模式部署 NSQD 是可以脱离 nsqlookup 做单机部署的。 由于 nsqd 足够轻量,可以把服务部署在消息发布的服务器上,加快 pub 消息的速度,也能兼顾消费端消息的分发 集群模式 NSQD 是一个SPOF的系统,每个服务可以独立部署。当采用集群模式时,建议开启nsqlookup服务,用于管理多个 nsqd 的服务 一般的消息队列都会提供rebalance 的功能,nsqd 是没有的。 不过可以通过nsq_to_nsq 做消息的复制,做服务的主备,当服务挂机后,可以切换到另外的服务器做消费。(中间channel 不会切换,因此可能会重复消费,或者丢一定消息) nsqd 正常情况下,如果配置合理,消息是不会落地的。如果需要落地,可以使用nsq_to_file, 新建一个channel订阅 相关topic, 把消息落地到硬盘。 在集群模式下,可以部署多个 nsqlookupd 服务, 这些服务之间是互相没有依赖的,nsqd 在做消息广播的时候,会对每一个nsqlookupd的服务遍历一次,更新服务上的信息 生产 官方建议的生产方式,是通过 ...