RabbitMQ幂等性概念(七)
2024-10-07 10:16:46
幂等性是什么?
我们可以借鉴数据库的乐观锁机制
比如我们执行一条更新库存的sql语句update user set count=count-1,version=version+1 where version=1
幂等性保障
在海量订单产生的业务高峰期间,如何避免消息的重复消费问题?
消费端实现幂等性,就意味着,我们的消息永远不会消费多次,即使我们收到多条一样的消息
业界主流的幂等性操作:
唯一ID+指纹码机制,利用数据库主键去重
select count(1)from user where id = 唯一id+指纹码
好处:实现简单
坏处:高并发下有数据库写入的性能瓶颈
解决方案:跟进ID进行分库分表进行算法路由
利用Redis的原子特性实现(一致性,单一性)
使用Redis进行幂等,需要考虑的问题
是否对数据进行落库,如果落库的话,关键解决的问题是数据库和缓存如何做到原子性?
如果不进行落库,都存储到缓存中。如何设置定时同步的策略?
解决方案:
双缓存模式,异步写入到缓存中,也可以写入到数据库中,
最终会有一个回调函数检查,这样能保障最终一致性,不能保证100%的实时性,
定是同步,比如databus同步
最新文章
- 从SQL下载大量数据到Excel
- PHP守护进程
- Ajax请求WebService跨域问题 [转载]
- zookeeper 用法和日常运维
- makefile基础实例讲解 分类: C/C++ 2015-03-16 10:11 66人阅读 评论(0) 收藏
- Hadoop学习1--解决启动过程中的问题
- 【转】代码编辑器(二)-SynEdit
- JS 学习笔记--4---运算符
- web标准(复习)--1
- Android layoutInflate.inflate 方法具体解释,removeView()错误解决
- spring知识点全部复习
- gulp 运用 的理解
- iOS - Quartz 2D 手势截屏绘制
- Mongodb副本集--Out of memory: Kill process 37325 (mongod)
- 数据可视化的开源方案: Superset vs Redash vs Metabase (一)
- Python 基础算法
- WPF编程,将控件所呈现的内容保存成图像的一种方法。
- Java 获取指定包下的所有类
- SQL Server 的索引结构实例
- OpenERP report doesn't work
热门文章
- linux 扩展正则表达式 egrep
- c++ 加载库错误问题解决
- [知乎]ARM 到底是什么
- Mysql常用时间函数的用法和应用
- pistat 查看进程状态
- Educational Codeforces Round 72 (Rated for Div. 2) Solution
- 【FAQ】P3. 为什么 torch.cuda.is_available() 是 False
- vscode 热部署 spring-mvc
- react-native样式引入
- 表单提交 multipart/form-data 和 x-www-form-urlencoded的区别