Java学习五分钟系列,目的是为让大家在短时间内搞清楚一项技术的概念、优缺点和适用场景,想要深入的了解,还需要投入更多的时间。
单体架构的弊端
首先,我们需要了解传统的单体架构有什么问题,主要有两点:
- 系统的容量:在传统单体架构中,通常我们都采用一台应用服务器+一台数据库的模式。当我们的业务量越来越大,一台机器的性能已经无法满足业务需要(硬件的提升是有上限的),所以我们通常需要使用多台机器,才能跟得上大规模的应用场景。
- 系统的可用性:我们的系统越来越关键,很多系统都需要7*24小时运行,这就意味我们的系统不能发生故障,特别是整个业务流程需要多个系统的时候,一个系统发生故障,会导致整条业务线出现问题。
![49a22c43aba33688cceb1a7de3ebd183.png](https://i-blog.csdnimg.cn/blog_migrate/d99b58024daed97d9f4da7496b819a20.jpeg)
分布式架构解决单体架构的痛点
分布式架构可以很好的解决单体应用的痛点:
- 垂直或水平拆分业务系统,不同的业务系统部署在不同的机器上,充分利用多机器的性能优势;
- 提高了系统的高可用性,分布式架构中的一个系统出现问题,可能会导致周边部分系统受到影响,而不会全军覆没;
- 因为模块化,所以系统模块重用度更高;
- 因为软件服务模块被拆分,开发和发布速度可以并行而变得更快;
![9909396d963d5814ad7e99f2a3693e81.png](https://i-blog.csdnimg.cn/blog_migrate/a041f9c9460cf27394a3475cb59ebcb9.jpeg)
分布式架构带来新的问题
分布式架构有着不小的优势,同时也带来一些新的问题:
- 架构变得更加复杂;
- 一个应用变成N个应用,部署流程会变得复杂(服务之间的依赖性);
- 运维变得复杂,一个线上BUG定位起来会非常的困难;
- 测试同样会变得复杂;
- 系统吞吐量增加,但是响应时间会变成(会调用多个服务,或服务调服务);
- 服务过多,会让服务管理和服务调度变得更难,
- 分布式系统架构的难点在于:系统设计、服务梳理、管理和运维。
![4d54242c60eed17ab1463cee066dd4ab.png](https://i-blog.csdnimg.cn/blog_migrate/f6c51cb7a9bfbb263fcef847d6254964.jpeg)