我们在网上找到了一些尝试使用Hazelcast与Docker Swarm的例子,但到目前为止,我们还没有能够复制缓存。 每个Swarm节点都有自己的实例。 我们正在使用SpringCache来抽象配置,但我们还没有想出解决方案。 在我们在这里投入太多之前,我想看看这是否可能,或者是否有人已经成功实现了这一点。
要求是一个运行在Docker Swarm中的REST端点,有一个分布式缓存。
在Docker Swarm中运行Hazelcast集群是可能的,你只需要在成员上配置正确的网络接口。
请看这篇博文,描述在非编排的Docker环境中的配置。https:/hazelcast.comlogconfiguring-hazelcast-in-non-orchestrated-docker-environments。
如果你不想使用第三方发现插件(或者自己写),可以使用TCP-IP加入机制,在这里你可以明确列出成员的IP地址。
配置中最关键的是:成员必须知道它的公有地址,在这个公有地址下,其他成员可以看到它。你可以将公有地址配置为一个系统属性。hazelcast.local.publicAddress
. 这个值也可以包含端口号,例如
-Dhazelcast.local.publicAddress=192.168.1.12:11701