作者: | 来源:互联网 | 2023-09-18 19:57
我有一个基于Java的客户端应用程序,它希望使用“ some ”负载平衡策略与旧版后端应用程序的多个实例进行对话。该后端应用程序的实例详细信息(IP,PORT和active?)存储在DB表中。对于给定的实例,客户端应用程序建立套接字连接,发送命令并接收响应。这些套接字连接是长期的。
为了能够利用所有可用实例,我计划在客户端中执行以下操作:
- 将健康实例读取到地图上
- 以循环方式打开连接或使用现有的Socket连接
- 在给定的套接字连接上发送请求。如果请求失败,则将该实例标记为不正常,以便
它不会再次被拾取。同时在另一个上重试该请求
连接
- 在工作线程中,定期从#1更新地图
是否有任何工具/库可以实现这一目标? Apache Camel出现在Google搜索中(还有Ribbon和Hystrix),但是我不确定如何在这种情况下适应它。请帮忙。
您在这里描述的是一个服务连接池
(我假设)您的旧系统需要自定义代码才能连接到旧后端,因此您需要自己编写连接代码,但是您可以查看是否可以利用此代码:
https://camel.apache.org/manual/latest/servicepool.html
您可以考虑编写自己的apache camel组件,在这种情况下(一旦编写了该组件),可以编写apache camel端点,例如direct(mylegacybackend:...)
,然后让该组件完成繁重的工作(服务连接池)为你。
这还取决于您的组件是生产者(推动)还是消费者(拉动)。
已阅读该链接,并查看它是否适合。祝你好运。