跳到主要内容

路由器

QWen Plus 中英对照 Routers

本节介绍路由器的工作原理。它包括以下主题:

部分总结

📄️ 动态路由器

Spring Integration 提供了相当多不同的路由器配置,适用于常见的基于内容的路由用例,同时也提供了将自定义路由器作为 POJO 实现的选项。例如,PayloadTypeRouter 提供了一种简单的方式来配置路由器,该路由器根据传入消息的有效负载类型计算通道,而 HeaderValueRouter 在通过评估特定消息头的值来配置计算通道的路由器时提供了同样的便利。还有基于表达式(SpEL)的路由器,在这些路由器中,通道是根据评估表达式的结果确定的。所有这些类型的路由器都表现出一些动态特性。

📄️ 路由单据

从 4.1 版本开始,Spring Integration 提供了路由单企业集成模式的实现。它是作为 routingSlip 消息头实现的,用于在未为端点指定输出通道时,确定 AbstractMessageProducingHandler 实例中的下一个通道。当消息到达没有输出通道的端点时,会查询路由单以确定消息发送到的下一个通道。当路由单用尽时,正常的 replyChannel 处理将继续。此模式在复杂、动态的情况下非常有用,此时配置多个路由器来确定消息流可能会变得困难。

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

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