我有 Spring Boot 应用程序。我在此 Web 应用程序中使用嵌入式 Hazelcast。我使用缓存中的大量可用数据。最初我只运行一个 docker 容器。现在,为了扩展响应,我启动了 3 个具有相同镜像的 docker 容器。现在,每个 docker 容器都运行其嵌入式 Hazelcast。因此,一旦我点击刷新缓存,提供请求的容器将仅拥有最新数据,而其他两个容器将不会拥有最新数据,除非刷新请求未被提供。
问题:
由于所有三个容器都与 Hazelcast 一起运行,因此所有三个容器的 Hazelcast 并不同步。我需要同步容器内运行的所有 Hazelcast,以便一次刷新就可以刷新所有三个容器 Hazelcast 上的缓存数据。
怎么做?
编辑:我正在使用 docker swarm。在一个虚拟机中,我有两个容器,在另一台虚拟机上,我有一个相同镜像的容器。
我通过<public-address-ip>
发现可以实现,但目前还没尝试过。
最佳答案
您需要使 Hazelcast 实例形成一个集群。如何执行取决于您运行的环境。检查 Hazelcast Reference Manual Discovery Mechanisms了解详情。
如果你在 Docker Swarm 中运行,你应该使用 Docker Swarm Discovery SPI Plugin .
关于java - 如何配对在同一图像的多个 docker 容器内运行的嵌入式 Hazelcast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61221569/