系统架构演变历史与微服务

单体应用架构

应用场景:早期软件开发架构。如果软件需求简单,功能少,依旧可以采用单体应用架构。

优点:所有的功能在一个应用中实现,开发测试维护简单,部署方便,对服务器资源消耗小。

缺点:容错率较低,并发能力差;代码耦合度较高;无法按业务优化服务。

开发技术:可以采用springboot+jpa/mybatis+thymeleaf,建议前后端分离。

 

 

 

垂直拆分

应用场景:应用访问量增大,某些功能会被频繁请求。有容错、高可用需求。

优点:容错率提高,可用性高;可以针对压力大的模块单独优化,部署;不同的应用负载各自的请求,提高并发能力;

缺点:系统间独立,重复代码多;开发测试复杂;部署麻烦。

 

 

 

分布式架构

针对垂直应用代码重复,功能重复问题,把各应用间重复的业务抽出来单独封装成应用,提高复用。

优点:代码复用度变高;单一职责。

缺点:各应用间相互调用,系统复杂度升高;系统耦合度升高;开发测试困难。

关键技术:各种RPC技术(Dubbo、webservice等等)

 

 

 

微服务

应用场景:主要是为了优化多应用之间调用复杂,系统耦合度高的问题,提出由注册中心统一维护各服务,服务之间不需要和对方直接通信。有效的提高了集群利用率。

优点:结构清晰,系统耦合度降低;动态增减应用,合理利用服务器资源;服务降级;负载均衡。

关键技术:springcloud、Dubbo

 

posted @ 2021-03-09 17:11  嗷大喵is  阅读(127)  评论(0)    收藏  举报