我有一个基于 java 的客户端应用程序,它希望使用“一些”负载平衡策略与旧后端应用程序的多个实例通信。此后端应用程序的实例详细信息(IP、端口和活动?)存储在数据库表中。对于给定的实例,客户端应用程序建立一个套接字连接,发送命令并接收响应。这些套接字连接是长期存在的。
为了能够利用所有可用的实例,我计划在客户端执行以下操作:
- 将健康实例读取到地图
- 以循环方式打开连接或使用现有的 Socket 连接
- 在给定的套接字连接上发送请求。如果请求失败,则将此实例标记为不健康,这样它就不会被再次拾取。同时在另一个连接上重试请求
- 在工作线程中定期从 #1 更新地图
是否有任何工具/库可以实现这一目标?Apache Camel 出现在 Google 搜索中(还有 Ribbon 和 Hystrix),但我不完全确定如何在这种情况下适应它。请帮忙。