我们已经在网上找到了一些尝试在Docker Swarm中使用Hazelcast的例子,但到目前为止,我们还没有能够复制缓存。每个群节点都有自己的实例。我们正在使用SpringCache来抽象配置,但是我们还没有想出一个解决方案。在我们在这里投入更多之前,我想看看这是否可能,或者是否有人成功地实现了这一点。
需求是在Docker Swarm中运行的具有分布式缓存的REST端点。
发布于 2020-05-28 18:47:47
在Docker Swarm中运行Hazelcast集群是可行的,您只需要在成员上配置正确的网络接口。
请参阅这篇描述非编排Docker环境中的配置的博客文章:https://hazelcast.com/blog/configuring-hazelcast-in-non-orchestrated-docker-environments/
如果您不想使用第三方发现插件(或自己编写),请使用TCP-IP加入机制,在该机制中,您可以显式列出成员的IP地址。
配置中的关键是:成员必须知道它的公共地址,在这个地址下它对其他成员是可见的。您可以将公共地址配置为系统属性hazelcast.local.publicAddress。该值也可以包含端口号-例如
-Dhazelcast.local.publicAddress=192.168.1.12:11701发布于 2021-05-26 17:11:18
为此,您可以将服务的Swarm DNS配置更改为循环调度(dnsrr),以便dns解析将返回服务副本的所有IP地址,而不是随机返回一个IP地址。然后,您可以在hazelcast集群配置中设置所有IP。
完整的解决方案在这里描述:https://antoine-thecoon.medium.com/deploy-hazelcast-cluster-in-a-replicated-swarm-service-97558db5f98
https://stackoverflow.com/questions/62051233
复制相似问题