我的架构梦:(七十) 消息中间件之RabbitMQ的消息可靠性
一、案例
你用支付宝给商家支付,如果是个仔细的人,会考虑我转账的话,会不会把我的钱扣了,商家没有收到我的钱?
一般我们使用支付宝或微信转账支付的时候,都是扫码,支付,然后立刻得到结果,说你支付了多少钱,如果你绑定的是银行卡,可能这个时候你并没有收到支付的确认消息。往往是在一段时间之后, 你会收到银行卡发来的短信,告诉你支付的信息。
小伙伴有没有想过:支付平台如何保证这笔帐不出问题?
支付平台必须保证数据正确性,保证数据并发安全性,保证数据最终一致性。
支付平台通过如下几种方式保证数据一致性:
1、分布式锁
这个比较容易理解,就是在操作某条数据时先锁定,可以用redis或zookeeper等常用框架来 实现。 比如我们在修改账单时,先锁定该账单,如果该账单有并发操作,后面的操作只能等待上一个操作的锁释放后再依次执行。
优点:能够保证数据强一致性。
缺点:高并发场景下可能有性能问题。
2、消息队列
消息队列是为了保证最终一致性,我们需要确保消息队列有ack机制,客户端收到消息并消费处理完成后&#x
我的架构梦:(七十) 消息中间件之RabbitMQ的消息可靠性相关推荐
- Spring Cloud Stream消息中间件通过RabbitMQ实现消息推送
一.Spring Cloud Stream是什么 Spring Cloud Stream 是一个构建消息驱动微服务的框架. Spring Cloud Stream解决了开发人员无感知的使用消息中间件的 ...
- 【手把手】教你玩转消息中间件之RabbitMQ
1.微服务下现存的各种问题 服务调用问题 当两个服务调用时,可以通过传统的HTTP方式,让服务A直接去调用服务B的接口,但是这种方式是同步的方式,虽然可以采用SpringBoot提供的@Async注解 ...
- 我的架构梦:(九十九)消息中间件之RocketMQ的高可用机制——消息消费高可用
欢迎大家关注我的公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.前言 在前两篇我们介绍了 我的架构梦:(九十七)消息中间件之Ro ...
- 我的架构梦:(九十八)消息中间件之RocketMQ的高可用机制——消息发送高可用
欢迎大家关注我的公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.前言 在上一篇我们介绍了 我的架构梦:(九十七)消息中间件之Ro ...
- 十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题)
十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题) 引言 当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热.而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多 ...
- 十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题) .
十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题) 引言 当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热.而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多 ...
- 让你心静的七十五条经典修心格言(转)
转发一篇好文,闲来无事看看聊以自慰,修身养性! 让你心静的七十五条经典修心格言 1.心外无物,闲看庭前花开花落:去留无意,漫随天外云卷云舒. 2.静以修身,俭以养德,非淡泊无以明志,非宁静无以致远. ...
- 如何选择适合你的兴趣爱好(七十),表演
围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第七十讲--表演. 话说今天坐公交车,前边一个妹子穿着十分性感.我目不转睛地看着,鼻子居然流血了,全车人都用异样的 ...
- (七十六):Masked Autoencoders Are Scalable Vision Learners
(七十六):Masked Autoencoders Are Scalable Vision Learners Abstract 1. Introduction 2. Related Work 3. M ...
最新文章
- ajax请求数据渲染个人中心页面
- java 集合 介绍_java集合类基本简介
- 匿名内部类的简单使用
- 石川es6课程---5、函数-参数
- 【运筹学】线性规划 人工变量法 ( 单纯形法总结 | 人工变量法引入 | 人工变量法原理分析 | 人工变量法案例 )
- 加密和解密.net配置节
- 【图像处理】——创建一个新的图片
- Python应用实战-在pandas中利用hdf5高效存储数据
- Python之数据重塑——【stack()方法和unstack()方法、pivot()方法】
- linux下java转储线程_Java线程转储prio值与linux上的真实线程优先级不对应?
- akka入门书籍的示例代码
- kitti raw data development kit的使用
- python免费课程400节-小码王少编程经典课程都有哪几个 这里揭晓
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
- Python教学视频(九)math模块的使用
- 网易邮箱服务器怎么注册,免费网易域名邮箱申请教程(图)
- HDOJ 2027 统计元音
- C/S架构系统的自动更新功能设计与实现(四)
- 51单片机的交流电流检测系统设计(程序+原理图+PCB)
- React Native学习资源汇总