分布式锁业务场景驱动与共性

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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。