侧边栏壁纸
博主头像
5faith分享栈

憧憬未来

  • 累计撰写 14 篇文章
  • 累计创建 14 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

高并发下如何保证消息消费一次

faith5
2025-02-07 / 0 评论 / 0 点赞 / 21 阅读 / 0 字

先确保消息不丢失, 后确保消息消费消费一次

1. 生产者

可以开启ACK消息确认机制, 只有生产者收到ACK代表消息发送成功; 没有收到就需要重新发送消息

2. 消息队列

消息持久化先保持到缓存,缓存满时才进行持久

  • 异步持久化: 接收消息后会先同步到缓存(同时发送ACK), 缓存满后才同步到磁盘当中中
  • 同步持久化:: 接收消息后会立刻同步磁盘

3. 消费者(可重复消费消息)

引入消息记录表(或是缓存), 判断消息是否被消费完成
image-giep.png

注: 当执行代码没有及时删除消息记录录, 会出现循环判断消息是否消费完成, 需要开启后台定时根据业务策略处理长时间未完成的消息

0

评论区