系统重构 | 学习笔记

简介: 快速学习系统重构

开发者学堂课程【Java 面试疑难点串讲5:系统架构及项目设计系统重构】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/28/detail/620


系统重构


内容简介:

一、系统重构前提

二、系统重构的模式

三、企业内部进行系统重构的好处和缺点

四、注意事项


一、系统重构前提

1、当前的系统已经无法满足用户的使用要求,在白天的时,系统由于办公的人数较多,访问量也高,所以系统的负荷很大;

2、当前业务的流程出现了改变。


二、系统重构的模式

1、业务的重新梳理,应需要根据现在已有的业务实现进行升级的逻辑改造,这一改造就会牵扯到库的设计变更,同时这个变更还需要保留好原始的操作数据;

2、将一个服务器上运行的项目,拆分到多个服务器上运行,这样可以有效的实现负载均衡;

3、需要将业务以子系统的形式出现,一个综合的系统之中需要拆分出无数个子系统进共同的支撑,同时还需要准备出若干种 RPC 方案技术( Dubbo 、Rest- 微架构);

4、数据的备份存储问题,访问量大时一台数据库不可支撑的;

5、准备多个 WEB 端,这些 WEB 端的数据的共享需要准备 Redis ( Redis-Cluster),同时这些 WEB 端需要被 nginx 或 apache 做反向代理。


三、企业内部

(一)系统重构的好处:

1、所有的业务子系统独立出去之后可以进行各种系统间的整合处理(各个子系统之间不要互相调用);

2、适合于高并发操作访问,能保证速度不会慢;

3、数据的操作都基于 Redis  缓存处理。


(二)系统重构的缺点:

服务器的成本会加大,如果要做高可用的配置,基本上还需增加至少 10 台服务器。


四、注意事项

软件设计里没有“1+1=2” 这样的公式,应根据具体的业务进行分析。

软件设计的出发点:高可用、高并发、分布式。

相关文章
|
存储 大数据 数据处理
PHP 与大数据:构建高效数据处理系统
传统的数据处理系统往往难以应对大规模数据的处理需求,而PHP作为一种常用的服务器端脚本语言,在数据处理方面也有其独特的优势。本文将探讨如何利用PHP构建高效的大数据处理系统,结合实际案例分析其应用场景及优势所在。
334 28
|
敏捷开发 安全 算法
软件质量度量维度
软件质量度量维度
342 1
|
11月前
|
自然语言处理 编译器 C语言
软考:区分词法分析、语法分析、语义分析
本文解释了编译过程中的词法分析、语法分析和语义分析三个阶段的区别,并提供了相关练习题,帮助读者理解各阶段在编译过程中的作用和重要性。
542 4
|
JSON 数据格式 Docker
docker load导入镜像报错:open /var/lib/docker/tmp/docker-import-970689518/bin/json: no such file or directo...
docker load导入镜像报错:open /var/lib/docker/tmp/docker-import-970689518/bin/json: no such file or directo...
6364 0
|
6月前
|
Kubernetes Docker 容器
Kubernetes与Docker参数对照:理解Pod中的command、args与Dockerfile中的CMD、ENTRYPOINT。
需要明确的是,理解这些都需要对Docker和Kubernetes有一定深度的理解,才能把握二者的区别和联系。虽然它们都是容器技术的二个重要组成部分,但各有其特性和适用场景,理解它们的本质和工作方式,才能更好的使用这些工具,将各自的优点整合到生产环境中,实现软件的快速开发和部署。
196 25
|
11月前
|
消息中间件 网络协议 NoSQL
1000W长连接,如何建立和维护?千万用户IM 架构设计
最近有小伙伴在面试 美团,又遇到了 IM 架构问题。小伙伴支支吾吾的说了几句,面试挂了。 所以,尼恩给大家做一下系统化、体系化的梳理,使得大家内力猛增,可以充分展示一下大家雄厚的 “技术肌肉”,**让面试官爱到 “不能自已、口水直流”**,然后实现”offer直提”
|
11月前
|
JSON 前端开发 JavaScript
优雅!Spring Boot 3.3 实现职责链模式,轻松应对电商订单流程
本文介绍如何使用 Spring Boot 3.3 实现职责链模式,优化电商订单处理流程。通过将订单处理的各个环节(如库存校验、优惠券核验、支付处理等)封装为独立的处理器,并通过职责链将这些处理器串联起来,实现了代码的解耦和灵活扩展。具体实现包括订单请求类 `OrderRequest`、抽象处理器类 `OrderHandler`、具体处理器实现(如 `OrderValidationHandler`、`VerifyCouponHandler` 等)、以及初始化职责链的配置类 `OrderChainConfig`。
|
存储 Kubernetes jenkins
在k8S中,Jenkins发布详细流程是什么?
在k8S中,Jenkins发布详细流程是什么?
|
负载均衡 网络协议 数据安全/隐私保护
ensp中vrrp虚拟路由器冗余协议 原理及配置命令
ensp中vrrp虚拟路由器冗余协议 原理及配置命令
1537 1
|
设计模式 安全 Java
老系统重构系列--如何用一套流程接入所有业务线
**摘要:** 本文介绍了老系统改造的过程,作者提出,ToB业务的挑战在于需要支持多种差异化的业务需求,而模板模式在处理这种需求时可能会导致继承关系复杂和粒度过粗。为了解决这些问题,文章提出了以下步骤: 1. **梳理流程差异点**:识别不同业务流程的差异,以便确定扩展点。 2. **领域模型梳理**:区分核心域和支撑域,确保核心域的稳定性。 3. **二次抽象隔离层**:创建隔离层,避免核心域因新业务接入而变得不稳定。 4. **基于SPI的扩展体系建设**:选择了COLA-SPI实现扩展点,允许业务域定义接口并实现差异化的流程逻辑。
379 0