多台服务器上利用 Docker Swarm 建立 RabbitMQ 集群
- 最好先阅读 单节点上用Docker模拟RabbitMQ集群
- 参考
- Settings
- 在同一个LAN中有三台xubuntu服务器,相互ping的到,且安装了同一版本的docker(可以在本地启动三个虚拟机来模拟,例如使用virtualbox等)
建立docker swarm
- 选择一台服务器作为swarm的manager,这里选择xubuntu1,并在上面执行如下命令
rabbit@xubuntu1:~$ docker info|grep Swarm Swarm: inactive
- 显示当前接待swarm 没有启动
- 查找本机IP,我的IP是10.80.28.46
rabbit@xubuntu1:~$ ifconfig
- 启动docker swarm,把IP换成你自己的
rabbit@xubuntu1:~$ docker swarm init --advertise-addr 10.80.28.46 Swarm initialized: current node (r8jvb4ecypflxigvsq3e32djn) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-5fg0xtlpp5dk1vu2oclvc7g90mwmmz2xx8g9978oz6obrz3dmq-1atxcwilmetc1uotcmq6waycq 10.80.28.46:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
- 上面显示了如何让工作节点加入这个swarm
To add a worker to this swarm...
,复制这条命令就好
- 上面显示了如何让工作节点加入这个swarm
- 在另外两个服务器中粘贴这条命令并执行
rabbit@xubuntu2:~$ docker swarm join --token SWMTKN-1-5fg0xtlpp5dk1vu2oclvc7g90mwmmz2xx8g9978oz6obrz3dmq-1atxcwilmetc1uotcmq6waycq 10.80.28.46:2377 This node joined a swarm as a worker.
rabbit@xubuntu3:~$ docker swarm join --token SWMTKN-1-5fg0xtlpp5dk1vu2oclvc7g90mwmmz2xx8g9978oz6obrz3dmq-1atxcwilmetc1uotcmq6waycq 10.80.28.46:2377 This node joined a swarm as a worker.
- 在manager服务器中确认新的两个workers已经加入
rabbit@xubuntu1:~$ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION r8jvb4ecypflxigvsq3e32djn * xubuntu1 Ready Active Leader 18.09.0 gjd1sgcoatku5n77276igbhjr xubuntu2 Ready Active 18.09.0 odrsofpel03khhgl3gs38yb08 xubuntu3 Ready Active 18.09.0