首页 > 其他分享 >12-RabbitMQ高级特性-在海量订单产生的业务高峰期, 如何避免消息的重复消费问题

12-RabbitMQ高级特性-在海量订单产生的业务高峰期, 如何避免消息的重复消费问题

时间:2022-10-04 23:22:16浏览次数:57  
标签:count 12 海量 RabbitMQ ID version 指纹 消费

幂等性概念详解

幂等性是什么

  • 可以借鉴数据库的乐观锁机制
  • 比如执行一条更新库存的SQL
    • update t_reps set count = count -1 , version = version + 1 where version = 1;

MQ最重要的两个特点就是生产端保证可靠性投递消费端幂等性消费

消费端-幂等性保障

  • 由消费端实现幂等性, 就意味着, 我们的消息永远不会消费多次, 即使收到多条一样的消息
  • 实现方式: 唯一ID + 指纹码机制
    • 唯一ID或指纹码机制, 利用数据库主键去重
    • select count(1) from t_order where id = 唯一ID(或者) 指纹码
    • 好处: 实现简单

标签:count,12,海量,RabbitMQ,ID,version,指纹,消费
From: https://www.cnblogs.com/flower-dance/p/16754797.html

相关文章

  • 13-RabbitMQ高级特性-Confirm确认消息
    Confirm确认消息理解Confirm消息确认机制消息的确认,是指投递消息后,如果Broker收到消息,则会给我们生产者一个应答生产者进行接收应答用来确定这条消息是否正常的......
  • 04-基于CentOS7安装RabbitMQ3.10.7
    RabbitMQ安装与入门安装与启动我实在是找不到这么老的版本了,直接用最新版本的,按照道理来说,新版本是兼容老版本的官网地址https://www.rabbitmq.com/Erlang安......
  • 05-RabbitMQ控制台入门及其Java简单操作
    MQ控制台简单操作建立Exchange新建Exchange成功新建Queue新建Queue成功建立Exchange与Queue的关系建立关系成功路由键:就是指发送到Exchange的消息,通......
  • 06-RabbitMQ核心API-Exchange
    Exchange流程图接收消息,并根据路由键转发消息所绑定的队列Exchange属性属性含义name交换机名称type交换机类型[direct|topic|fanout......
  • 《三国演义》第五回,发矫诏诸镇应曹公12
    《三国演义》第五回,发矫诏诸镇应曹公http://ds.163.com/article/6338b296880c710001957580/?2022/10/06_=2022/10/05http://ds.163.com/feed/6338b296880c710001957580/?202......
  • 03-RabbitMQ核心概念[简介, AMQP协议, 整体架构, 消息流转]
    核心概念RabbitMQ简介RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是......
  • 12.设计模式-适配器模式-对象适配器
    //1.定义目标被适配类//2.定义适配器接口,期望输出//3.实现适配器接口,被适配对象,通过set/构造方法注入进行组合//4.测试/**被适配类,输出的是220V*/publicclassVo......
  • 基于Kafka+ELK搭建海量日志平台
    早在传统的单体应用时代,查看日志大都通过SSH客户端登服务器去看,使用较多的命令就是less或者tail。如果服务部署了好几台,就要分别登录到这几台机器上看,等到了分布式和微服......
  • 奥德修斯变成了乞丐,穿过茂密的山林和12
    奥德修斯变成了乞丐,穿过茂密的山林和http://ds.163.com/article/6338ac4c880c710001957390/?2022_1005=20221005uhttp://ds.163.com/feed/6338ac4c880c710001957390/?2022_1......
  • int128
    __int128重中之重:NOIP能用(也不用写高精了)(还是要看情况的,毕竟1e38还是太弱小了)如果遇到longlong开不下的情况,可以使用__int128来博一把!note:__int128仅64位GCC......