您的当前位置:首页正文

Mule用户手册第3章

2024-02-22 来源:易榕旅网
第3章 深入了解Mule ESB消息路由 1、介绍消息路由

总述

消息路由(Message routers)用于控制消息是如何在服务间被路由的,下面将简述一些主要的概念:

 Inbound routers:控制服务如何处理入站消息。

 Outbound routers:控制被服务处理过的消息如何分派。

 Asynchronous reply routers:用于请求/响应场景 :当消息交易被一个请求触发后,

该交易需要在收到响应前就结束。  Catch-all strategies:如果当前消息没有找到路由路径时,Catch-all strategies被使用。

一个inbound或outbound终端和Catch-all strategies联合使用,可以使任何无目的的消息被捕获并发送到一个公共的位置。

 Filters:提供了使用特定路由器的逻辑,种类有:AndFilter、OrFilter和 NotFilter。

不是所有的routers都需要使用Filters,但所有的routers都支持Filters。

选择一种消息类型

①、 异步消息类型

②、 请求-响应消息类型

③、 同步消息类型

④、 异步请求-响应消息类型

2、高级消息路由

过滤消息

你可以使用过滤器控制服务处理那个消息,Selective Consumer Router用于inbound

endpoints,控制服务将处理那个消息;Filtering Router用于outbound endpoints,控制那个小心将被发送到下个终端;forwarding router允许你处理一部分消息,并且选择转发外的;wiretap router允许你处理所有的消息并且正常的发送他们,但是该router会同事发送一个COPY到另外一个终端。

将Outbound Endpoints链接起来

chaining router,用于发送消息到一个终端,然后发送那个终端的结果到另一个终端的路由器;chaining router还可以搭建协议桥,例如:

分割消息

message splitter,用于分解消息,将分解后的消息发送个不同终端。message splitter的类型主要有以下几种:

①、 List Message Splitter:接收一个对象列表,然后将不同对象发送到不同的终端。

②、 Filtering XML Message Splitter:和List Message Splitter相似,但是基于XML文

档进行消息的分割和发送。

③、 Expression Splitter Router:和List Message Splitter相似,但是基于表达式进行消息

的分割和发送。

④、 Round Robin Message Splitter:将消息分割,然后用一种循环算法将他们发送到终

端。这种消息分割可以提高Mule ESB的性能。 ⑤、 Message Chunking Router:将一个独立的消息分割成许多固定长短的消息,然后发

送他们到同一个终端,到达终端后可以使用Message Chunking Aggregator将消息聚合在一起。Aggregator需要使用correlation ID,correlation ID记录了那些分解后的消息属于同一个消息。

只处理一次的消息

Idempotent Receiver可以通过检查消息唯一的消息ID来确保服务只接受唯一的消息。ID能够用定义在“idExpression”属性中的表达式来生成。这个表达式默认是“#[message:id]”。

因篇幅问题不能全部显示,请点此查看更多更全内容