
MQ
文章平均质量分 57
MessageQueue
追風者0x8ffd98a8
只想见见天地。
展开
-
初识惰性队列
初识惰性队列 在高并发场景下,MQ 中涌入大量请求,消息持续积压,如何处理? 除了扩容多个消费者的情况下,可以采用惰性队列方式(性能差)。 惰性队列的特征: 接收到消息后直接存入磁盘而非内存。 消费者要消费消息时才从磁盘中读取加载到内存。 支持数百万条的数据存储。 要设置队列为惰性队列,只需要在声明队列时,指定 x-queue-mode 属性为 lazy 即可。 SpringAMQP 声明惰性队列 @Bean 对象中(推荐) // Bean 对象声明惰性队列 /** * 声明惰性队列原创 2022-03-03 17:05:28 · 322 阅读 · 0 评论 -
死信交换机与延迟队列
死信交换机与延迟队列死信交换机延迟队列 死信交换机 满足下列情况一点,即为死信(dead letter): 消费者使用 basic.reject 或 basic.nack 声明消费失败,并且消息的 requeue 参数设置为 false。 消息是一个过期消息,超时无人消费。 要投递的队列满了,最早的消息可能成为死信。 如果该队列配置了 dead-letter-exchange 属性,指定了一个交换机,那么队列中的死信就会投递到这个交换机中,这个交换机就叫 死信交换机(DLX)。 死信交换机与前文的异常交原创 2022-03-03 16:53:20 · 339 阅读 · 0 评论 -
RabbitMQ 保证消息可靠性传输
RabbitMQ 保证消息可靠性传输消息可靠性问题解决消息可靠性问题生产者到 Queue 阶段消息丢失Queue 到消费者阶段 我们知道,RabbltMQ 不能够保证消息不会丢失,那么在高并发场景下,如何保证消息的可靠性传输? 消息可靠性问题 Publisher 发送消息到 Exchange 阶段: Publisher 发送的消息未到达 Exchange。 消息到达 Exchange 未到达 Queue。 Exchange 发送消息到 Queue 阶段:MQ 宕机,Queue 将消息丢失。 Queue原创 2022-03-03 16:46:20 · 1766 阅读 · 0 评论 -
RabbitMQ 入门之发布订阅模式
RabbitMQ 入门之发布订阅模式RabbitMQ 的结构RabbitMQ 的六种模式SpringAMQPFanout Exchange 广播模式Direct Exchange 路由模式Topic Exchange 主题模式消息转换器 前面已经提过了引入 MQ 的优点,解耦、异步和流量削峰,这里不再赘述。 RabbitMQ 的结构 RabbitMQ 有几个个概念: RoutingKey 路由键,在发布订阅模型中根据 RoutingKey 可以找到具体队列。 Publisher 生产者,生产消息发送给 E原创 2022-03-03 08:49:37 · 2371 阅读 · 0 评论 -
防止RabbitMQ重复消费
防止RabbitMQ重复消费 消息重复消费的弊端:消息重复消费可能会出现数据不一致/数据冗余问题,在后期的查找返回一个对象的场景时会出现异常。 保证消息幂等性的方式: 消费者将消息存储到 set/hashMap 中,进行去重/计数,根据结果来判断消息是否处理。 对db进行插入操作时,对数据进行查询,如果存在,则不进行操作。 在消息中使用全局 ID ,并向 Redis 中进行查询,若存在则不进行处理。 ...原创 2022-02-25 08:12:18 · 322 阅读 · 0 评论 -
MQ的选型
MQ的选型与区别MQ的作用MQ的区别 MQ的作用 MQ的三大核心作用: 解耦:从A系统调用B系统,改为A系统发消息到消息队列,B系统从消息队列中取消息。耦合消息队列达到代码解耦效果。 异步:将同步操作改为异步操作,增大系统性能效率,增大吞吐量。 流量削峰 :流量高峰期,大量请求涌入MQ,消息积压,高峰期结束,逐渐消费掉消息。 MQ的缺点: 系统可用性降低。如果MQ挂掉,系统直接崩溃。 系统复杂度提高。 数据一致性问题。A系统调用B、C系统,A、B系统数据操作成功,C系统操作失败的情况。 MQ的区别原创 2022-02-24 20:25:18 · 166 阅读 · 0 评论