当前播放: 高并发场景下锁的使用技巧(悲观锁/乐观锁/分布式锁)
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
合辑:新版短视频
Kafka某台broker IO阻塞,为何会导致发送方无法发送消息?
什么是C++中的The Rule of Three?
基于时序特性,如何构建一个时序存储引擎?
如何利用反射和泛型编程让你的Java代码更优雅?
C++中为什么move constructor需要加noexcept?
如何使用Postman做接口自动化测试?
给你点“颜色”瞧瞧
如何用Spark实现一个通用大数据计算引擎?
如何让你的Robot Framework飞起来?
如何透彻理解Selenium和WebDriver?
Spring Data JPA 如何进行复杂动态查询?
Spring Data JPA如何实现动态部分更新?
未来的编程语言长什么样?
高并发场景下锁的使用技巧(悲观锁/乐观锁/分布式锁)
为什么React组件要声明key?
为什么React不推荐使用Mixin?
如何设计一个高可用的配置中心?
如何通过代码技巧提升内存使用效率?
如何全面地改造Robust?
如何基于Netty构建一个简单的RPC服务?
Spring Boot中如何使用HTTP/2?
教你10分钟玩转Gradle plugin
如何深入理解Kube-Proxy?
如何深入理解Kubernetes架构?
如何使用和优化iOS中的WebView?
一个1000万资金重复支付的代码剖析
如何实现数据异构的多级缓存策略?
如何从 CRD 扩展开发切入Kubernetes源码学习?
如何更轻松简单地从源码编译部署Kubernetes?
如何设计并实现一个高可用的订单系统?
ZooKeeper的ZAB算法与Paxos的本质区别是什么?
微服务框架Apache ServiceComb的设计思想有哪些?
如何深入理解分布式事务TCC实现原理?
SSR 、CSR、预渲染、同构等首屏优化技术要如何选择?
如何利用ClassPath解决Java开发工程问题?
如何读懂Babel转换出的JavaScript代码?
大厂前端面试中经常提到的Promise要如何实现?
使用 Vue 开发小程序是怎么做到的?
为什么CSS要放在header底部,JavaScript要放在body底部?
前端Router是怎么实现的?
如何理解现代发布策略?以Kubernetes为例
JavaScript中如何封装一个具有自动失败重试功能的HTTP模块?
JavaScript中如何优雅地实现函数防抖?
服务发现技术是如何演进出来的?
HTTP/2能带来哪些性能提升?
如何快速对请求链路的关键点进行网络问题排查?
React 中如何实现模块的按需加载?
究竟要不要使用React Hooks?
TLS1.3原理以及在Nginx上的应用
如何利用有效的资源扛住618大促流量?

高并发场景下锁的使用技巧(悲观锁/乐观锁/分布式锁)

冯忠旗 京东数科高级架构师

如何确保一个方法,或者一块代码在高并发情况下,同一时间只能被一个线程执行,单体应用可以使用 Java 并发处理相关的 API 进行控制,但单体应用架构演变为分布式微服务架构后,跨 JVM 或者跨进程的实例部署,就没办法通过 Java 锁的机制来控制并发了。那有哪些锁可以使用?Java 中的重量级锁 synchronize、Java 中的轻量级锁和 CAS、数据库行锁、悲观锁、乐观锁、分布式锁,这些锁之间有什么区别呢?

讲师介绍

冯忠旗,京东数科高级架构师,全球软件开发大会讲师。2015~2018 年在宜信支付与结算中心担任支付结算平台技术负责人,2010~2014 年在 IBM CDL 中国研发中心担任 ITAAS 私有云 RingCloud 技术团队研发负责人。

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

精选留言(10)

  • ChenGuop
    补充一下,redis 分布式锁的误解锁过程,检验解锁的value值是否是同一个锁后,在进行删除,使用lua 脚本执行保证一致性!

    作者回复: 👍👍👍

    2019-11-15
    2
    4
  • Geek_e05a5e
    冯老师的每个分享都干货满满,刚好项目中有资金管理,先前的防止重复支付到这个锁的方案介绍,都深有感触,帮我在项目实施中操供了坚实有效的方法。感谢!

    作者回复: 强👍

    2019-11-15
    3
  • KCMDY
    学习了

    作者回复: 👍

    2019-11-25
    1
  • 张小宇
    redis 分布式锁的后台守护线程实现机制,可否结合代码深入讲解一下,谢谢!

    作者回复: 这块本来不是本次的重点,后面展开下🙏

    2019-11-18
    1
  • zero
    感谢分享,很有感触

    作者回复: 谢谢支持

    2019-11-17
    1
  • 一只特立独行的猪
    想起以前同事写的神一般的同步代码,提交数据时把数据库里的数据先查询出来,把数据库里对应的数据删掉,然后和新数据聚合到一起再插入数据库。。。 所以发生了好几次丢数据的情况。。。

    作者回复: 😃😃

    2019-11-15
    1
  • 搬码工
    每个分享都是干货,希望能开一门课

    作者回复: 会考虑的,目前主要是工作时间紧张😊

    2019-11-14
    1
  • QQ怪
    老师讲的不错,解惑了很多

    作者回复: 谢谢

    2019-12-03
  • ty_young
    老师您好,请问select for update的事务隔离级别是读提交来避免超卖,那可重复读的隔离级别行不行; 一般业务系统mysql的隔离级别设置成读提交还是可重复读

    作者回复: 一般业务还是需要根据具体场景判断,不能一概而论。我讲的案例中建议是read committed

    2019-11-28
  • Zend
    老师,用分布式锁时,还有必要加上synchronize或者Lock等单体应用中的锁机制

    作者回复: 根据具体问题选择方案,比如使用redis锁解决了你的业务问题,其他的就不需要。也不是说sync没有场景,需要根据自己的业务场景判断。

    2019-11-25
    1
收起评论
其他推荐
36:19
Go工程项目实践
毛剑 bilibili数据平台部技术总监
免费
43:04
大规模实时图计算在PayPal风险管理系统的应用
张彭善 PayPal大数据研发架构师
试看
41:43
互联网金融产品个性化营销算法的探索和实践
赵争超 同盾科技资深算法专家
试看