分布式锁业务场景驱动与共性
2023-12-18 22:40:59
分布式锁线上真实案例架构设计哲学本质解剖
1. 业务场景驱动:
①. 交易商品库锁定,防止用户重复下单.
②. MQ消息去重,防止消息重复消费:
a. 发送端去重
b. 消费端去重
③. 订单操作变更协同:
a. 在用户对商品下单后,订单状态为待支付,在某一时刻用户正在对该订单做支付操作,商家对该订单进行改价操作.
b. 其它类似状态的修改行为,也需要做串行处理,避免出现数据不一致性.
2. 业务场景共性:
(1). 共享资源:
①. 有哪些共享资源?
a. 用户、订单消息、订单.
②. 举例:
a. 比如分布式系统中,下单过程中,请求两台order服务的过程中,什么资源是可以控制的?
b. 如用户id下过单,用一种方式记录下来,再来下单的时候,就不能下单了.
c. 此时,用户id就变成一个共享资源了.
(2). 解决思路:
①. 共享资源互斥.
②. 共享资源串行化.
(3). 解决方案:
①. 在并发下,通过加锁对共享资源进行串行化.
②. 锁的问题:
a. 本地锁弊端
(1). 如果只是在分布式某一个服务加本地锁,是没有作用的.
(2). 可以使用分布式锁(集中化管理).
b. 分布式锁
(1). 只有申请共享资源通过,才能使用.否则,拒绝.
文章来源:https://blog.csdn.net/m0_68635815/article/details/135072776
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!