springcloud简介
微服务?
微服务是一种架构风格,将单体应用划分为小型的服务单元,微服务之间使用HTTP的API进行资源访问和操作,与SOA不同的是,SOA架构侧重于将每个单体应用的服务集成到ESB(消息总线)上,而微服务强调将整个模块变成服务组件,对模块的划分粒度更细致
SpringCloud
springcloud是基于springboot提供的一整套微服务解决方案,包括服务注册与发现,配置中心,链路监控,服务网关,负载均衡,熔断器等组件,是各个微服务架构落地技术的集合体
官方文档 https://cloud.spring.io/spring-cloud-static/Finchley.SR4/single/spring-cloud.html
主要模块
- Eureka:基于REST服务的注册中心,用于服务管理
- Hystrix:容错框架,通过添加延迟阈值以及容错的逻辑,控制分布式系统间组件的交互
- Feign:一个Rest客户端,用于简化服务间调用的开发
- Ribbon:负载均衡框架,实现了中间层应用程序的负载均衡
- Zuul:微服务网关,为微服务集群提供代理、过滤、路由功能
- Spring cloud config:为分布式系统提供了配置服务,可以很好的管理集群中的配置文件
- Spring cloud Sleuth:服务跟踪框架,可以与Zipkin、Apache Htrace和ELK等数据分析、服务跟踪系统进行整合,为服务跟踪提供了便利
- Spring Cloud Stream:用于构建消息驱动微服务的框架,整合了Spring Integration来连接消息中间件
- Spring Cloud Bus:连接RabbitMQ或kafka等消息中间件的消息总线
与springboot版本对应
Release Train | Boot Version |
---|---|
2020.0.x aka Ilford | 2.4.x, 2.5.x (Starting with 2020.0.3) |
Hoxton | 2.2.x, 2.3.x (Starting with SR5) |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
如果SpringBoot版本由1.x升级为2.x会存在一些组件的调整,由于部分组件已经停更了,所以可能会出现组件的替换
- 注册中心 之前Eureka停更,注册中心转移到zookeeper、consul、Nacos(主流)
- 负载均衡 目前还是使用的Ribbon,虽然该项目目前在维护,但是还没有很好的替代品出现
- 服务调用 由之前的Feign转为OpenFeign
- 服务熔断和降级 Hystrix也停更了,开始使用sentinel
- 服务网关 之前的Zuul也不在更新,改为springcloud官方的gateway
- 服务配置 springCloudConfig也逐渐被取代,由Nacos替代,不过也有部分使用Apollo
- 服务总线 之前的springCloudBus也逐渐的被Nacos代替