28 | 答疑解惑(二):我的100元哪儿去了?
李玥
该思维导图由 AI 生成,仅供参考
你好,我是李玥。
今天这节课,是我们的“消息队列高手课第二阶段进阶篇的最后一节课,照例,我们在每一阶段的最后,安排一节课进行热点问题的答疑,针对同学们遇到的一些共同的问题,统一来进行详细的解答。
1. 我的 100 元哪儿去了?聊聊并发调用情况下的幂等性
在期中测试中,有这样一道题。
如果可以保证以下这些操作的原子性,哪些操作在并发调用的情况下具备幂等性?
A. f(n, a):给账户 n 转入 a 元
B. f(n, a):将账户 n 的余额更新为 a 元
C. f(n, b, a):如果账户 n 当前的余额为 b 元,那就将账户的余额更新为 n 元
D. f(n, v, a):如果账户 n 当前的流水号等于 v,那么给账户的余额加 a 元,并将流水号加一
这道题的正确答案是 D。很多同学都留言提问,选项 B 中,将账户 n 的余额更新为 a 元,这个操作不具备幂等性吗?
如果单单只是考虑这个操作,执行一次和执行多次,对系统的影响是一样的,账户 n 的余额都是 a 元。所以,这个操作确实是幂等的。但请你注意审题,我们的题目中说的是:“哪些操作在并发调用的情况下具备幂等性?”在并发调用的情况下,我们再来看一下 B 这个选项的操作是否还具备幂等性。
假设,账户余额 100 元,依次执行 2 次转账:
将账户余额设为 200 元;
将账户余额设为 300 元;
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
消息队列高手课第二阶段进阶篇的热点问题引发了深入讨论。文章首先探讨了在并发调用情况下的幂等性问题,以及Kafka和RocketMQ的选举机制。通过转账操作的例子,强调了在并发调用情况下幂等性的重要性。同时,介绍了Kafka和RocketMQ的选举机制,突出了它们各自的特点和适用性。此外,文章还探讨了消息队列的发展方向,特别是Pulsar存储计算分离的架构,以及未来消息队列的发展趋势。通过对现有流计算平台和消息队列的功能和不足进行对比,强调了存储计算分离设计的合理性和未来发展的可能性。总的来说,本文通过深入的技术讨论,为对消息队列和并发操作感兴趣的读者提供了有价值的参考和启发。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《消息队列高手课》,新⼈⾸单¥59
《消息队列高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(11)
- 最新
- 精选
- Geek_72a3d3老师,spring里面集成的kafka客户端和官方kafka客户端您更推荐哪个,spring里面集成的kafka客户端您认为怎么样?常用么
作者回复: 你是说spring-kafka么?这个只是在Spring中对kafka-clients做了一些封装而已,使用的就是kafka的官方客户端。
2019-10-111 - 陶源并发调用情况的第6条是不是应该为 “没收到‘将账户余额设为200元’这个请求的成功响应”
作者回复: 这个地方确实是笔误,我联系编辑小姐姐修改一下。感谢。
2019-10-10 - jack老师,之前您介绍kafka在zookeeper中的节点,似乎没有/controller这个临时节点啊?
作者回复: 是的,之前那张图中只有主要的节点,并不是Kafka在ZK中的全部节点
2019-10-02 - A9请问老师后面会再讲到序列化相关的知识点吗
作者回复: 在实践篇,我们还有有半节课专门来讲序列化的最佳实践。
2019-09-29 - lesliePulsar的计算性是真正的减负:就是觉得如果只是单纯的其它MQ那么做有点Cache的意思了,而且这个Cache还和No sql用的都是内存缓存。 刘文浩老师当时提的哪个我当时觉得最不一样的就在于提及的是CPU缓存,老师说的Pulsar的计算性是其它所不具备的不一样的特性-故而上堂课的留言我会提及既然有了Cpu干嘛要有GPU:任何工具都有两面性吧,如果不充分发挥特性异中发挥其特性,是很难在未来走下去的。 今年的十一长假基本上要和老师的课程一起度过了:一路走来学习的很辛苦,但是收获的喜悦替代了身体的辛苦;期待老师的案例篇吧:实战中度过十一长假,期待老师十一长假的更新;谢谢老师的分享,愿老师节日快乐。2019-09-2813
- Jxin针对这个答案。有个疑问,消息的顺序消费也是属于幂等性的范涛吗?2019-11-102
- Bachue Zhou其实 Pulsar 的架构并非终极形态,真正的终极形态就是把数据完全放在云存储上,完全不需要用户自己的来管理,中间的 Bookkeeper 就应该是个将数据上传到云存储的中间件而已,也应该是无状态的。2024-01-31归属地:上海
- 慌张而黑糖C. f(n, b, a):如果账户 n 当前的余额为 b 元,那就将账户的余额更新为 n 元,这里是更新为a元吧2024-01-12归属地:北京
- shangyu老师,c和d感觉都行啊,看不出来c有什么问题(´;︵;`)2021-02-092
- Jen🌛期待案例篇 老师节日快乐2019-09-30
收起评论