尝试水平扩展连接到Postgres的Spring Boot APP时遇到丢失的更新

问题描述

我正在研究的架构由连接到单个数据源(即Postgresql数据库)的同一springboot应用程序的2个实例组成。

对于所有数据库查询,我都严重依赖Spring Data JPA。我使用JpaRepository接口执行诸如findById,save等操作。

Spring Boot应用程序的行为基本上类似于事件摄取器,其主要任务是接收请求并在数据库中进行更新。

负载均衡器可将请求定向到每个应用程序服务器两个。 很有可能需要2个或更多传入的并发请求来访问数据库中的同一行/实体。

今天,即使我们说了repository.saveAndFlush(),我们仍然注意到最后的保存发生在一个陈旧的实体上,即某些列未使用先前传入请求中的信息进行更新。

有人可以为我指明最佳设计和弹簧数据功能的正确方向,以避免在数据库中出现这种不一致的状态吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)