运行带有hazelcast成员的spring boot应用程序。在本地计算机上运行应用程序的多个实例时,hazelcast成员能够彼此发现。我想知道如何在pcf上部署的应用程序实例之间实现相同的行为。仅推送配置了2个实例的应用程序没有解决。已阅读doc的容器到容器通信,但是它似乎适用于彼此通信的不同应用程序,而不适用于同一实例的不同实例。
答案 0 :(得分:1)
容器网络容器是您最好的选择。它允许您在两个不同的应用程序之间或同一应用程序的实例之间进行通话。
如果您尝试使用多播,我认为这行不通。不过,您可以在应用程序和应用程序实例之间打开TCP和UDP连接。默认情况下,所有端口和协议都被阻止,因此请确保使用cf add-network-policy
打开正确的协议/端口组合。
https://docs.pivotal.io/pivotalcf/2-4/devguide/deploy-apps/cf-networking.html#add-policy
要访问应用程序的不同实例,可以使用多语言服务发现功能。它基本上为X.<app-name>.apps.internal
提供DNS。其中X
是实例编号。
有关详细信息,请参见此处的“群集”示例。
https://www.cloudfoundry.org/blog/polyglot-service-discovery-container-networking-cloud-foundry/
希望有帮助!