Spring Cloud的发展
单体架构到微服务架构演进
单体架构 -> 垂直架构 -> 集群架构 -> SOA架构(强调数据互联互通) -> 微服务架构(强调解耦、服务拆分)
什么是微服务架构?
- 微服务架构是一种架构设计方式,本质上是通过一系列小服务去开发一个完整的单体应用
- 每个小服务都有自己独立的进程
- 不同的小服务之间通过轻量级的通信机制进行通信调用,比如Http,BIO,NIO,Netty,Dubbo,Thrift,gRPC,RestTemplate,OpenFeign,OkHttp,HttpClient,HttpUrlConnection等
- 这些小服务可以通过自动化机制进行部署,如Jenkins
- 这些服务是去中心化的
- 这些服务可能是通过不同编程语言开发的,可以通过异构微服务的方式进行彼此调用
- 这些服务可能是使用不同数据库进行数据存储的
分布式架构与微服务架构区别?
分布式架构:将一个计算机完成的计算任务分布在多个计算机上进行分开计算
SOA架构和微服务架构都是分布式架构,微服务架构侧重于服务的拆分
引入网络通信
基于分布式架构的特性,所以引入网络通信。
从系统层面来说,提升了性能,但是损失掉了稳定性、可靠性
但是从用户层面来说,用户的使用必须是稳定可靠的
微服务架构的优势
Spring Cloud生态
Spring Cloud提供了微服务的一站式解决方案
Spring Cloud生态组件
SpringCloud生态定义了标准 + SpringBoot
- Ribbon,负载均衡
- Hystrix,熔断降级
- OpenFeign,模板化远程通信
- Eureka,服务注册发现
- Stream,消息驱动,MQ一个模板
- Bus,消息总线
- Sleuth,链路追踪
- Gateway,网关
Spring Cloud版本
- Spring Cloud Netflix
- Spring Cloud 2020.x
- Spring Cloud Hoxton.SR12
- Spring Cloud Alibaba
去Netflix化
Spring Cloud Netflix
- Ribbon,负载均衡
- Eureka,服务注册发现
Spring Cloud Alibaba
- Nacos
- Sentinel
- RocketMQ
- Seata
- Dubbo(2.2.7以后不再维护)
付费的:OSS/SMS/SchedulerX
Dubbo生态(3.x) + SpringBoot
- Nacos
- Sentinel
- RocketMQ
- Seata
云原生架构
设计之初就是为了上云的架构,天生支持运行在kubernates