【发布时间】:2014-11-01 17:38:50
【问题描述】:
我正在尝试通过 Apache Camel 和 Netty 对多个后端服务器上的 TCP 连接进行负载平衡。
我想让每个到后端的连接映射到每个到 Camel 的连接。像这样的:
- 客户端连接到 Camel。
- Camel 选择一个后端服务器并连接到它。
- 客户端向 Camel 发送一些东西。
- Camel 将其发送到关联的后端服务器。
- 后端服务器回复 Camel。
- Camel 将其发回给客户。
- ...
我的协议是有状态的,客户端和 Camel 之间的连接将保持打开状态。我还需要从后端开始发送到客户端的消息。
到目前为止,一切都很好。这工作得很好。 当我连接到同一个后端服务器的新客户端时,我的问题开始了,看起来骆驼重用了已经打开的连接,对于后端服务器,它看起来像第一个客户端发送消息,它没有收到新的连接请求。
我查看了 Apache Camel Netty 组件文档,但没有找到任何可以配置此行为的内容。
可以这样做吗?
旁注:我使用 Camel 是因为我需要检查协议中的消息以选择后端服务器,即我需要自定义负载平衡策略。使用骆驼提供的任何负载平衡策略都会出现问题,因此它与我的代码无关。
【问题讨论】:
标签: tcp apache-camel netty load-balancing