并发锁问题

问题描述 投票:0回答:1

我是数据库和微服务的新手。我试图理解一种不太可能发生但可能发生的极端情况。假设库存中有 1 个对象,并且两个用户尝试同时处理(完全相同的时间) - 意味着两个服务正在尝试同时锁定,这种情况如何处理?

(我理解锁只能访问一个线程,但从微服务的角度思考,它是如何处理的?)

database apache-kafka microservices system-design
1个回答
0
投票

从微服务的角度来看,Rock通常是通过数据库来实现的。 可以通过RDBMS、Redis等方式,通常通过名称获取请求时间,单位为毫秒、纳秒。 因为无论同时发出多少个请求,所请求的服务都会首先根据请求时间获取锁(例如 LOCK_2024070810551111111),并在逻辑执行后释放获取的锁。

© www.soinside.com 2019 - 2024. All rights reserved.