微服务拆分治理最佳实践

💡 原文中文,约13300字,阅读约需32分钟。
📝

内容提要

部门中老系统存在风险和缺陷,采用微服务改造,分为数据库拆分、应用拆分和数据访问权限收口三个阶段,采用多数据源组件和自定义事务实现类,最终选择方案二,拆分上线和删减代码,拆分速度快,风险低。

🎯

关键要点

  • 部门中维护的老系统存在风险和缺陷,功能耦合在单体应用中,急需微服务改造。
  • 微服务改造分为三个阶段:数据库拆分、应用拆分和数据访问权限收口。
  • 数据库拆分计划将数据库拆分为9个业务库,采用主从复制和binlog过滤进行数据同步。
  • 代码改造需要解决数据源选择和事务问题,涉及多个库的接口需进行相应改造。
  • 方案二将数据源注解移动到Mapper上,使用自定义事务实现来处理事务,解决了跨库操作的问题。
  • 数据安全性通过代码保证一致性、充分测试和线上监测机制来确保。
  • 应用拆分方案选择从老系统复制出9个新系统,拆分速度快,风险低。
  • 流量路由通过filter实现,支持识别测试流量,确保新系统上线的安全性。
  • 上线风险通过动态开关控制新老系统的JOB和MQ执行,避免重复消费和执行。
  • 数据访问权限收口通过RPC接口实现,减少业务耦合,提升系统稳定性。
  • 最终实现了从单体系统到微服务结构的平滑过渡,解决了性能和扩展性问题。
➡️

继续阅读