Skip to content
henry.huang edited this page Jul 17, 2020 · 7 revisions

nsq:

用户案例:

  • 头条
  • 有赞

有赞版本:

架构特征:

pub/sub 模型:

生产者:

  • 必须直连nsqd去投递message

消费者:

  1. 消费者直连nsqd,这是最简单的方式,缺点是nsqd服务无法实现动态伸缩了(当然,自己去实现一个也是可以的)
  2. 消费者通过http查询nsqlookupd获取该nsqlookupd上所有nsqd的连接地址,然后再分别和这些nsqd建立连接(官方推荐的做法),但是客户端会不停的向nsqlookupd查询最新的nsqd地址目录(不喜欢用http轮询这种方式…)

nsqd:

  • nsqd是nsq里面保存数据的服务
  • 真正干活的就是这个服务,它主要负责message的收发,队列的维护。nsqd会默认监听一个tcp端口(4150)和一个http端口(4151)以及一个可选的https端口

nsqadmin:

  • WEB UI,用来汇集集群的实时统计,并执行不同的管理任务

nsqlookupd:

  • nsqlookupd就是中心管理服务,它使用tcp(默认端口4160)管理nsqd服务,使用http(默认端口4161)管理nsqadmin服务

install:

admin 管理后台:

部署成功测试:

  • 4161 端口映射的宿主机端口.
# 服务验证:
test.nsq:
	#  container port 4161 端口映射
	curl http://127.0.0.1:14161/ping

消息 pub:

消息 sub:

ref:

admin ui:

  • 非常简陋, 只是集群的状态展示.
Clone this wiki locally