消息队列简介
- 消息发送方
- 生产者
- 消息接收方
- 消费者
1.同步消息与异步消息的区别
**同步消息(synchronous message):**一般用于普通的过程调用。消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息接收者放弃或者返回控制。调用消息可以用来表示同步的意义。
**异步消息(asynchronous message):**用于表示异步通信,即发送者发出消息后,立即继续执行下一步,不进行等待。
2.消息队列

3.企业级应用中广泛使用的三种异步消息传递技术
-
JMS
-
AMQP
-
MQTT
(1).JMS(Java Message Service):一个规范,等同于JDBC规范,提供了与消息服务相关的API接口
- JMS消息模型
- peer-2-peer:点对点模型,消息发送到一个队列中,队列保存消息。队列的消息只能被一个消费者消费,或超时
- publish-subscribe:发布订阅模型,消息可以被多个消费者消费,生产者和消费者完全独立,不需要感知对方的存在
- JMS消息种类
- TextMessage
- MapMessage
- BytesMessage
- StreamMessage
- ObjectMessage
- Message (只有消息头和属性)
- JMS实现:ActiveMQ、Redis、HornetMQ、RabbitMQ、RocketMQ(没有完全遵守JMS规范)
(2)AMQP(advanced message queuing protocol):一种协议(高级消息队列协议,也是消息代理规范),规范了网络交换的数据格式,兼容JMS
- 优点:具有跨平台性,服务器供应商,生产者,消费者可以使用不同的语言来实现
- AMQP消息模型
- direct exchange
- fanout exchange
- topic exchange
- headers exchange
- system exchange
- AMQP消息种类:byte[]
- AMQP实现:RabbitMQ、StormMQ、RocketMQ
(3)MQTT(Message Queueing Telemetry Transport)消息队列遥测传输,专为小设备设计,是物联网(IOT)生态系统中主要成分之一
- JMS消息模型
4.消息中间件
- ActiveMQ
- RabbitMQ
- RocketMQ
- Kafka
本文介绍了同步和异步消息的区别,重点探讨了企业级应用中广泛使用的三种异步消息传递技术——JMS、AMQP和MQTT。JMS是Java消息服务规范,提供API接口,包括点对点和发布订阅模型;AMQP是跨平台的消息代理协议,支持多种交换类型;MQTT则专注于物联网设备的消息传输。文中还提及了各种消息中间件如ActiveMQ、RabbitMQ和RocketMQ等。
2369

被折叠的 条评论
为什么被折叠?



