课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
数据库技术是许多后端开发程序员都在学习的一个编程知识,而今天我们就一起来了解一下,数据库分库之后需要注意哪些问题。
1、原有事务
由于分库分表之后,新表在另外一个数据库中,如何保证主库和分库的事务性是必须要解决的问题。
解决办法:通过在主库中创建一个流水表,把操作数据库的逻辑映射为一条流水记录。当整个大事务执行完毕后(流水被插入到流水表),然后通过其他方式来执行这段流水,保证终一致性。
2、流水
所谓流水,可以理解为一条事务消息
上面通过在数据库中创建一张流水表,使用一条流水记录代表一个业务处理逻辑,因此,一个流水一定是能终正确执行的.因此,当把一段业务代码提取流水中必须要考虑到:
**流水延迟处理性。**流水不是实时处理的,而是用过流水执行器来异步执行的。因此,如果在原有逻辑中,需要特别注意后续流程对该流水是不是有实时依赖性(例如后续业务逻辑中会使用流水结果来做一些计算等)。
**流水处理无序性。**保证即使后生成的流水先执行,也不能出现问题。
**流水终成功性。**对每条插入的流水,该条流水一定要保证能执行成功
因此,提取流水的时候:
流水处理越简单越好
流失处理依赖越少越好
提取的流水在该业务逻辑中无实时性依赖
3、为什么不用事务消息
由于是既有项目进行改造(本人从事互联网金融,所以是绝对不容忍有任何消息丢失或者消息处理失败),不使用事务消息有1个原因
需要额外引入消息队列,增加系统的复杂度,而且也需要额外的逻辑保证和消息队列通讯失败的时候处理
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。