小编mag*_*omy的帖子

使用TCPIP在多节点docker环境中进行Hazelcast

我目前正在努力解决以下问题:

我有一个Java EE应用程序,它应该能够在集群中运行(实际上是这样).对于节点之间的数据交换,我使用Hazelcast 3.3.3.由于我们的客户害怕UDP,我们使用TCP.因此,我为每个节点配置3个hazelcast参数:要使用的网络接口,端口和群集成员.在现实生活中(不是码头环境)一切正常.现在我想将我的Java EE服务器放入docker容器(每个节点一个),并通过Hazelcast链接它们.

我做的是:

在运行docker容器的主机上,我创建了几个虚拟网络接口(172.21.0.X).对于每个docker容器,我提供了网络映射,如-p 172.21.0.X:5190:5190(5190是我用于Hazelcast的端口)

在我的容器内的Java EE应用程序中,我配置了hazelcast来监听接口172.21.0.X,端口5190成员172.21.0.X:5190,......现在的问题是:docker将分配一个内部IP号到每个投币器.事先我无法确定哪个IP号码码头会分配.它绝对不是我想要使用的IP(172.21.0.X).Hazelcast启动并告诉我:找不到匹配的界面.当然不是.Hazelcast将检查docker容器的IP接口,类似于172.4.XX. 这不适合我给hazelcast的配置(使用172.21.XX).

到目前为止,似乎无法指定docker容器的内部IP号.我可以从正在运行的容器中查询它,但由于我需要在启动容器之前完成Java EE服务器的配置,所以为时已晚.

有什么提示吗?是否可以使用TCPIP运行Hazelcast?

tcp-ip hazelcast docker

6
推荐指数
2
解决办法
8489
查看次数

标签 统计

docker ×1

hazelcast ×1

tcp-ip ×1