spring-boot - 相同应用程序实例之间的 Pivotal Cloud Foundry p2p 通信
问题描述
以 hazelcast 作为成员运行 spring boot 应用程序。在本地机器上运行多个应用程序实例时,hazelcast 成员能够发现彼此。我想知道如何在部署在 pcf 上的应用程序实例之间实现相同的行为。仅推送配置了 2 个实例的应用程序并没有成功。已阅读有关容器到容器通信的文档,但它似乎适用于相互通信的不同应用程序,而不适用于同一应用程序的不同实例。
解决方案
容器到容器网络是您最好的选择。它允许您在两个不同的应用程序之间或同一应用程序的实例之间进行交谈。
如果您尝试使用多播,我认为这行不通。不过,您可以在您的应用程序和应用程序实例之间打开 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
. X
实例编号在哪里。
有关详细信息,请参阅此处的集群示例。
https://www.cloudfoundry.org/blog/polyglot-service-discovery-container-networking-cloud-foundry/
希望有帮助!
推荐阅读
- jquery - 带有 POSTMAN 的 asp.net 核心 API 工作正常,但使用 jquery ajax 不起作用?
- docker - Artifactory oss 与 Docker 一起安装
- ruby - 无法构建 gem 原生扩展(安装 ruby-debug-ide-0.7.1.beta3.gem)
- java - 排除 Maven 中的传递阴影依赖
- java - 使用 OSGI 将不同的提供者和消费者链接到一个消费者
- react-native - 如何为仅支持 Android 的现有 React Native 应用程序添加 ios 支持?
- angularjs - 我读到“使用严格”错误,但它没有说明究竟是什么导致了错误
- python - 我可以使用python根据使用字典的输入收入来计算税收吗?
- html - ag-Grid 以编程方式更改列的自动高度
- c - "make: *** No rule to make target" 使用 Unity 单元测试