我们的微服务正在调用第三方服务,使用REST访问(读取/更新)共享数据库中的相同记录。
用例1:同一个微服务进行多次调用以访问相同的记录
示例:
用例2:多个微服务发出多个调用以访问同一个记录
在用例1中解释的问题将在本例中恶化,原因是更新数据库中相同记录的调用次数较多。
编辑:13-4-2021共享数据库使用REST向我们的微服务公开,我们对物理数据库和公开的REST没有任何控制,无法在数据库级别实现任何事务或锁定机制。
发布于 2021-04-13 07:44:22
我不知道您使用的是哪个数据库,但是传统的关系数据库如: oracle、postgresql、mysql、db2等等。已经使用正在更新的记录中的锁来解决此类问题,以确保不存在并发问题。
我的意思是,如果您打开一个事务,在其中读取一个值,然后更新它,就不会有任何问题,因为如果您尝试用当前设置的不同版本号(过时的版本)更新数据库中的一个行,数据库就不会让它更新。
https://stackoverflow.com/questions/67067104
复制相似问题