Dubbo+Zookeeper架构—高级篇16—消息中间件在分布式系统中的作用及介绍
一、消息中间件的定义
Message-orientedmiddleware (MOM) is software infrastructure focused on sending and receivingmessages between distributed systems.
消息中间件是在分布式系统中完成消息的发送和接收的基础软件。
二、消息中间件的作用
消息中间件可利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式环境下扩展进程间的通信。
通过消息中间件,应用程序或组件之间可以进行可靠的异步通讯,从而降低系统之间的耦合度,提高系统的可扩展性和可用性。
三、应用场景:通过使用消息中间件对Dubbo服务间的调用进行解耦
四、JMS介绍
1、JMS (JavaMessage Service)
JMS是JavaEE中的一个关于消息的规范,是一套与具体平台无关的API。
2、JMS元素
JMS提供者 ---- 连接面向消息中间件的,JMS接口的一个实现。 JMS客户 ------ 生产或消费消息的基于Java的应用程序或对象。
JMS生产者 ---- 创建并发送消息的JMS客户。
JMS消费者 ---- 接收消息的JMS客户。
JMS消息 ------ 可以在JMS客户之间传递的数据的对象
JMS队列 ------ 一个容纳那些被发送的等待阅读的消息的区域。
JMS主题 ------ 一种支持发送消息给多个订阅者的机制。
3、JMS应用程序接口
ConnectionFactory(连接工厂)------ 用户用来创建到JMS提供者的连接的被管对象。
Connection(连接)------------------- 连接代表了应用程序和消息服务器之间的通信链路。 Destination(目标)------------------- 消息发布和接收的地点,或者是队列,或者是主题。
MessageProducer(消息生产者)----- 由会话创建的对象,用于发送消息到目标。
MessageConsumer(消息消费者)---- 由会话创建的对象,用于接收发送到目标的消息。
4、JMS消息模型
五、实现JMS规范的消息中间件
ActiveMQ、RocketMQ、RabbitMQ、HornetQ......
不同消息中间的对比: