如何在两台不同的服务器上部署集群

docker run -d
–name emqx1
-v /root/docker/emq/conf/acl.conf:/opt/emqx/etc/acl.conf -v /root/docker/emq/conf/emqx_auth_mysql.conf:/opt/emqx/etc/plugins/emqx_auth_mysql.conf
-e “EMQX_NODE_NAME=emqx@10.12.15.207
-e “EMQX_HOST=10.12.15.207”
-e “EMQX_CLUSTER__DISCOVERY=static”
-e “EMQX_CLUSTER__STATIC__SEEDS=emqx@10.12.15.207,emqx@10.12.15.208
-e “EMQX_NODE__COOKIE=abc”
-e “WAIT_FOR_ERLANG=60”
-p 1883:1883
-p 8083:8083
-p 8084:8084
-p 8883:8883
-p 18083:18083
-p 4369:4369
-p 6369:6369
emqx/emqx:v4.1.0

docker run -d
–name emqx2
-v /root/docker/emq/conf/acl.conf:/opt/emqx/etc/acl.conf -v /root/docker/emq/conf/emqx_auth_mysql.conf:/opt/emqx/etc/plugins/emqx_auth_mysql.conf
-e “EMQX_NODE_NAME=emqx@10.12.15.208
-e “EMQX_HOST=10.12.15.208”
-e “EMQX_CLUSTER__DISCOVERY=static”
-e “EMQX_CLUSTER__STATIC__SEEDS=emqx@10.12.15.207,emqx@10.12.15.208
-e “EMQX_NODE__COOKIE=abc”
-e “WAIT_FOR_ERLANG=60”
-p 1883:1883
-p 8083:8083
-p 8084:8084
-p 8883:8883
-p 18083:18083
-p 4369:4369
-p 6369:6369
emqx/emqx:v4.1.0

这样子部署集群有问题

推荐:

  1. 让 docker 处于一个 network 里面会好一点。
  2. 使用 docker-compose 来管理,而不是单一的 docker 命令行。

百度找到对应的资料:多个docker-compose配置连接同一网络(networks) | 雨园博客

使用docker-compose连接两台服务器时,网络配置应该如何设置?
这样问问 AI也行,重点就是要有一个 external 的 network

PS. 注意到你用的v4.1.0,这个版本已经过了维护周期了,有的 bug 也没有修复,建议你试用升级到最新版本(v5.8.1)

那这样的话,就是在一个服务器上部署集群了

https://docs.docker.com/compose/how-tos/networking/#multi-host-networking