一、案例

你用支付宝给商家支付,如果是个仔细的人,会考虑我转账的话,会不会把我的钱扣了,商家没有收到我的钱?

一般我们使用支付宝或微信转账支付的时候,都是扫码,支付,然后立刻得到结果,说你支付了多少钱,如果你绑定的是银行卡,可能这个时候你并没有收到支付的确认消息。往往是在一段时间之后, 你会收到银行卡发来的短信,告诉你支付的信息。


小伙伴有没有想过:支付平台如何保证这笔帐不出问题?

支付平台必须保证数据正确性,保证数据并发安全性,保证数据最终一致性。

支付平台通过如下几种方式保证数据一致性:

1、分布式锁

这个比较容易理解,就是在操作某条数据时先锁定,可以用redis或zookeeper等常用框架来 实现。 比如我们在修改账单时,先锁定该账单,如果该账单有并发操作,后面的操作只能等待上一个操作的锁释放后再依次执行。

优点:能够保证数据强一致性。
缺点:高并发场景下可能有性能问题。

2、消息队列

消息队列是为了保证最终一致性,我们需要确保消息队列有ack机制,客户端收到消息并消费处理完成后&#x

我的架构梦:(七十) 消息中间件之RabbitMQ的消息可靠性相关推荐

  1. Spring Cloud Stream消息中间件通过RabbitMQ实现消息推送

    一.Spring Cloud Stream是什么 Spring Cloud Stream 是一个构建消息驱动微服务的框架. Spring Cloud Stream解决了开发人员无感知的使用消息中间件的 ...

  2. 【手把手】教你玩转消息中间件之RabbitMQ

    1.微服务下现存的各种问题 服务调用问题 当两个服务调用时,可以通过传统的HTTP方式,让服务A直接去调用服务B的接口,但是这种方式是同步的方式,虽然可以采用SpringBoot提供的@Async注解 ...

  3. 我的架构梦:(九十九)消息中间件之RocketMQ的高可用机制——消息消费高可用

    欢迎大家关注我的公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.前言 在前两篇我们介绍了 我的架构梦:(九十七)消息中间件之Ro ...

  4. 我的架构梦:(九十八)消息中间件之RocketMQ的高可用机制——消息发送高可用

    欢迎大家关注我的公众号[老周聊架构],Java后端主流技术栈的原理.源码分析.架构以及各种互联网高并发.高性能.高可用的解决方案. 一.前言 在上一篇我们介绍了 我的架构梦:(九十七)消息中间件之Ro ...

  5. 十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题)

    十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题) 引言 当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热.而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多 ...

  6. 十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题) .

    十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题) 引言 当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热.而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多 ...

  7. 让你心静的七十五条经典修心格言(转)

    转发一篇好文,闲来无事看看聊以自慰,修身养性! 让你心静的七十五条经典修心格言 1.心外无物,闲看庭前花开花落:去留无意,漫随天外云卷云舒. 2.静以修身,俭以养德,非淡泊无以明志,非宁静无以致远. ...

  8. 如何选择适合你的兴趣爱好(七十),表演

    围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第七十讲--表演. 话说今天坐公交车,前边一个妹子穿着十分性感.我目不转睛地看着,鼻子居然流血了,全车人都用异样的 ...

  9. (七十六):Masked Autoencoders Are Scalable Vision Learners

    (七十六):Masked Autoencoders Are Scalable Vision Learners Abstract 1. Introduction 2. Related Work 3. M ...

最新文章

  1. ajax请求数据渲染个人中心页面
  2. java 集合 介绍_java集合类基本简介
  3. 匿名内部类的简单使用
  4. 石川es6课程---5、函数-参数
  5. 【运筹学】线性规划 人工变量法 ( 单纯形法总结 | 人工变量法引入 | 人工变量法原理分析 | 人工变量法案例 )
  6. 加密和解密.net配置节
  7. 【图像处理】——创建一个新的图片
  8. Python应用实战-在pandas中利用hdf5高效存储数据
  9. Python之数据重塑——【stack()方法和unstack()方法、pivot()方法】
  10. linux下java转储线程_Java线程转储prio值与linux上的真实线程优先级不对应?
  11. akka入门书籍的示例代码
  12. kitti raw data development kit的使用
  13. python免费课程400节-小码王少编程经典课程都有哪几个 这里揭晓
  14. 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
  15. Python教学视频(九)math模块的使用
  16. 网易邮箱服务器怎么注册,免费网易域名邮箱申请教程(图)
  17. HDOJ 2027 统计元音
  18. C/S架构系统的自动更新功能设计与实现(四)
  19. 51单片机的交流电流检测系统设计(程序+原理图+PCB)
  20. React Native学习资源汇总

热门文章

  1. 在线教育行业未来的发展趋势
  2. 115.n阶方阵求逆
  3. 使用Geth设置基于权利证明POA的以太网私有网络
  4. 乐教乐学各关的解(61-70)
  5. 学习matlab(四)——概率与数理统计
  6. 【转】Mosquitto持久层群推消息实现思路
  7. java 获取微信头像和昵称 生成图片
  8. 首次使用HOOKAPI暴力破解SQLITE3加密的数据库
  9. ajax回调方法名使用什么事件,ajax的回调函数和匿名函数
  10. 【瑞禧】石墨烯修饰离子掺杂LDHs材料系列--石墨烯/钴镍双金属氢氧化物复合材料