系统间的通信方式
可以有哪些通信方式?
两个系统之间,想进行通信,有哪些方式?
- 文件
- 基于共享内存
- 基于IPC管道
- Socket
- 数据库
-
我们期望的通信方式
我们期望的通信方式?(即 MQ的优势)
异步通信:
- 系统解耦:简化参与各方依赖关系
- 削峰平谷:可以在请求量很大时,缓冲一下
- 可靠通信:提供多种消息模式、服务质量、顺序保障等
消息处理模式
点对点
发布订阅
PubSub,对应主体Topic
消息处理的保障
三种QoS
- At most once 至多一次,消息可能丢失但是不会重复发送
- At least Once 至少一次,消息不会丢失但是可能会重复
- Exactly once 精确一次,消息肯定会被传输一次且仅一次
(通常采用At least once + 幂等去重)
消息处理的事务性:
消息有序性
同一个Topic