Cloud Foundry中实例之间的通信

问题描述 投票:1回答:2

是否可以在部署到Cloud Foundry的应用程序的多个实例之间进行通信? 我检查了Cloud Foundry API,但没有找到关于此主题的任何提及。 我已经尝试过Hazelcast,但是不幸的是,我的Cloud Foundry提供程序不支持多播,因此我必须知道其他所有实例的IP地址才能进行连接。

我想我不是唯一对此感兴趣的人。

cloudfoundry hazelcast
2个回答
2
投票

我建议您使用消息传递服务(如RabbitMQ)在应用程序实例之间进行通信。 您还可以将共享信息存储在数据库服务或文件系统外部的任何远程位置。

通常,在云中构建需要此类通信的应用程序不是一个好习惯。 理想情况下,每个实例都应能够独立运行且无状态。


0
投票

如果可以以编程方式访问IP地址,则可以构建Hazelcast Config对象,并使用该对象来设置群集。 然后,您可以依靠tcp-ip发现。

伪代码:

List<String> ipAddresses = cloudfoundry.getIps()
Config config = new Config();
config.getJoinConfig().getIpDiscovery().addMembers(ipAddresses)
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);

您甚至可以使用XmlConfigBuilder加载现有的Hazelcast XML配置并即时对其进行增强。

© www.soinside.com 2019 - 2024. All rights reserved.