欢迎来到天天文库
浏览记录
ID:30025500
大小:499.50 KB
页数:6页
时间:2018-12-26
《[计算机]mule_esb_用户手册第三章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章深入了解MuleESB消息路由1、介绍消息路由总述消息路由(Messagerouters)用于控制消息是如何在服务间被路由的,下面将简述一些主要的概念:lInboundrouters:控制服务如何处理入站消息。lOutboundrouters:控制被服务处理过的消息如何分派。lAsynchronousreplyrouters:用于请求/响应场景 :当消息交易被一个请求触发后,该交易需要在收到响应前就结束。lCatch-allstrategies:如果当前消息没有找到路由路径时,Catch-allstrategies被使用。一个inbound或outbou
2、nd终端和Catch-allstrategies联合使用,可以使任何无目的的消息被捕获并发送到一个公共的位置。lFilters:提供了使用特定路由器的逻辑,种类有:AndFilter、OrFilter和NotFilter。不是所有的routers都需要使用Filters,但所有的routers都支持Filters。选择一种消息类型①、异步消息类型①、请求-响应消息类型②、同步消息类型①、异步请求-响应消息类型2、高级消息路由过滤消息你可以使用过滤器控制服务处理那个消息,SelectiveConsumerRouter用于inboundendpoints,控制服务
3、将处理那个消息;FilteringRouter用于outboundendpoints,控制那个小心将被发送到下个终端;forwardingrouter允许你处理一部分消息,并且选择转发外的;wiretaprouter允许你处理所有的消息并且正常的发送他们,但是该router会同事发送一个COPY到另外一个终端。将OutboundEndpoints链接起来chainingrouter,用于发送消息到一个终端,然后发送那个终端的结果到另一个终端的路由器;chainingrouter还可以搭建协议桥,例如:分割消息messagesplitter,用于分解消息,将分解
4、后的消息发送个不同终端。messagesplitter的类型主要有以下几种:①、ListMessageSplitter:接收一个对象列表,然后将不同对象发送到不同的终端。②、FilteringXMLMessageSplitter:和ListMessageSplitter相似,但是基于XML文档进行消息的分割和发送。①、ExpressionSplitterRouter:和ListMessageSplitter相似,但是基于表达式进行消息的分割和发送。②、RoundRobinMessageSplitter:将消息分割,然后用一种循环算法将他们发送到终端。这种消息分
5、割可以提高MuleESB的性能。③、MessageChunkingRouter:将一个独立的消息分割成许多固定长短的消息,然后发送他们到同一个终端,到达终端后可以使用MessageChunkingAggregator将消息聚合在一起。Aggregator需要使用correlationID,correlationID记录了那些分解后的消息属于同一个消息。只处理一次的消息IdempotentReceiver可以通过检查消息唯一的消息ID来确保服务只接受唯一的消息。ID能够用定义在“idExpression”属性中的表达式来生成。这个表达式默认是“#[message
6、:id]”。
此文档下载收益归作者所有