0

我有一个基于 java 的客户端应用程序,它希望使用“一些”负载平衡策略与旧后端应用程序的多个实例通信。此后端应用程序的实例详细信息(IP、端口和活动?)存储在数据库表中。对于给定的实例,客户端应用程序建立一个套接字连接,发送命令并接收响应。这些套接字连接是长期存在的。

为了能够利用所有可用的实例,我计划在客户端执行以下操作:

  1. 将健康实例读取到地图
  2. 以循环方式打开连接或使用现有的 Socket 连接
  3. 在给定的套接字连接上发送请求。如果请求失败,则将此实例标记为不健康,这样它就不会被再次拾取。同时在另一个连接上重试请求
  4. 在工作线程中定期从 #1 更新地图

是否有任何工具/库可以实现这一目标?Apache Camel 出现在 Google 搜索中(还有 Ribbon 和 Hystrix),但我不完全确定如何在这种情况下适应它。请帮忙。

4

1 回答 1

0

你在这里描述的是一个服务连接池

由于(我认为)您的遗留系统需要自定义代码来连接到遗留后端,因此您需要自己编写连接代码,但您可以看看是否可以利用这一点:

https://camel.apache.org/manual/latest/servicepool.html

您可能会考虑编写自己的 apache camel 组件,在这种情况下(一旦您编写了组件),您可以编写 apache camel 端点direct(mylegacybackend:...),让组件为您完成繁重的工作(服务连接池)。

它还取决于您的组件是生产者(推送)还是消费者(拉取)。

阅读该链接,看看它是否适合。祝你好运。

于 2019-12-05T12:02:22.073 回答