演变过程:
单体架构/集中式架构 >> 垂直拆分 >> 分布式服务 >> 服务治理 >> 微服务
1.单体架构/集中式架构 的优缺点:
1)优点:编写项目简单,部署方便 ,节省成本
2)劣势:* 某一个功能挂了,真个系统瘫痪
* 不方便项目的扩展
*项目的维护成本较高
2.垂直拆分阶段
1)优点 :* 项目一定程度上解决了并发问题
*项目的扩展性一定程度上提高了
*项目的可维护性一定程度上提高了
2)劣势: *多个子项目之间调用的时候,IP和端口都是硬编码,如果服务提供方修改了IP地址或者地址,必须要及时通知服务消费方,否则系统就会宕机
*即使搭建了集群,也不利于负载均衡
3.分布式服务
1)优点 :在垂直拆分的基础上抽离了公共接口层,系统间相互调用,提高了代码复用和开发效率
2)劣势:*系统间耦合度变高,调用关系错综复杂,难以维护
* 搭建集群之后,负载均衡比较难实现
4.服务治理
1)优点:当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。
2)劣势:* 服务间会有依赖关系,一旦某个环节出错会影响较大
*服务关系复杂,运维、测试部署困难,不符合DevOps思想(docker)
5.微服务
特点:1)单一职责:每个微服务只能干一件事情
2 )微:微服务的服务拆分粒度小,但功能齐全
3)独立:
-
团队独立:每个服务都是一个独立的开发团队,人数不能过多。
-
技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉
-
前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动端开发不同接口
-
数据库分离:每个服务都使用自己的数据源
-
部署独立,服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护 Docker部署服务