什么是微服务
单体应用架构:
优点:所有的功能都部署在一起
缺点: 随着业务增加,代码量增加,代码一体化,应用难以维护
垂直应用架构
优点:将一个应用拆分成不同的应用,进行部署
缺点:相同逻辑的代码不能复用
分布式服务架构
优点: 基于分布式RPC框架,将核心业务抽离出来形成稳定的服务中心
缺点: 服务越来越多,每个服务需要独立管理,服务状态难以管理,无法根据服务情况动态管理。
流动计算结构
优点: 对于分布式服务结构,当小服务资源浪费问题逐渐显现,需要增加一个调度中心,管理集群容量
缺点: 基于流式架构,服务之间存在强依赖关系,链式结构,运维困难
微服务架构
优点:
每一个服务都有对应的唯一业务能力,做到单一职责每个服务对外暴露服务接口API,无关技术本身的技术实现,具有平台无关性和语言无关性每个服务自己治理,不干扰
缺点
- 多个服务运维成本高
- 接口版本兼容性
- 系统之间复杂性提高
- 分布式事务
业界现在主要的微服务框架为Dubbo以及Spring Cloud,基于现在,最先发展的是Dubbo,但是由于Dubbo社区一段时间停止维护,微服务被Sping Cloud 超越,霸榜第一
Spring Cloud 基于 Eureka为消息注册中心,以Rest API方式进行服务之间调用,Zuul作为服务网关,Hystrix 作为断路由处理 Spring Cloud Config 作为分布式配置,Sleuth 服务追踪,Spring Cloud Bus作为消息总线,Spring Cloud Stream 数据流,Spring Cloud Task 任务调度
Dubbo 基于ZK作为消息注册中心,RPC通信机制,通过集群之间容错实现断路由,其他配置全无
















