这里写目录标题
1. docker-compose.yml nsq
1.1. 说明
nsq 需要启动至少 3 个端:
- nsqlookupd: nsqlookupd 管理拓扑信息, 客户端根据特定的 topic 查询 nsqlookupd 来发现 nsqd 生产者及 nsqd 广播 topic 和 channel 信息。
- nsqd(可多个。一般集群里面是多个。): nsqd 接收、队列、发送消息到客户端。
- nsqadmin: 提供一个浏览器可访问的 web 页面, 用于实时查看集群状态和执行一些管理操作。
为方便理解, 接下来讲个形象的例子。
- nsqd 可以看作是一个人。
- nsqlookupd 是公安局的户籍办。
- nsqadmin 是人口普查办公室。
每产生一个 nsqd, 都要连到 nsqlookupd 汇报状态, 及定时发送心跳包。对应的: 每个人出生或者过世, 都要到户籍办去上户或销户, 而平时有生之年, 你可能还要偶尔去去户籍办, 出个户籍证明之类的。
管理者可以通过 nsqadmin 来查看统计数据, 同时做一些管理操作。对应的, 人品普查的时候, 可以通过公安局来查看, 各地区的人口数、性别比例、年龄分布等等。
更多 nsq 介绍见: https://blog.csdn.net/wan212000/article/details/122342369
1.2. tree
[root@localhost nsq]# tree
.
|-- docker-compose.yml
|-- restart_nsq.sh
1 directory, 3 files
1.3. docker-compose.yml
其中 10.200.7.21
是远程 IP 地址(nsq 所在的机器)。
version: '2'
services:
nsqlookupd:
container_name: "nsqlookupd"
image: nsqio/nsq
command: /nsqlookupd -http-address 0.0.0.0:4161 -tcp-address 0.0.0.0:4160 -broadcast-address=10.200.7.21
networks:
- nsq-network
hostname: nsqlookupd
ports:
- "4161:4161"
- "4160:4160"
restart: always
nsqd1:
container_name: "nsqd1"
image: nsqio/nsq
command: /nsqd -tcp-address 0.0.0.0:4150 -http-address 0.0.0.0:4151 -lookupd-tcp-address=10.200.7.21:4160 -broadcast-address=10.200.7.21
depends_on:
- nsqlookupd
hostname: nsqd1
networks:
- nsq-network
ports:
- "4151:4151"
- "4150:4150"
restart: always
nsqd2:
container_name: "nsqd2"
image: nsqio/nsq
command: /nsqd -tcp-address 0.0.0.0:4250 -http-address 0.0.0.0:4251 -lookupd-tcp-address=10.200.7.21:4160 -broadcast-address=10.200.7.21
depends_on:
- nsqlookupd
hostname: nsqd2
networks:
- nsq-network
ports:
- "4251:4251"
- "4250:4250"
restart: always
nsqd3:
container_name: "nsqd3"
image: nsqio/nsq
command: /nsqd -tcp-address 0.0.0.0:4350 -http-address 0.0.0.0:4351 -lookupd-tcp-address=10.200.7.21:4160 -broadcast-address=10.200.7.21
depends_on:
- nsqlookupd
hostname: nsqd3
networks:
- nsq-network
ports:
- "4351:4351"
- "4350:4350"
restart: always
nsqadmin:
container_name: "nsqadmin"
image: nsqio/nsq
command: /nsqadmin --lookupd-http-address=10.200.7.21:4161
depends_on:
- nsqlookupd
hostname: nsqadmin
networks:
- nsq-network
ports:
- "4171:4171"
restart: always
networks:
nsq-network:
driver: bridge
1.4. restart_nsq.sh
#!/bin/sh
sudo docker stop nsqlookupd
sudo docker stop nsqd
sudo docker stop nsqadmin
sudo docker rm nsqlookupd
sudo docker rm nsqd
sudo docker rm nsqadmin
sudo docker-compose up -d
sudo docker ps -a
1.5. data 启动版
nsqlookupd -http-address 0.0.0.0:4161 -tcp-address 0.0.0.0:4160 -broadcast-address=10.200.7.21
nsqadmin --lookupd-http-address=10.200.7.21:4161
nsqd -tcp-address 0.0.0.0:4150 -http-address 0.0.0.0:4151 --data-path=/home/wanchuan/docker-composes/nsq/data1 -lookupd-tcp-address=10.200.7.21:4160 -broadcast-address=10.200.7.21
nsqd -tcp-address 0.0.0.0:4250 -http-address 0.0.0.0:4251 --data-path=/home/wanchuan/docker-composes/nsq/data2 -lookupd-tcp-address=10.200.7.21:4160 -broadcast-address=10.200.7.21
nsqd -tcp-address 0.0.0.0:4350 -http-address 0.0.0.0:4351 --data-path=/home/wanchuan/docker-composes/nsq/data3 -lookupd-tcp-address=10.200.7.21:4160 -broadcast-address=10.200.7.21
#!/bin/sh
sudo docker stop nsqlookupd
sudo docker stop nsqd
sudo docker stop nsqd1
sudo docker stop nsqd2
sudo docker stop nsqd3
sudo docker stop nsqadmin
sudo docker rm nsqlookupd
sudo docker rm nsqd
sudo docker rm nsqd1
sudo docker rm nsqd2
sudo docker rm nsqd3
sudo docker rm nsqadmin
rm -rf data1/*
rm -rf data2/*
rm -rf data3/*
rm -rf nsqd.dat
sudo docker-compose up -d
sudo docker ps -a