转:http://306963591.iteye.com/blog/1044166

ActiveMQ 安装测试就不做介绍了,下面我说说ActiveMQ 使用场景。

1.非均匀应用集成

ActiveMQ 中间件用Java语言编写,因此自然提供Java客户端 API。但是ActiveMQ  也为C/C++、.NET、Perl、PHP、Python、Ruby 和一些其它语言提供客户端。在你考虑如何集成不同平台不同语言编写应用的时候,ActiveMQ 拥有巨大优势。在这样的例子中,多种客户端API通过ActiveMQ 发送和接受消息成为可能,无论使用的是什么语言。此外,ActiveMQ 还提供交叉语言功能,该功能整合这种功能,无需使用远程过程调用(RPC)确实是个优势,因为消息协助应用解耦。

2.作为RPC的替代

应用使用RPC分格同步调用十分普遍。假设大多数客户端服务器应用使用RPC,包括ATM、大多数WEB应用、信用卡系统、销售点系统等等。尽管很多系统很成功,转换使用异步消息可以带来很多好处,而且也不会放弃响应保证。系统依赖同步需求典型地限制了扩展,因为最终需求将开始起作用,从而放慢整个系统。取而代之这种不好的体验,使用异步消息,附加的消息接收器可以轻松添加,假设你的应用可以解耦。

3.两个应用之间解耦

正如之前讨论的,紧耦合架构可以导致很多问题,尤其是如果他们是分布的。松耦合架构,在另一方面,证实了更少的依赖性,能够更好地处理不可预见的改变。你不见可以在系统中改变组件而不影响整个系统,而且组件交互也相当的简单。取代使用同步方案的组件交互,组件利用异步通信。这样的松耦合遍及系统被称之为事件驱动架构(EDA)。

4.作为事件驱动架构的主干

在之前的观点中,解耦、异步风格架构允许软件本身进一步扩展(水平的可扩展性),而不是依赖硬件的可扩展性(垂直的可扩展)。想象一下一种难以置信的流量、电子商务网站像亚马逊。但一个用户在亚马逊上购买,有许多分开的阶段贯穿,订单需要履行包括订单配置、创建发票、支付流程、订单完成、运输等。然而,但一个用户实际上提交了一个订单,用户立即得到一个页面说明,“感谢您的订单”不仅如此,没有任何延迟。用户也收到了订单已经收到的邮件说明,订单配置流程由亚马逊雇佣就是个很好的例子,第一步在一种更大的、异步流程中。每一个订单步骤直接由分开的服务奋力地处理。但用户下了订单,异步调用提交订单,但是全部订单流程不会落后于通过网页浏览器进行的同步调用。反之,订单被接受并立即被确认。这个流程中剩余的步骤一步地被处理。如果发生了问题。组织流程进行,用户会被通知。这样的异步流程提供大量的可扩展性。

5.改善应用可扩展性

许多应用利用事件驱动架构,为了提供大量的可扩展性,包括像电子商务、政府、制造业和在线游戏等领域。使用异步消息在业务领域分离一个应用,许多其它可能性开始合并。考虑使用服务为特定任务设计应用的能力。这正是面向服务架构(SOA)的主干。每一个服务实现一个独立的功能,而且只是那个功能。应用通过这些服务构成来创建,在服务间使用异步消息实现通信。这种风格的应用设计被称之为复杂事件处理(CEP)。使用CEP,系统中组件之间的交互可以被进一步的分析跟踪。在考虑异步消息在系统的组件之间添加一种迂回的时候,这些可能性是无止境的。

最新文章

  1. 2D banner
  2. 云巴:基于MQTT协议的实时通信编程模型
  3. Delphi函数指针
  4. iOS 中使用类别简化代码开发
  5. android ping网络是否成功
  6. Part 72 to 81 Talking about Dictionary and List collection in C#
  7. linux系统基础(二)
  8. Spark1.0.0 监测方法
  9. android项目的的目录结构
  10. 玩转Web之servlet(四)---B/S是怎样使用http协议完毕通信过程的
  11. EF6 第一次,或者相隔一段时间变慢咋办? 我们来优化下
  12. TM一句备注讲清楚TCP3次握手
  13. CodeForces-749A
  14. 理解OAuth2.0认证
  15. [51nod1238]最小公倍数之和V3
  16. day 21 - 2 练习
  17. <数据结构基础学习>(三)Part 2 队列
  18. lightoj1214 大数取模模板
  19. 定义一个Collection接口类型的变量,引用一个Set集合的实现类,实现添加单个元素, 添加另一个集合,删除元素,判断集合中是否包含一个元素, 判断是否为空,清除集合, 返回集合里元素的个数等常用操作。
  20. [Sdoi2013]费用流(最大流,二分答案)

热门文章

  1. 2019-9-2-win10-uwp-布局
  2. 【学术篇】2.28测试T2 线段 拓扑排序
  3. fedora28 安装automake
  4. mongodb java操作常用写法
  5. 【JZOJ3918】蛋糕
  6. vue中数据绑定遇到的问题
  7. 更强大的实时数仓构建能力!分析型数据库PostgreSQL 6.0新特性解读
  8. (转)Java NIO框架Mina、Netty、Grizzly介绍与对比
  9. 互联网公司java面试题(一)
  10. 隐藏tomcat页面异常显示的版本信息