消息队列高手课
李玥
美团高级技术专家
51348 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
进阶篇 (21讲)
消息队列高手课
15
15
1.0x
00:00/00:00
登录|注册

28 | 答疑解惑(二):我的100元哪儿去了?

你好,我是李玥。
今天这节课,是我们的“消息队列高手课第二阶段进阶篇的最后一节课,照例,我们在每一阶段的最后,安排一节课进行热点问题的答疑,针对同学们遇到的一些共同的问题,统一来进行详细的解答。

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
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《消息队列高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • Geek_72a3d3
    老师,spring里面集成的kafka客户端和官方kafka客户端您更推荐哪个,spring里面集成的kafka客户端您认为怎么样?常用么

    作者回复: 你是说spring-kafka么?这个只是在Spring中对kafka-clients做了一些封装而已,使用的就是kafka的官方客户端。

    1
  • 陶源
    并发调用情况的第6条是不是应该为 “没收到‘将账户余额设为200元’这个请求的成功响应”

    作者回复: 这个地方确实是笔误,我联系编辑小姐姐修改一下。感谢。

  • jack
    老师,之前您介绍kafka在zookeeper中的节点,似乎没有/controller这个临时节点啊?

    作者回复: 是的,之前那张图中只有主要的节点,并不是Kafka在ZK中的全部节点

  • A9
    请问老师后面会再讲到序列化相关的知识点吗

    作者回复: 在实践篇,我们还有有半节课专门来讲序列化的最佳实践。

  • leslie
    Pulsar的计算性是真正的减负:就是觉得如果只是单纯的其它MQ那么做有点Cache的意思了,而且这个Cache还和No sql用的都是内存缓存。 刘文浩老师当时提的哪个我当时觉得最不一样的就在于提及的是CPU缓存,老师说的Pulsar的计算性是其它所不具备的不一样的特性-故而上堂课的留言我会提及既然有了Cpu干嘛要有GPU:任何工具都有两面性吧,如果不充分发挥特性异中发挥其特性,是很难在未来走下去的。 今年的十一长假基本上要和老师的课程一起度过了:一路走来学习的很辛苦,但是收获的喜悦替代了身体的辛苦;期待老师的案例篇吧:实战中度过十一长假,期待老师十一长假的更新;谢谢老师的分享,愿老师节日快乐。
    1
    3
  • Jxin
    针对这个答案。有个疑问,消息的顺序消费也是属于幂等性的范涛吗?
    2
  • shangyu
    老师,c和d感觉都行啊,看不出来c有什么问题(´;︵;`)
    2
  • Jen🌛
    期待案例篇 老师节日快乐
  • Better me
    提前祝老师节日快乐啊,假期有时间必须把课程相关源码过一下
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部