跳到主要内容

消息队列设计模式

一、消息传递模式​

1.1 点对点模式(Point-to-Point)​

  • 模式特点
  • 实现方式
  • 适用场景
  • 优缺点

1.2 发布订阅模式(Publish-Subscribe)​

  • 模式特点
  • 实现方式
  • 适用场景
  • 优缺点

1.3 请求响应模式(Request-Reply)​

  • 模式特点
  • 实现方式
  • 适用场景
  • 优缺点

1.4 消息路由模式​

  • 直接路由
  • 主题路由
  • 扇出路由
  • 头路由

二、企业集成模式(EIP)​

2.1 消息构造器模式​

2.2 消息路由器模式​

2.3 消息转换器模式​

2.4 消息端点模式​

2.5 消息通道模式​

2.6 消息桥接模式​

三、生产者模式​

3.1 发送并返回(Fire and Forget)​

3.2 发送并确认(Send and Confirm)​

3.3 异步发送​

3.4 批量发送​

3.5 事务发送​

3.6 延迟发送​

3.7 定时发送​

四、消费者模式​

4.1 推模式(Push)​

4.2 拉模式(Pull)​

4.3 推拉结合模式​

4.4 竞争消费者模式​

4.5 事件驱动的消费者​

五、消息确认模式​

5.1 自动确认(Auto Ack)​

5.2 手动确认(Manual Ack)​

5.3 批量确认(Batch Ack)​

5.4 事务确认​

5.5 发送方确认(Publisher Confirm)​

5.6 消费方确认(Consumer Ack)​

六、消息可靠性模式​

6.1 消息持久化​

6.2 消息去重​

6.3 消息重试​

  • 立即重试
  • 延迟重试
  • 退避重试

6.4 死信队列(DLQ)​

6.5 消息追踪​

6.6 消息审计​

七、消息顺序模式​

7.1 全局顺序​

7.2 分区顺序​

7.3 消息分组​

7.4 单一消费者​

7.5 顺序保证策略​

八、高性能模式​

8.1 批量处理​

8.2 异步处理​

8.3 并发消费​

8.4 连接池​

8.5 管道化​

8.6 消息压缩​

8.7 零拷贝​

九、消息过滤模式​

9.1 基于标签过滤​

9.2 基于属性过滤​

9.3 基于内容过滤​

9.4 SQL 过滤​

9.5 路由键过滤​

9.6 主题过滤​

十、延迟消息模式​

10.1 延迟级别实现​

10.2 基于时间轮实现​

10.3 基于数据库实现​

10.4 基于 Redis 实现​

10.5 基于定时任务实现​

十一、事务消息模式​

11.1 本地消息表​

11.2 事务消息​

11.3 最终一致性​

11.4 SAGA 模式​

11.5 TCC 模式​

十二、消息聚合模式​

12.1 消息聚合器​

12.2 消息重组器​

12.3 消息分隔器​

12.4 消息批处理​

十三、消息代理模式​

13.1 消息代理模式​

13.2 消息总线模式​

13.3 消息网关模式​

13.4 消息桥接模式​

十四、集群模式​

14.1 主从模式​

14.2 集群模式​

14.3 镜像队列​

14.4 负载均衡​

14.5 故障转移​

14.6 高可用模式​

十五、流处理模式​

15.1 流式处理​

15.2 实时聚合​

15.3 窗口计算​

15.4 状态管理​

15.5 CEP 模式​

十六、微服务集成模式​

16.1 事件驱动架构​

16.2 CQRS 模式​

16.3 事件溯源​

16.4 最终一致性​

16.5 服务编排​

16.6 服务 choreography​

十七、消息治理模式​

17.1 消息版本控制​

17.2 消息契约​

17.3 消息 schema 管理​

17.4 消息兼容性​

17.5 消息演进​

十八、监控和运维模式​

18.1 消息追踪​

18.2 链路追踪​

18.3 消息监控​

18.4 性能监控​

18.5 告警模式​

十九、安全模式​

19.1 认证模式​

19.2 授权模式​

19.3 加密模式​

19.4 审计模式​

二十、反模式​

20.1 消息滥用​

20.2 过度设计​

20.3 性能瓶颈​

20.4 可靠性陷阱​

20.5 避免的反模式​