科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件Mule的消息路由7

Mule的消息路由7

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Mule的消息路由

作者:ddvip 来源:ddvip 2009年12月30日

关键字: 思科 路由器

  • 评论
  • 分享微博
  • 分享邮件

Mule的消息路由7

 

 过滤消息

  使用过滤器可以控制服务处理哪些消息。选择性消费者路由器(Selective Consumer Router)用于入站端点,它可以控制服务处理哪些消息。过滤路由器(Filtering Router)用于出站端点,可以控制哪些消息发送到下一个服务上。可以组合使用这些过滤器来控制消息流。

  例如,如果只想处理不包含错误的消息,那么可以使用选择性消费者以确保只处理结果代码为success的消息。并使用Catch-all策略将其它的消息转发到另外端点上作为错误处理:

<inbound> 
 <selective-consumer-router> 
  <mulexml:jxpath-filter expression="msg/header/resultcode = 'success'"/> 
 </selective-consumer-router> 
 
 <forwarding-catch-all-strategy> 
  <jms:endpoint topic="error.topic"/> 
 </forwarding-catch-all-strategy> 
</inbound>

  在服务处理消息时,如果想通过指定的标准决定将消息发送到哪个端点,那么可以在出站端点上使用过滤路由器。在下面的示例中,将包含异常信息的消息发送到系统管理员的email邮箱,将包含特定字符串的消息发送到名为string.queue的队列,并使用forwarding catch-all路由器接收余下的所有消息,并将它们发送到名为error.queue的死信队列:

<outbound> 
 
 <filtering-router> 
  <smtp:outbound-endpoint to="ross@muleumo.org"/> 
   <payload-type-filter expectedTypeexpectedType="java.lang.Exception"/> 
 </filtering-router> 
 
 <filtering-router> 
  <jms:outbound-endpoint to="string.queue"/> 
  <and-filter> 
   <payload-type-filter expectedType="java.lang.String"/> 
   <regex-filter pattern="the quick brown (.*)"/> 
  </and-filter> 
 </filtering-router> 
 
 <forwarding-catch-all-strategy> 
  <jms:outbound-endpoint queue="error.queue"/> 
 </forwarding-catch-all-strategy> 
 
</outbound>

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章