关于分布式定时任务的优化多数据源
来源:1-1 学习指南
亦既见止
2024-01-08 14:17:02
问题描述:
es-job的封装消息记录实在一个表里,想封装成多数据源的形式,有什么思路吗
1回答
如果想做分库分表 也可以,其实有更好的方式 就是不加事务 也能保证 消息 和 记录的 强一致性;
先写日志记录,记录状态待发送MQ消息
2. 再写实际业务数据
3. 异步同步MQ数据
4. 结果返回OK之后,更新日志里的状态,已发送成功
5. 最后靠定时任务去补偿日志记录里的待发送数据,去重试。
PS: 1 和 2 顺序不能反了,反了就会导致 业务成功,日志没记录成功,这条数据就丢了。
另,多数据源的方案 也可以做, 但是你要用业务的数据ID做 hash,分库分表 路由到同一个库表;
相似问题