RocketMq

消息队列

消息队列:先进先出的一种数据结构

功能:应用解耦、流量消峰(利用消息队列,将请求暂存请求,分散到相对较长的一段时间处理)、消息分发(一个消息可以有多个需求方)

RocketMQ

第一代Notify:推模式

第二代:拉模型

RockettMQ:长轮询的拉取方式

结构(各部分角色)

1. Producer:发信者

2. Consumer:收信者

3. Broker:负责暂存、传输的邮局。有两种odgaMaster支持读和写,Slave只支持读

4. NameServer:协调各方邮局的管理机构

 

消息存储

由Consumer Queue和CommitLog配合完成。

 

持久化

当消息通过Producer写入RockerMQ时,有两种写磁盘方式

1. 异步刷盘:返回写成功时,只是写入内存。等内存的消息量达到一定程度时,统一触发写

2. 同步刷盘:返回写成功时,消息已经同步写入磁盘。

业务场景

顺序消息

场景:保证同一个订单的消息顺序为生成、付款、发货。

1. 发送端:同一个业务ID的消息发送到同一个Message Queue。

2. 消费端:同一个Consumer Queue的消息不被并发处理

消息重复

需要使用方自己保证

方式一:消费逻辑的幂等性

方式二:维护一个记录,在消费前先查询是否已经消费过

posted @ 2022-06-20 00:28  huapyuan  阅读(31)  评论(0编辑  收藏  举报