【发布时间】:2023-02-09 21:34:42
【问题描述】:
我有一个用例,我需要在两个不同的区域创建完全相同的postgresql 数据库。这两个数据库中的一切都是相同的,即same schema and same tables and same data。
我有一个使用实现distributed transaction。因此,如果一个请求登陆 region-a 并写入 region-a 数据库,比如说 Person 表,那么必须将完全相同的记录写入这两个数据库中的 Person 表中,或者如果有任何错误,写入尝试应该是回滚。
我想弄清楚我是否可以在春季将两个不同的数据源与相同的 Person 实体和 CRUD 存储库相关联,以便 respoistory.save() 方法可以写入两个数据库中的 Person 表。
到目前为止,我遇到过AbstractRoutingDataSource,但那是为了在数据库中实现多租户。发现其他解决方案略有不同,用例是在不同的数据库中写入不同的记录(主要是基于各种数据点的分片)。
spring 是否提供任何开箱即用的解决方案,以便我可以在两个不同的数据库中实现对同一个表的事务写入。
【问题讨论】:
标签: spring transactions spring-data spring-transactions spring-repositories