如何配对在同一图像的多个 docker 容器中运行的嵌入式 Hazelcast

Posted

技术标签:

【中文标题】如何配对在同一图像的多个 docker 容器中运行的嵌入式 Hazelcast【英文标题】:How to pair embedded Hazelcast running inside multiple docker container of same image 【发布时间】:2020-07-28 00:00:10 【问题描述】:

我有弹簧启动应用程序。我在这个网络应用程序中使用嵌入式嵌入式 Hazelcast。我在缓存中使用了大量可用数据。最初我只运行一个 docker 容器。现在,为了扩展响应,我启动了 3 个相同图像的 docker 容器。每个 docker 容器现在都在运行其嵌入式 Hazelcast。因此,一旦我点击刷新缓存,为请求提供服务的容器将只有最新数据,而其他两个将没有最新数据,除非并且直到不提供刷新请求。

问题:

由于所有三个容器都与 Hazelcast 一起运行,因此所有三个容器的 Hazelcast 都不同步。我需要同步容器内运行的所有 Hazelcast,以便一次刷新即可刷新所有三个容器 Hazelcast 上的缓存数据。

怎么做?

编辑:我正在使用 docker swarm。在一个 VM 中,我有两个容器,而在另一个 VM 中,我有一个具有相同映像的容器。 我发现通过<public-address-ip>可以实现,但目前没有尝试过。

【问题讨论】:

【参考方案1】:

您需要使您的 Hazelcast 实例形成一个集群。具体如何操作取决于您运行的环境。请查看Hazelcast Reference Manual Discovery Mechanisms 了解详情。

如果你在 Docker Swarm 中运行,你应该使用Docker Swarm Discovery SPI Plugin。

【讨论】:

以上是关于如何配对在同一图像的多个 docker 容器中运行的嵌入式 Hazelcast的主要内容,如果未能解决你的问题,请参考以下文章

需要使用远程 API 运行同一镜像的多个容器,同一 docker 服务器中的相同配置

如何知道 docker 容器退出的原因?

是否可以在 Docker 上运行多个容器来运行公共服务?

在Docker中安装MarkLogic的2节点群集

如何打开多个终端进入Docker容器

docker容器和虚拟机的比较