栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMQ相关知识

RabbitMQ相关知识

常见问题 如何保证RabbitMQ消息不丢失
  1. 生产者在投递消息时,开启消息确认机制,确保成功投递到MQ服务器
  2. 消费者在消费消息时,开启手动ACK机制,确保成功通知MQ服务器删除消息
  3. MQ服务器开启消息持久化机制,保证
消息确认机制 原理? 如何保证消息顺序消费?

原因
为什么会产生消息的顺序的问题呢?

因为在同一个消息队列中,耦合了不同的业务代码,各个业务之间又存在先后循序关系,所以需要保证消息过来同样需要保证按顺序的消费。

解决办法
把消息放到同一个消息队列中,然后在代码层保证业务按照业务逻辑顺序进行消费,然后手动ack,否则不通知MQ删除消息。

如何解决消息堆积的情况
  1. 定义一个消息队列
  2. 定义一个死信队列
  3. 给消息队列设置过期时间
  4. 声明当前队列绑定的死信队列
  5. 给死信队列设置监听消费者消费消息(不要部署跟普通消费者在同一个服务器中)
如何实现延迟消费
  1. 定义一个消息队列
  2. 定义一个死信队列
  3. 不给队列设置监听消费者 来消费消息
  4. 给消息队列设置过期时间
  5. 声明当前队列绑定的死信队列
  6. 给死信队列设置监听消费者消费消息
如何保证消息的幂等性

给消息设置messageId然后使用分布式锁进行控制

如何保证消息的分布式事务
  1. 保证投递消息时的消息确认。
  2. 保证消费者的消费时的手动确认(ack)
  3. 消息中间件的持久化
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号