跳到主要内容
版本:7.0.2

路由器

DeepSeek V3 中英对照 Routers

本节将介绍路由器的工作原理,涵盖以下主题:

章节总结

📄️ 动态路由器

Spring Integration 为常见的内容路由场景提供了多种不同的路由器配置,同时支持将自定义路由器实现为 POJO。例如,PayloadTypeRouter 提供了一种简单的方式来配置基于传入消息的有效负载类型计算通道的路由器,而 HeaderValueRouter 则提供了类似的便利性,用于配置通过评估特定消息头的值来计算通道的路由器。此外还有基于表达式(SpEL)的路由器,其中通道的确定基于对表达式的评估。所有这些类型的路由器都展现出一定的动态特性。

📄️ 路由单

从 4.1 版本开始,Spring Integration 提供了路由单(routing slip)企业集成模式的实现。它被实现为 routingSlip 消息头,当端点未指定 outputChannel 时,该消息头用于在 AbstractMessageProducingHandler 实例中确定下一个通道。此模式在复杂、动态的场景中非常有用,因为在这些场景中配置多个路由器来确定消息流可能会变得困难。当消息到达没有 output-channel 的端点时,系统会查询 routingSlip 以确定消息要发送到的下一个通道。当路由单耗尽时,将恢复正常的 replyChannel 处理。

📄️ 进程管理器企业集成模式

企业集成模式包含流程管理器模式。现在,您可以通过在路由条中使用封装在 RoutingSlipRouteStrategy 中的自定义流程管理器逻辑来轻松实现此模式。除了 Bean 名称外,RoutingSlipRouteStrategy 还可以返回任何 MessageChannel 对象,并且不要求此 MessageChannel 实例必须是应用上下文中的 Bean。这样,在无法预测应使用哪个通道时,我们可以提供强大的动态路由逻辑。可以在 RoutingSlipRouteStrategy 内部创建并返回 MessageChannel。对于此类情况,带有关联 MessageHandler 实现的 FixedSubscriberChannel 是一个很好的组合。例如,您可以路由到响应式流,如下例所示: