系统间的通信方式

可以有哪些通信方式?

两个系统之间,想进行通信,有哪些方式?

  • 文件
  • 基于共享内存
  • 基于IPC管道
  • Socket
  • 数据库
  • RPC

    我们期望的通信方式

    我们期望的通信方式?(即 MQ的优势)

  • 异步通信:

  • 系统解耦:简化参与各方依赖关系
  • 削峰平谷:可以在请求量很大时,缓冲一下
  • 可靠通信:提供多种消息模式、服务质量、顺序保障等

消息处理模式

常见两种消息

点对点

PTP Point-To-Point,对应于队列Queue
image.png

发布订阅

PubSub,对应主体Topic
image.png

消息处理的保障

三种QoS

  • At most once 至多一次,消息可能丢失但是不会重复发送
  • At least Once 至少一次,消息不会丢失但是可能会重复
  • Exactly once 精确一次,消息肯定会被传输一次且仅一次

(通常采用At least once + 幂等去重)
消息处理的事务性:

消息有序性

同一个Topic