当前播放: 如何确保分布式场景下的并发幂等性?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
合辑:新版短视频
如何做服务端稳定性测试?
如何通过反垃圾邮件引擎来理解机器学习?
如何采用“防御”思想提高服务端可用性?
微服务的SLA服务可用性等于4个9,我是怎么做到的?
影响性能的关键环节和性能指标有哪些?
文件资源是如何影响到网站性能的?
创业案例分享:从冷启动到实现百万营收都要做哪些事情?
新入行的测试工程师,如何进阶为测试专家?
如何高效地实施 CSS 方法论中的BEM?
利用FP、FMP和FCP如何评估应用首屏性能?
如何基于可靠事件模式实现数据最终一致性?
Server与Web常用的功能自动化测试框架该如何选择?
Target事件中体现了哪些数据道德与法律问题?
彻底掌握JVM内存设置的金钥匙
如何基于微内核架构解决系统扩展性问题?
到底什么是列式存储?它凭啥速度飞快?
如何有效识别和解决代码中存在的循环依赖问题?
11分钟搞定JVM的双亲委派机制
如何搭建一套前端监控系统?
如何实现Flutter自动化埋点?
如何使用JMeter设计混合交易容量场景?
如何使用可编程前置处理器开发JMeter脚本?
论全链路压测的手段与技巧
如何编写出优雅的Go程序?
Go语言开发中的常见陷阱与规避方法
支付中台对账中心如何建设?
一个基本的支付系统由哪些部分组成?
CPU服务器中如何高效实现TensorFlow模型推断?
开发人员必须要了解的Web安全隐患和防御措施
机房搬迁或上云,系统该如何做到平滑迁移?
如何自定义你的Video播放器?
如何确保分布式场景下的并发幂等性?
如何设计一个良好的API接口?
如何深入理解分布式事务中的可靠消息投递机制?
如何在数据库中存储密码更安全?
如何有效且优雅地记录数据变更历史?
如何有效解决代码的圈复杂度?
如何解决热点账户的高并发更新问题?
二维码扫描登录是什么原理?
NLPer如何深入浅出解析Transformer模型?
如何搞定Python Web应用的服务部署?
15分钟带你快速掌握正则表达式
移动端新旧布局方式上有何不同呢?
如何写出优雅的移动端布局代码?
如何快速搭建基于Transformer的神经机器翻译模型?
神经机器翻译模型演进三部曲
如何为部署在AWS上的应用接入App Mesh?
如何快速开发数据平台?
binlog数据恢复有哪几种方法?
后端缓存系统的设计要点有哪些?

如何确保分布式场景下的并发幂等性?

梁桂钊 微微科技架构师

在单体系统时代,由于我们的程序部署在单个物理机中,因此,我们可以直接通过锁机制,来控制并发请求,实现当前只有一个请求就能够执行业务的操作。现在,分布式服务间的并发问题,给我们带来了新的技术挑战。

讲师介绍

梁桂钊,微微科技架构师,《高可用可伸缩微服务架构》联合作者,曾供职于阿里巴巴,拥有多年的互联网分布式与高并发架构实践经验。目前,致力于新零售电商业务,擅长微服务生态建设和基础架构平台支撑。

展开
¥4.99 购买
开通VIP
99+
登录 后留言

精选留言(20)

  • 编程之美
    梁老师真的讲得太好了。等以后有机会一定要拜读一下您的《高可用可伸缩微服务架构》这本书
    2020-04-09
    8
  • 伟伟
    幂等定义是多次执行和一次执行结果一样,不涉及数据修改,不用幂等
    2020-04-09
    5
  • 0bug

    1,分布式锁是解决多线程或进程安全操作共享资源的问题; 幂等性是解决重复操作的问题。
    2,持有分布式锁的线程执行完成后(包括异常,限流等场景),是需要释放锁的。除非如作者所说,业务处理时间超过了分布式锁的超时时间(10分钟),否则即便是重试也是需要重新枪占分布式锁。所以这个时候和幂等的主题已经没有关系了。
    3,集群环境下,通过数据库唯一键作为幂等条件就可以了,涉及到分库分表,把唯一健生成策略中带有分表标志位就可以了。
    2020-04-08
    2
    4
  • 文武木子
    Redis分布式锁可以解决一大部分问题
    2020-04-08
    2
    4
  • 一个好名字
    很及时哈哈,正好今天遇到相关问题
    2020-04-08
    3
  • 有米
    话不多说,一条sql搞定:update table set status=1 where id=1 and status=0;
    2020-04-13
    2
    2
  • 旭东(Frank)
    幂等就一个原则:请求防(分布式)并发,结果要唯一性持久化(如:落库)
    2020-04-09
    2
  • 黄圣
    666
    2020-04-08
    2
  • 一心向北_
    赞👍
    2020-04-08
    2
  • 郭小龙
    先执行select再insert不妥,并发下select可能都是一致的 再insert有问题
    2020-04-08
    4
    2
  • w0807m
    状态机这个部分,如果只是在程序里面,先判断状态在操作的话,应该会存在问题。一般的状态流转,在sql都是做条件更新,也就是乐观锁的方式。
    2020-04-08
    1
    1
  • 0bug
    应该是集群环境保证幂等性吧,有点不严谨
    2020-04-08
    1
  • 面对疾风吧
    1,分布式锁是解决多线程或进程安全操作共享资源的问题; 幂等性是解决重复操作的问题。
    2,持有分布式锁的线程执行完成后(包括异常,限流等场景),是需要释放锁的。除非如作者所说,业务处理时间超过了分布式锁的超时时间(10分钟),否则即便是重试也是需要重新枪占分布式锁。所以这个时候和幂等的主题已经没有关系了。
    3,集群环境下,通过数据库唯一键作为幂等条件就可以了,涉及到分库分表,把唯一健生成策略中带有分表标志位就可以了。
    4,使用状态机记录任务执行状态,避免重复消费
    2020-04-20
  • 邓呵呵
    redis设置合适的过期时间,如何找到合适的时间?
    2020-04-12
    1
  • Neo
    setnx和expire组合使用实现分布式锁会有问题,这两个操作无法保证原子性,从而可能出现死锁(setnx执行成,exipire执行失败)
    2020-04-10
    3
  • 🌜
    老师您好,数据库唯一索引,select + insert,并发读的情况下,并发写有唯一索引约束,也能保证一个成功啊。如果分表,分区键一样hash会落到一个表里啊,这样做有什么问题吗?
    2020-04-10
    1
  • liyanzhaog
    在分布式锁和数据持久化方案中,需要对资源进行二次校验?针对转账场景是怎么实现的呢,没太想明白具体过程
    2020-04-10
  • 悠悠小竹子
    分库分表为啥就不能用唯一索引了呢?先查询后插入指定表
    2020-04-09
    1
  • 松花皮蛋me
    分布式锁的问题不是失败重试的场景,而是在过期时间内都没办法完成业务,导致多个任务获取到锁,所以通常还要一个辅助任务定时给令牌进行续期。
    2020-04-08
    1
  • 一根大白菜
    喜欢梁老师的声音👀
    2020-04-08
收起评论
其他推荐
09:13
如何深入理解分布式事务中的可靠消息投递机制?
梁桂钊 微微科技架构师
试看
40:33
用 Kong 构建混合环境下的服务网络
蔡书 PolarisTech联合创始人
试看
51:36
腾讯云 Service Mesh 的架构演进与生产实践
单家骏 腾讯高级工程师
试看