File tree Expand file tree Collapse file tree 1 file changed +8
-8
lines changed
docs/system-design/distributed-system/message-queue Expand file tree Collapse file tree 1 file changed +8
-8
lines changed Original file line number Diff line number Diff line change 46
46
47
47
![ 解耦] ( https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/消息队列-解耦.png )
48
48
49
- 生产者(客户端)发送消息到消息队列中去,接受者(服务端)处理消息,需要消费的系统直接去消息队列取消息进行消费即可而不需要和其他系统有耦合, 这显然也提高了系统的扩展性。
49
+ 生产者(客户端)发送消息到消息队列中去,接受者(服务端)处理消息,需要消费的系统直接去消息队列取消息进行消费即可而不需要和其他系统有耦合,这显然也提高了系统的扩展性。
50
50
51
51
** 消息队列使利用发布-订阅模式工作,消息发送者(生产者)发布消息,一个或多个消息接受者(消费者)订阅消息。** 从上图可以看到** 消息发送者(生产者)和消息接受者(消费者)之间没有直接耦合** ,消息发送者将消息发送至分布式消息队列即结束对消息的处理,消息接受者从分布式消息队列获取该消息后进行后续处理,并不需要知道该消息从何而来。** 对新增业务,只要对该类消息感兴趣,即可订阅该消息,对原有系统和业务没有任何影响,从而实现网站业务的可扩展性设计** 。
52
52
@@ -98,19 +98,19 @@ JMS 定义了五种不同的消息正文格式,以及调用的消息类型,
98
98
99
99
### 4.2 AMQP
100
100
101
- AMQP,即 Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准 ** 高级消息队列协议** (二进制应用层协议),是应用层协议的一个开放标准, 为面向消息的中间件设计,兼容 JMS。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件同产品,不同的开发语言等条件的限制。
101
+ AMQP,即 Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准 ** 高级消息队列协议** (二进制应用层协议),是应用层协议的一个开放标准, 为面向消息的中间件设计,兼容 JMS。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件同产品,不同的开发语言等条件的限制。
102
102
103
103
** RabbitMQ 就是基于 AMQP 协议实现的。**
104
104
105
105
### 4.3 JMS vs AMQP
106
106
107
- | 对比方向 | JMS | AMQP |
108
- | :----------- | --------------------------------------: | :----------------------------------------------------------: |
109
- | 定义 | Java API | 协议 |
110
- | 跨语言 | 否 | 是 |
111
- | 跨平台 | 否 | 是 |
107
+ | 对比方向 | JMS | AMQP |
108
+ | :----------- | : -------------------------------------- | :----------------------------------------------------------- |
109
+ | 定义 | Java API | 协议 |
110
+ | 跨语言 | 否 | 是 |
111
+ | 跨平台 | 否 | 是 |
112
112
| 支持消息类型 | 提供两种消息模型:①Peer-2-Peer;②Pub/sub | 提供了五种消息模型:①direct exchange;②fanout exchange;③topic change;④headers exchange;⑤system exchange。本质来讲,后四种和 JMS 的 pub/sub 模型没有太大差别,仅是在路由机制上做了更详细的划分; |
113
- | 支持消息类型 | 支持多种消息类型 ,我们在上面提到过 | byte [ ] (二进制) |
113
+ | 支持消息类型 | 支持多种消息类型 ,我们在上面提到过 | byte [ ] (二进制) |
114
114
115
115
** 总结:**
116
116
You can’t perform that action at this time.
0 commit comments