1、消息传送的优点
a、异构集成, 使不同平台, 不同开发语言的系统相互通信
b、缓解系统瓶颈
使用一个同步组件处理众多请求,如果请求量大的话, 肯定会阻塞,响应很慢,如果先将请求发送到一个消息传送系统,然后该系统再将请求分发给多个消息侦听器组件,这样就缓解或消除了单独采用点对点同步连接带来的系统瓶颈
c、提高可伸缩性
异步,并发可以提高执行效率,但是最终还是要对数据库进行操作, 数据库可处理有限的并发语法,所以最终还会受到数据库的限制
d、体系结构灵活性和敏捷性
使用消息传递机制,消息生产者或是客户端组件都不会知道接收组件使用的是哪种编程语言或平台,组件或服务位于何处,组件或服务实现的名称是什么,使用不同级别的抽象,更加容易地替换组件和子系统,提高体系结构的敏捷性。
2、异步传送消息:发送者不需要等待接收者接收或处理该消息,它可以自由发送并持续进行处理。
过程:应用程序使用一个简单的api来构建一条消息,然后再将该消息转发给面向消息的中间件,以便传送给一个或多个预定接收者。
3、消息传送模型:点对点模型(一对一)、发布/订阅模型(一对多)。
4、点对点支持异步“即发即弃”消息传送方式,又支持同步请求/应答消息传送方式。点对点比发布/订阅模型具有更强的耦合性, 发送者通常会知道消息将被如何使用,会知道谁将接收消息。点对对支持负载均衡,它允许多个接收者侦听同一队列,并以此来分配负载。多个接收者,只有一个可用的接收者消费一次,而且仅一次。
5、JMS只是消息传送的一种接口,规范, 而不是一种实现, 有不同的厂商对其有实现
6、企业系统可以添加、删除生产者,消费者,可以将已经部署好的系统,动态改变消息路由
7、一个网关接收系统,可以接收采购订单,然后将订单转换为适用于遗留ERP系统的格式,将调用ERP系统进行处理(1.5.8、构建动态系统)
8、可将来源不同的订单系统来统一处理, 然后再统一调用ERP系统
9、RPC是是同步的过程,调用 一个远程过程时, 调用者将被阻塞,直到该过程完成并将控制权返回给调用。调用者与被调用者紧密偶合,因为客户端被阻塞,所以它无法继续工作, 直到服务器做出响应为止,这个特性导致出现相互高度依赖,其中一个系统的失效会对其他系统产生影响。虽然RPC在许多场景中表现优秀,但是系统对系统的处理过程当中, 它的同步、紧密耦合等本质特性是一个严重的缺陷。大多数企业下可能会有多个系统, 多个系统之间的关系是many-to-many
10、消息传送机制基本思想:规定应用程序之间的通信应该采用异步方式。将各部分连接在一起的代码假定是一条单向消息,它不需要立即从另一个应该程序那里得到各应。换句话说,也就是调用者系统没有出现阻塞现象。一旦一条消息被发出, 消息发送者就能够转身其他任务,它不必等待这条消息的响应。这是RPC和异步消息传送之间的主要区别。对于理解消息传送系统的优点很重要。
11、在一个异步消息传送系统中, 每个子系统都不存在和其他系统的耦合,它们通过消息传送服务器进行通信,因此,某个子系统出现故障,并不会妨碍其他子系统的运行。
12、JMS提供了保存并转发机制, 如果预定消费者当前不可用,低层消息服务器就会将输入的消息写到一个持久存储器中, 然后,当可用时, 再将消息发给预定消息者。