一、概述
我曾经做过多次千万级系统重构,该系列文章来自于实际中的总结,绝对干货!包含灰度方案,唯一Id生成器,分库分表,双写方案,辅助工具开发,以及微服务架构落地等等。同时我也会分享一些这其中遇到的一些问题,以及我们是如何解决的。
二、重构那些事
- 单体架构 随着业务的发展,单体架构问题逐渐暴露
浅谈千万级系统重构系列
- 业务越来越复杂,单体架构扩展性不足,业务扩展带来的代价越来越大
- 数据库单点写入瓶颈,mysql数据量太大查询效率不高
-
改动一个点可能导致其它地方出问题
所以系统重构显得尤为重要!
- 微服务架构 数据库层一般会分库/分表,以订单系统为例
浅谈千万级系统重构系列 浅谈千万级系统重构系列
三、如何从单体架构过渡到微服务架构
- 入口层采用按流量灰度,流量逐步增大,降低风险
- db层双向同步,一旦有问题可以随时回滚到老系统,并且一般情况下新系统会分库分表
- 数据对比工具,实时/手动对比数据是否一致,提前发现潜在的问题
四、内容概况
大致罗列了一下大概有如下内容点:
系列文章一期:
-
- 基于openresty开发轻量级,按流量控制的灰度模块
-
- 浅谈分布式唯一Id生成器最佳实践
-
- 浅谈mysql分库分表那些事儿
-
- 浅谈基于MQ&binlog同步数据双写方案
-
- 浅谈数据双写之对比工具实现方案
以上完成了重构通用的一些技术方案
系列文章二期
微服务落地相关,课程章节待定
我将持续更新,大概一周更新一个主题,敬请期待!
五、总结
记得第一次做千万订单系统重构,我们老大说了这样一句话:“重构这样的事,一辈子干一次就够了”,确实,重构会遇到各种奇葩的问题,并且需要很多前期准备工作
比如:模块拆分,权限回收,SQL改造等等。但是解决了这些问题,也会乐在其中。在这里,感谢那些曾经一起奋斗过的小伙伴!
六、欢迎关注我公众号“浅谈架构”
原创不易,转载请注明出处,谢谢!