一、单体架构
1.什么是单体架构?
单体架构也可叫单体系统或单体应用,是一种把系统所有的功能模块耦合在一个应用的架构方式。
2.单体架构的优缺点有哪些?
(1)优点
- 部署简单;
- 技术单一;
- 用人成本相对低;
- 项目管理相对较易;
- 测试相对简单直观;
- 应用开发相对简单;
- 横向扩展容易。
(2)缺点
- 项目过于臃肿,bug难以迅速定位;
- 资源无法隔离(某个功能模块对应的接口访问量大,直接会影响整体性能);
- 无法灵活扩展;
- 交付周期长(需求->设计->开发->测试->现场实施部署,就传统性质的企业而言);
- 部署消耗时间长;
- 可靠性差;
- 受技术栈限制;
- 可伸缩性差;
- 复杂度高。
3.单体架构的技术选型有哪些?
从Java的角度看,有Spring全家桶一站式解决方案和相关的生态比较丰富(国外有GitHub,国内有Gitee,相应的开源框架非常多)。
从PHP的角度看,PHP是Web开发中最好的语言(至于为什么说它是Web开发中最好的语言,我想原因有三个,第一个是通吃方案(网站开发、App后端、小程序等);第二个许多国内外的网站建设都是基于PHP,早期的淘宝也是如此;第三个容易上手的。)
所有的技术选型都离不开一个基本的原则,那就是业务,分布式微服务技术选型也不例外,技术服务于业务,合适的技术框架对业务支撑非常关键。
(1)那么关于技术选型要注重哪些因素呢?
- 业务相关性;
- 框架流行度;
- 学习曲线;