是否有可能在部署到Cloud Foundry的应用程序的多个实例之间进行通信? 我检查了Cloud Foundry API,但我找不到任何关于这个主题的提及。 我已经尝试过Hazelcast但不幸的是,我的Cloud Foundry提供商不支持多播,所以我必须知道每个其他实例的IP地址才能连接。
我想我不可能是唯一对此感兴趣的人。
答案 0 :(得分:2)
我建议您使用消息传递服务(如RabbitMQ)在应用程序实例之间进行通信。您还可以将共享信息存储在数据库服务或文件系统外的任何远程位置。
在云中构建需要此类通信的应用程序通常不是一个好习惯。理想情况下,每个实例都应该能够独立运行并且是无状态的。
答案 1 :(得分:0)
如果您可以以编程方式访问IP地址,则可以构建Hazelcast配置对象并使用它来设置群集。然后,您可以依赖tcp-ip discovery。
伪代码:
List<String> ipAddresses = cloudfoundry.getIps()
Config config = new Config();
config.getJoinConfig().getIpDiscovery().addMembers(ipAddresses)
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
您甚至可以加载现有的Hazelcast XML配置,并使用XmlConfigBuilder动态增强它。