Java理论与实践: 应该在下一个企业应用程序中使用JMS吗? - 编程入门网
空消息)。对消息的解释 留给应用程序域来做;MQ 基础结构不对消息施加任何语义和结构限制。消息存 储在队列里,MQ 服务器允许您将消息加入到队列以及从队列中取走消息。
到目前为止,消息队列听起来很象简单的链表。从其最简单形式来说,的确 是这样的,但是企业 MQ 服务器通过将一些功能特性封装进这一链表管理而增强 了其功能: 控制谁可以向队列中写以及谁可以从队列中读的安全性 网络接口,它允许消息生产者和消费者位于不同的地方 事务性支持,这样入队和出队操作都具有事务特性:原子性、一致性、隔离 性以及可持久性 分布式事务支持,这样队列操作可以同其它资源管理器(如 SQL 数据库)一 起参加分布式事务 持久存储性 负载均衡 故障转移 管理 Java理论与实践: 应该在下一个企业应用程序中使用JMS吗?(2)时间:2010-12-20 IBM Brian GoetzMQ 的长处 MQ 的长处源自消息处理的异步性质所带来的固有的 松散耦合。一个实体向 队列发布消息与另一个实体除去并处理消息的过程是完全分离的。这两个实体无 须同时运行,也无须位于同一系统上,甚至无须知道另一个实体的标识;它们仅 按照自己的时间表同队列交互。它们只须就彼此将接收的消息的格式达成一致; 此外,它们无须知道对方的任何其它事情。 松散耦合有许多优点。它提供了一个自然的机制,将一个工作单元分成更小 的、独立的组件,这种机制在处理请求的各阶段之间隐式地创建了抽象。这种细 分允许我们方便地一个接一个地抽象每个组件的实现,更好地衡量和管理每个组 件对资源的利用,或者使用提供具有类似功能的组件替换一个组件而无需改变其 它组件。 JMS 规范要求 JMS 提供程序也实现 发布和订阅功能,该功能允许您创建不 同的、应用程序定义的且名称为 主题的通道,并允许单个实体订阅这些主题。 排队到主题的消息自动放置在任何订阅过该主题的实体的专用队列中。主题在财 务服务或新闻发送应用程序中执行有价值的排序功能。例如,虽然有 5000 多种 股票在美国的主要交易所交易,但每个投资者可能只对其中的 30 种股票感兴趣 。因此您可以为每个订单符号创建一个主题,让用户订阅他们感兴趣的符号,然 后让 MQ 引擎执行仅仅显示每个投资者想要的报价,避免发送重复的股价。用 SQL 数据库实现这一过程要困难得多。 经典的 MQ 用法模式 有一些最适合于使用消息排队的常见用法模式。当在您的应用程序中看到这 些模式之一时,您应该考虑使用消息传递。 面向事件的应用程序 高度面向事件的应用非常适于使用 MQ 技术。这些包括财务服务应用程序( 请考虑一个证券交易所,它显示股票价格更新,根据价格变化或其它订单的执行 来启动交易,报告订单状态等等),新闻发送服务应用程序以及供应链应用程序 。在金融市场中,必须对事件进行迅速处理;当发生了重要的事情时,您希望在 它一发生时就得到通知。 轮询数据库 数据库在持久存储数据方面是非常优秀的,但是存储瞬时数据并在数据改变 时通知我们却不是它们的长处。 虽然它不是高效的,但是轮询数据库却非常常见。每个机场的显示监视器不 断轮询数据库以更新它们显示的信息。有许多出纳窗口的银行经常使用电子信号 来指示下一个空闲出纳员的位置。电子商务站点内的订单处理系统可能轮询数据 库以查看是否有任何新订单需要处理。或者保险索赔工作流系统可能轮询以查看 是否有任何新的索赔可以分配给空闲的索赔调解人(claims adjusters)。 所有这些轮询都产生了许多额外的工作。如果有许多实体频繁地轮询(并且 如果它们想要迅速地反映数据的更新,它们就必须这么做),就可能给数据库服 务器和网络造成很大的负载。在大多数时候,轮询不返回数据,更糟的是,会返 回我们已经见过的数据,但又必须再次处理 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |