一,单体架构
优点
1,部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可
2,技术单一:项目不需要复杂的技术栈,一套熟悉的技术栈就可以开发
3,用人成本低:单个程序员就可以完成业务接口到数据库的整个流程
缺点
1,系统启动慢,一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动、重启时间周期过长;
2,系统错误隔离性差、可用性差,任何一个模块的错误均可能造成整个系统的宕机;
3,可伸缩性差:系统的扩容只能只对这个应用进行扩容,无法结合业务模块的特点进行伸缩。
4,线上问题修复周期长:任何一个线上问题修复需要对整个应用系统进行全面升级。
5,跨语言程度差
6,不利于安全管理,所有开发人员都拥有全量代码
二,微服务
1.微服务架构的优势
1.易于开发和维护
一个微服务只关注一个特定的业务功能,所以它的业务清晰、代码量较少。开发和维护单个
微服务相对比较简单,整个应用是由若干个微服务构建而成,所以整个应用也会维持在可控
状态;
2.单个微服务启动较快
单个微服务代码量较少,所以启动会比较快;
3.局部修改容易部署
单体应用只要有修改,就要重新部署整个应用,微服务解决了这样的问题。一般来说,对某
个微服务进行修改,只需要重新部署这个服务即可;
4.技术栈不受限
在微服务中,我们可以结合项目业务及团队的特点,合理地选择技术栈
5.按需伸缩
2.微服务架构的缺点(挑战)
1、服务太多,导致服务间的依赖错综复杂,运维难度大
2、微服务放大了分布式架构的系列问题
·分布式事务(seata) .
·分布式锁怎么处理(redisson),
·服务注册与发现(nacos).
·依赖服务不稳定(sentinel)导致服务雪崩怎么办?
3、运维复杂度陡增,部署数量多、监控进程多导致整体运维复杂度提升。