1
mmdsun 2021-02-06 13:26:54 +08:00 via Android
404 ?
|
2
lewis89 2021-02-06 21:55:04 +08:00
本地消息表? 之前用这个方案被面试官吐槽了..
因为用消息队列本身就是因为本地事务太大,可能导入写入压力大,而把写入压力交个消息中间件, 然后通过消息来维护数据的最终一致性 |
5
lewis89 2021-02-07 09:03:51 +08:00
@Caesar123 #3 是的,我有测试过,本地消息表 可靠性好,加一个消息的写入并不会增加太大的事务压力,而且可靠性比 使用预提交的消息队列 要简单的多,麻烦的是 如果你做了水平拆分,消息如果是落地对应的分库那么本地事务就好说,如果消息统一落地一个统一的库 那么就是 XA 事务 做起来更复杂,如果消息有全局顺序依赖 提取多个分库的本地消息表就不太好做.. 当然一般不会有业务有全局消息依赖,都是局部顺序依赖
如果只是提交给消息队列,通过预提交 由消息队列中间件来询问你本地事务是否提交 是一个比较简易的方案,消息顺序性其实是消息中间件来保证了.. 应用层只要考虑分布式锁来保证消息的投递顺序.. |