我希望这将是一个简单的,只需在第二个实例的docker-compose.yml
文件中使用以下代码段
- DOCKER_VERNEMQ_DISCOVERY_NODE=<ip address of the first instance>
但这似乎不起作用。
第二个实例的日志确认它正在尝试集群:
13:56:09.795 [info] Sent join request to: 'VerneMQ@<ip address of the first instance>'
13:56:16.800 [info] Unable to connect to 'VerneMQ@<ip address of the first instance>'
虽然第一个实例的日志根本没有显示任何内容。
在第二个实例中,我可以确认端点是可访问的:
$ docker exec -it vernemq /bin/sh
$ curl <ip address of the first instance>:44053
curl: (56) Recv failure: Connection reset by peer
然后在第一个实例的日志中,我看到一个完全预期的错误,并确认我已经到达第一个实例
13:58:33.572 [error] CRASH REPORT Process <0.3050.0> with 0 neighbours crashed with reason: bad argument in vmq_cluster_com:process_bytes/3 line 142
13:58:33.572 [error] Ranch listener {{172,19,0,2},44053} terminated with reason: bad argument in vmq_cluster_com:process_bytes/3 line 142
这可能与从 docker 容器中看到的 ip 地址是172.19.0.2
而外部的10. ...
.
还尝试添加第一个实例的主机名known_hosts
无济于事。
请指教。
我正在使用 erlio/docker-vernemq:1.10.0
$ docker --version
Docker version 19.03.13, build 4484c46d9d
$ docker-compose --version
docker-compose version 1.27.2, build 18f557f9