mule in action翻译20 : 3.8 使用VM传输
VM传输是一个特殊的传输类型,你用它向Mule实例运行的JVM发送消息。通过VM endpoint发送的消息可以处理为事务性的并且可以持久化到磁盘。这使你获得了分层式的可靠性并且解耦了流--不在需要一个外部的消息代理。
本节将看这是如何做到的。在第9章讨论mule对事务的支持时,我们将重新使用VM传输实现可靠的方式。
表3.8展示了一些你可以设置的VM 传输的属性。
3.8.1 介绍VM传输的可靠性
你在列表3.2中看到了Prancing Donkey如何发送支出报表到Arnor Accounting提供的URL.他们想出的方法是从文件系统的一个共享目录读入支出报表然后把电子表格发送到一个URL.文件系统和HTTP都不是事务性资源,那么当其中一个操作失败时将导致支出报表的丢失。因此,我们来做把流变的可靠的第一步--使用VM传输解耦每个endpoint。见下面列表说明。
(图示见3.21)
Listing 3.26 Using VM endpoints to implement reliability patterns
<flow name="readExpensesFromFilesystemFlow"> <file:inbound-endpoint path="./data/expenses/in" pollingFrequency="60000"> <file:filename-regex-filter pattern=".*xls$" caseSensitive="false"/> </file:inbound-endpoint> <!--分发消息到expenses VM queue--> <vm:outbound-endpoint path="expenses"/> </flow> <flow name="postExpenses"> <!--从expenses VM queue接收消息--> <vm:inbound-endpoint path="expenses"/> <http:outbound-endpoint host="${http.host}" port="${http.port}" method="POST" path="expenses/prancingdonkey"/> </flow>
这种方式类似于使用JMS对流进行解耦。这样做的好处是不会导致管理开销和运行JMS代理的性能开销,并且这时消息处理是异步的。通过expenses 队列传送的消息将持久化到磁盘,所以出现Mule关闭或失败事件时,这些消息仍能传送到HTTP outbound endpoint。第9章你将看到怎么使分发和接收都具有事务,提高两个流的真正的可靠性。
VM QUEUES AND FLOWS 在mule2中使用VM 队列把服务组合起来是一种常见的方式。
在mule3中引入的流和其支持的功能,像 flow refs 、 subflows,使得 VM传输
在这种情况下变的不再怎么有用了。但它确实提供了一个可靠模式,这点我们在第7章详谈。
VM传输存储消息的特性可以通过定义VM连接器的子项--队列配置文件 来进行配置。一些配置属性
见表3.9
列表3.27 展示了一个队列配置文件,关闭了持久化(所有消息保存在内存)并限制了消息数量为1000.
如果你能容忍消息丢失且很关心VM队列的吞吐量的话,关闭持久化是有用的。
VM传输的交换方式 VM传输支持 请求-响应的交换方式 ,在这方面它表现的和JMS传输比较相似。
Listing 3.27 Explicitly configuring a VM queue profile
<vm:connector name="fastVMQueue"> <!--注释1 定义非持久化队列 缓冲上限是1000个消息--> <vm:queue-profile persistent="false" maxOutstandingMessages="1000"/> </vm:connector>
VM传输一收到消息就开始运送他们,可认为其速度比JMS快。当你调整流和组件时,请注意一点,VM队列的重载是很容易的。参数maxOutstandingMessages 表明VM传输的缓存最大是1000个消息--如果消息到达的他快以至流不能及时处理时。当缓存满时,再到达的消息将会丢失。我们将在第11章讨论调优的细节。
使用VM传输给你带来了解耦中间件、避免了管理代理的开销。你看到了VM 传输如何促进了可靠模式的实现--可以使不可靠的传输(比如文件、HTTP)变的可靠的技术。你也看到了如何配置 VM队列,允许你覆盖VM传输的默认的队列和持久化行为。
相关推荐
Mule in Action, Second Edition is a totally-revised guide covering Mule 3 fundamentals and best practices. It starts with a quick ESB overview and then dives into rich examples covering core concepts ...
《Mule in Action》一书深入探讨了Mule——一个轻量级消息框架与高度分布式的对象代理系统,为读者提供了全面的理论与实践指导。本书由David Dossot和John D'Emic共同撰写,旨在帮助开发者掌握Mule的核心功能与配置...
mule in action 和doc文档详细介绍 Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。UMO可以是POJO,JavaBean等等。它支持30多种传输协议...
《Mule in Action》是一本专注于Mule ESB(企业服务总线)的入门教程,旨在帮助读者系统地学习和理解这一强大的集成平台。Mule ESB是开源领域中的一个重量级选手,常用于构建灵活、可扩展的企业级集成解决方案。这...
Mule in Action is acomprehensive tutorial designed for working Java developers. This authoritativebook explores the architecture and the main features of version Mule 2 throughnumerous running ...
### Mule in Action 第二版 英文正式版 关键知识点概述 #### 一、书籍简介与背景 《Mule in Action》第二版是一本详细介绍Mule ESB(Enterprise Service Bus)这一著名开源框架的书籍。该书由David Dossot、John D...
《Mule in Action》这本书是关于Mule ESB(企业服务总线)的权威指南,由David Chappell和James Strachan等作者撰写。Mule ESB是一种开源的集成平台,它允许开发者轻松地连接各种系统、服务和应用程序,实现数据的...
总体而言,Mule in Action, Second Edition这本书是关于Mule ESB使用和集成实践的权威指南,涵盖了从基础概念到高级特性的广泛主题。本书适合于那些希望深入学习和利用Mule ESB进行企业级应用集成的开发人员和架构师...
《Mule in Action》是关于Mule ESB的实战指南,该书深入浅出地介绍了如何使用Mule这一强大的企业服务总线(ESB)进行应用程序集成。Mule ESB以其用户基数庞大、文档详尽以及社区活跃而备受赞誉,是企业级集成解决...
Mule in Action是一本关于Mule ESB(企业服务总线)的实战指南,旨在为读者提供深入的实践知识和案例分析。ESB作为一种流行的中间件技术,用于实现不同系统之间的服务集成。Mule作为一个开源的ESB解决方案,通过其...
《Mule in Action》第二版是一本全面介绍如何使用Mule ESB进行高效集成开发的书籍,由David Dossot、John D’Emic和Victor Romero共同编写。 #### 二、Mule ESB的关键特性 **1. 消息处理:** Mule ESB支持多种消息...
Mule ESB Studio 3.3 中文使用手册(官方翻译) Mule ESB Studio 3.3 是一款功能强大且灵活的集成平台,旨在帮助开发者快速构建、部署和管理企业级集成解决方案。该手册旨在指导用户如何安装、配置和使用 Mule ESB ...
MULE IN ACTION Mule是一个企业服务总线(ESB)消息框架,它为集成不同系统和应用程序提供了一种轻量级的、易于使用的方法。Mule的设计哲学围绕着灵活性和可扩展性,通过其高度可插拔的架构,支持多种传输协议和...
先决条件必须在要使用此传输的主机上安装 Erlang R13B01 或更高版本。在使用 Erlang 传输之前必须在启动 Erlang 连接器之前运行。 如果你有一个 Erlang 应用程序已经在运行 Mule 的主机上运行, epmd将已经运行。 ...