docker-compose.yml nsq

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云满笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值