1、消息中间件在分布式系统中的做用服务器
1 消息中间件的定义
Message-oriented middleware (MOM) is software infrastructure focused on sending and receiving messages between distributed systems.
消息中间件是在分布式系统中完成消息的发送和接收的基础软件。微信
2 消息中间件的做用
消息中间件可利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通讯来进行分布式系统的集成。经过提供消息传递和消息排队模型,能够在分布式环境下扩展进程间的通讯。
经过消息中间件,应用程序或组件之间能够进行可靠的异步通信,从而下降系统之间的耦合度,提升系统的可扩展性和可用性。并发
3 应用场景
经过使用消息中间件对Dubbo服务间的调用进行解耦异步
4 JMS (Java Message Service)分布式
JMS元素 JMS元素 .net
JMS提供者 ---- 链接面向消息中间件的,JMS接口的一个实现。线程
JMS客户 ------ 生产或消费消息的基于Java的应用程序或对象。 中间件
JMS生产者 ---- 建立并发送消息的JMS客户。 对象
JMS消费者 ---- 接收消息的JMS客户。 blog
JMS消息 ------ 能够在JMS客户之间传递的数据的对象。
JMS队列 ------ 一个容纳那些被发送的等待阅读的消息的区域。
JMS主题 ------ 一种支持发送消息给多个订阅者的机制。
JMS应用程序接口
ConnectionFactory(链接工厂)------ 用户用来建立到JMS提供者的链接的被管对象。
Connection(链接)------------------- 链接表明了应用程序和消息服务器之间的通讯链路。
Destination(目标)------------------- 消息发布和接收的地点,或者是队列,或者是主题。
MessageProducer(消息生产者)----- 由会话建立的对象,用于发送消息到目标。
MessageConsumer(消息消费者)---- 由会话建立的对象,用于接收发送到目标的消息。
Message(消息)---------------------- 是在消费者和生产者之间传送的对象。
Session(会话)------------------------ 表示一个单线程的上下文,用于发送和接收消息。
5 JMS消息模型
一、点对点或队列模型
JMS 点对点队列模型特色:
一、消息生产者生产消息发送到queue中,而后消息消费者从queue中取出而且消费消息。
二、消息被消费之后,queue中再也不有存储,因此消息消费者不可能消费到已经被消费的消息。
三、Queue支持存在多个消费者,可是对一个消息而言,只会有一个消费者能够消费。
二、发布者/订阅者模型
JMS 发布/订阅模型特色:
消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。 发布到topic的消息会被全部订阅者消费。
6 实现了JMS规范的消息中间件产品 :ActiveMQ、RocketMQ、RabbitMQ、HornetQ ……
2、消息队列-ActiveMQ
请参考之前写的博文:http://www.javashuo.com/article/p-xagqegzp-nc.html
<!-- Start -->
获知及时信息,请关注个人我的微信订阅号:0与1的那点事
<!-- End -->