天天看点

浅谈千万级系统重构系列

一、概述

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

二、重构那些事

  • 单体架构
    浅谈千万级系统重构系列
    随着业务的发展,单体架构问题逐渐暴露
  1. 业务越来越复杂,单体架构扩展性不足,业务扩展带来的代价越来越大
  2. 数据库单点写入瓶颈,mysql数据量太大查询效率不高
  3. 改动一个点可能导致其它地方出问题

    所以系统重构显得尤为重要!

  • 微服务架构
    浅谈千万级系统重构系列
    数据库层一般会分库/分表,以订单系统为例
    浅谈千万级系统重构系列

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

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

四、内容概况

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

系列文章一期:

    1. 基于openresty开发轻量级,按流量控制的灰度模块
    1. 浅谈分布式唯一Id生成器最佳实践
    1. 浅谈mysql分库分表那些事儿
    1. 浅谈基于MQ&binlog同步数据双写方案
    1. 浅谈数据双写之对比工具实现方案

以上完成了重构通用的一些技术方案

系列文章二期

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

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

五、总结

记得第一次做千万订单系统重构,我们老大说了这样一句话:“重构这样的事,一辈子干一次就够了”,确实,重构会遇到各种奇葩的问题,并且需要很多前期准备工作

比如:模块拆分,权限回收,SQL改造等等。但是解决了这些问题,也会乐在其中。在这里,感谢那些曾经一起奋斗过的小伙伴!

六、欢迎关注我公众号“浅谈架构”

浅谈千万级系统重构系列

原创不易,转载请注明出处,谢谢!