46.11. 通过与请求/回复的单一连接进行多路的并发消息


当通过 netty producer 使用 Netty 进行请求/回复消息传递时,默认情况下,每个消息都通过非共享连接(池)发送。这样可确保回复自动映射到正确的请求线程,以便在 Camel 中进一步路由。在请求/回复消息之间的其他方面相关发生开箱即用,因为回复会回到发送请求的相同连接,并且此连接不会与其他连接共享。当响应返回时,连接会返回连接池,其中可以被其他人重复使用。

但是,如果您想要在单个共享连接上多路并发请求/响应,则需要通过设置 producerPoolEnabled=false 来关闭连接池。现在,如果回复未排序,这意味着有交集响应的潜在问题。因此,您需要在请求和回复消息中有一个关联 ID,以便您可以将回复正确与负责继续处理 Camel 中的消息的 Camel 回调关联。为此,您需要将 NettyCamelStateCorrelationManager 作为关联管理器实施,并通过 correlationManager=114myManager 选项进行配置。

注意

在构建自定义关联经理时,我们建议扩展 TimeoutCorrelationManagerSupport。这提供了对其他需要实现的超时和其他复杂性的支持。

您可以在 camel-example-netty-custom-correlation 目录下的 examples 目录中找到 Apache Camel 源代码的示例。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat