浅谈千万级系统重构系列文章-系统重构解决方案

516 阅读2分钟

1、概述

我曾经做过多次千万级系统重构,该系列文章来自于实际中的总结,绝对干货!包含灰度方案,唯一Id生成器,分库分表,双写方案,辅助工具开发,以及微服务架构落地等等。同时我也会分享一些这其中遇到的一些问题,以及我们是如何解决的。

2、重构那些事

  • 单体架构
    单体架构
    随着业务的发展,单体架构问题逐渐暴露
  1. 业务越来越复杂,单体架构扩展性不足,业务扩展带来的代价越来越大
  2. 数据库单点写入瓶颈,mysql数据量太大查询效率不高
  3. 改动一个点可能导致其它地方出问题 所以系统重构显得尤为重要!
  • 微服务架构
    微服务架构
    数据库层一般会分库/分表,以订单系统为例
    订单系统

3、如何从单体架构过渡到微服务架构

方案

  • 入口层采用按流量灰度,流量逐步增大,降低风险
  • db层双向同步,一旦有问题可以随时回滚到老系统,并且一般情况下新系统会分库分表
  • 数据对比工具,实时/手动对比数据是否一致,提前发现潜在的问题

4、内容概况

大致罗列了一下大概有如下内容点:

系列文章一期:

  • 1). 基于openresty开发轻量级,按流量控制的灰度模块
  • 2). 浅谈唯一Id生成器最佳实践
  • 3). 浅谈mysql分库分表那些事儿
  • 4). 浅谈基于MQ&binlog同步数据双写方案
  • 5). 浅谈数据双写之对比工具实现方案 以上完成了重构通用的一些技术方案

系列文章二期

微服务落地相关,课程章节待定

我将持续更新,大概一周更新一个主题,敬请期待!

5、总结

记得第一次参与做千万订单系统重构,我们leader说了这样一句话:"重构这样的事,一辈子干一次就够了",确实,重构会遇到各种奇葩的问题,并且需要很多前期准备工作,比如:模块拆分,权限回收,SQL改造等等。但是解决了这些问题,也会乐在其中。在这里,感谢那些曾经一起奋斗过的小伙伴!

6、 欢迎关注"浅谈架构"公众号、不定期分享精彩文章

浅谈架构