单体应用与分布式(微服务)的优缺点

一个单体应用程序:
就是应用程序的全部功能被一起打包作为单个单元或应用程序.这个单元可以是JAR、WAR、EAR,或其他一些归档格式,但其全部集成在一个单一的单元.
微服务:微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。(百科解释)

单体应用优点:
1.方便调试,代码都在一起;
2.没有分布式开销,所有服务都在本地容器内;
3.中小型项目可以快速迭代,不需要太多资源。

单体应用缺点:
1.可复用性差:服务被打包在应用中,功能不易复用;
2.系统启动慢,一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动、重启时间周期过长。
3.线上问题修复周期长;任何一个线上问题修复需要对整个应用系统进行全面升级。
微服务架构的优点
1.分而治之;单个服务功能内聚,复杂性低;方便团队的拆分和管理;
2.单独部署,独立开发;
微服务架构的不足

1.开发难度大;垮服务的调用通常是不同的机器,甚至是不同的机房,开发人员需要处理超时、网络异常等问题。
2.效率相对低,团队依赖强,一个服务的版本延迟会拖慢整个应用的开发周期。
3.需要分布式事务的支持。

你可能感兴趣的:(java,编程语言,web开发)