如何解决尝试水平扩展连接到Postgres的Spring Boot APP时遇到丢失的更新
我正在研究的架构由连接到单个数据源(即Postgresql数据库)的同一springboot应用程序的2个实例组成。
对于所有数据库查询,我都严重依赖Spring Data JPA。我使用JpaRepository接口执行诸如findById,save等操作。
Spring Boot应用程序的行为基本上类似于事件摄取器,其主要任务是接收请求并在数据库中进行更新。
负载均衡器可将请求定向到每个应用程序服务器两个。 很有可能需要2个或更多传入的并发请求来访问数据库中的同一行/实体。
今天,即使我们说了repository.saveAndFlush(),我们仍然注意到最后的保存发生在一个陈旧的实体上,即某些列未使用先前传入请求中的信息进行更新。
有人可以为我指明最佳设计和弹簧数据功能的正确方向,以避免在数据库中出现这种不一致的状态吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。