浅谈千万级系统重构系列

简介: 浅谈千万级系统重构系列

一、概述

不知不觉,2020已经要过去一半了,实属惶恐!今天给定了个flag,准备写一套系列文章《浅谈千万级系统重构》,抛开微服务技术栈不谈(未来将是另外一个系列)

曾经简单的写过一篇重构方案设计,该系列文章相当于该篇文章的具体落地方案,目标本月完成本系列文章。


二、重构那些事

·单体架构

随着业务的发展,单体架构问题逐渐暴露

1) 业务越来越复杂,单体架构扩展性不足,业务扩展带来的代价越来越大

2) 数据库单点写入瓶颈,mysql数据量太大查询效率不高

3) 改动一个点可能导致其它地方出问题

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


·微服务架构


数据库层一般会分库/分表,以订单系统为例



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


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


四、内容概况


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

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


五、总结

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

相关文章
|
4天前
|
存储 NoSQL 关系型数据库
|
5月前
|
存储 监控 Java
近亿级用户体量高并发实战:大促前压测干崩近百个服务引起的深度反思!
几年前,数百个服务,将堆内存从28GB升配到36GB,引发系统全面OOM的事件。
126 12
|
6月前
|
设计模式
业务系统架构实践问题之业务间的差异性如何解决
业务系统架构实践问题之业务间的差异性如何解决
|
8月前
|
SQL 运维 监控
老系统重构系列--稳定性摸排灵魂三问
该文主要讨论了老系统改造的过程和方法,特别是针对版权资产管理-财资系统的重构。作者强调了系统稳定性的重要性,并分享了他们团队在重构过程中采取的策略。他们通过确定目标、制定方法论和实施步骤来确保问题的全面摸排,包括核心链路图、流程时序图和问题路由图的绘制,以识别可能的问题和需要加强监控的部分。此外,文章还提到了数据对账监控和系统级统一监控的重要性,以及技术改造和预案的制定。作者提供了相关文章链接以供进一步阅读,并分享了他们在摸排和整改过程中的实际成果。
142 0
|
运维 测试技术
千万级乘客排队系统重构&压测方案——总结篇
千万级乘客排队系统重构&压测方案——总结篇
190 1
|
NoSQL 算法 Java
千万级订单生成的痛点与架构
千万级订单生成的痛点与架构
197 0
|
安全 数据可视化 Java
Jmix - 业务系统高效开发的少代码平台
少代码具有低代码产品的所有优点,但是又没有任何低代码产品的缺点。[Jmix.cn ](https://www.jmix.cn/)从定位、产品设计方面把低代码平台的缺陷都抹平并且提升为优点。我们称它为 “少代码”。
510 2
Jmix - 业务系统高效开发的少代码平台
|
监控 NoSQL Dubbo
从一个电商平台的库存同步谈性能优化和方案落地
从一个电商平台的库存同步谈性能优化和方案落地
456 0
从一个电商平台的库存同步谈性能优化和方案落地
|
运维
《运维如何应对十倍、百倍的业务增长?》电子版地址
运维如何应对十倍、百倍的业务增长?
69 0
《运维如何应对十倍、百倍的业务增长?》电子版地址
百亿数据分库分表核心流程详解
前言 俗话说:面试造火箭,入职拧螺丝。尽管99.99%的业务都不需要用到分库分表,但是分库分表还是频繁出现在大厂的面试中。 分库分表涉及到的内容非常多,有很多细节,如果在面试中被问到了,既是挑战,也是机会,如果你能回答好的话,会给你的面试加很多分。 由于业务量的关系,绝大部分同学都很难有实际分库分表的机会,因此很多同学在碰到这个问题时很容易懵逼。 因此今天跟大家分享一下分库分表的相关知识,本文内容源于实际高并发+海量数据业务下的实战和个人的思考总结。