打算用 Spring AbstractRoutingDataSource 做一主多从 但是和事务搭配实现上感觉不太对头,怎么解决?

2021-04-06 18:40:13 +08:00
 Aruforce

需求

1. AbstractRoutingDataSource 想根据当前的事务状态来 routing 
2. 在从库上禁用更新操作
3. 每个请求 打在一个数据源上

问题

1. 在进行 data source routing 时,TransactionSynchronizationManager.isActualTransactionActive 总是返回 false ;按照代码的语义实际上是在事务之中的; 请问有什么其他的 API 可以使用么?
2. 在 data source routing 中想向 TransactionSynchronizationManager 注册 TransactionSynchronization 用于资源清理,但是返回 synchronization is not active

stackoverflow 似乎有人遇到了相同的问题

https://stackoverflow.com/questions/9203122/routing-read-write-transactions-to-primary-and-read-only-transactions-to-replica

Christophe Fondacci 这个回答。。似乎没有解决

1114 次点击
所在节点    程序员
2 条回复
coderwl
2021-04-06 19:04:35 +08:00
直接用现成的吧,我司用的 sharding-jdbc , 写 /读操作自动路由到主 /从库,支持单库事务,可以看下
Aruforce
2021-04-06 20:49:10 +08:00
@coderwl 我不是要用 我是要做个改造…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/768464

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX