当项目越来越大,数据量越来越多,模块越来越复杂的情况下,我想同时操作好多数据库(很可能是还跨越不同数据库产品)很常见。 如何能够在跨库时保证事务操作(原子操作)呢? 希望听听大家的意见~
一般来说,不管系统多复杂,跨库的事务需要尽量避免。 如果真的避免不了,常用的方法是两段式提交,lz可以去搜一下,简单的说就是找一个中心点来协调两个独立的库,从而实现事务。
大致思想是,两个事务,在保证一个"中心"事务是完整的情况下,如果这个事务提交,将另一个事务加入到一个队列中去异步由另外的进程负责完成操作
1 回答754 阅读
1 回答642 阅读
3 回答9.6k 阅读✓ 已解决
1 回答7.2k 阅读
1 回答4.4k 阅读✓ 已解决
2 回答4.6k 阅读
1 回答3.9k 阅读✓ 已解决
一般来说,不管系统多复杂,跨库的事务需要尽量避免。
如果真的避免不了,常用的方法是两段式提交,lz可以去搜一下,简单的说就是找一个中心点来协调两个独立的库,从而实现事务。