继续简单学习一下
spring cloud家族 https://spring.io/projects/spring-cloud
1,spring-cloud-dependencies 需要与spring-boot-starter-parent版本对应
当前最新 2.7.0 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent
当前最新2021.0.3 https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies
spring clloud alibaba版本关系 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
2,服务提供者与服务调用者
注册中心(eureka server)
服务提供者provider(eureka client) -> 服务消费者consumer(eureka client)
3,网关 Zuul
API 网关服务器
调用报错 org.springframework.boot.web.servlet.error.ErrorController.getErrorPath()Ljava/lang/String
特么的,原来是已经被spring cloud放弃了。。。。
为了让后面学习的路简单些,那就只能降级了。。。。
根目录pom
父依赖org.springframework.boot降到 2.0.7.RELEASE
org.springframework.cloud降到 Finchley.SR2
eureka降到 2.0.2.RELEASE
zuul降到2.0.2.RELEASE
也是超级fk了。。。。
3.1) 负载均衡
启动两个相同的服务,注册到注册中心
比如向注册中心注册两个providerStudent服务,一个8011端口,一个8012端口
配图1
然后通过zuul网关去访问providerStudent服务http://localhost:8030/ps/student/port
zuul会自动分流,到不同的服务,如8011或8012,从而实现负载均衡。
4,Ribbon 负载均衡
spring cloud ribbon是一个负载均衡解决方案。
只比服务消费者代码在获取RestTemplate的时候多了一个@LoadBalanced //负载均衡。。。。
效果跟zuul一样,不过zuul是架设在网关层,ribbon是在服务层。
5,Feign
声明式、模板化的Web Service客户端。
整合了Ribbon和Hystrix,实现可插拔、基于注解、负载均衡、服务熔断等。
比Ribbon+RestTemplate代码更简化。
Ribbon是一个基于Http的客户端工具,Feign基于Ribbon实现。
6,Hystrix容错机制
在不改变各个微服务调用关系的情况下,对错误情况进行预处理。
服务隔离、服务降级、熔断、提供实时监控和报警、提供实时配置修改。
监控结合 Actuator使用。Actuator提供健康监控及数据统计。
hystrix-stream获取监控请求数据及可视化页面。
7,本地配置中心
建立项目config-server-native用来存放服务配置
建立项目config-native-client用来读取服务配置
启动两者,测试读取结果。
8,远程配置中心
把本地配置挪到远程git或者svn....
9,服务跟踪zipkin
跟踪请求执行的来源及走向
10,汇总
服务治理 Eureka
服务通信Ribbon
服务通信Feigin
服务网关 Zuul
服务容错 Hystrix
服务配置 分布式配置Config
服务监控 Actuator
服务跟踪 Zipkin
服务提供者、服务消费者、配置中心等在启动时都注册到注册中心Eureka,然后消费者去注册中心取相应的路径。
当服务多时,可以通过服务网关Zuul去调用服务。可以通过使用Ribbon做服务间的负载均衡。使用Hystrix对错误情况进行预处理。Feign整合了Ribbon和Hystrix。建立统一的配置中心,用来统一管理配置。服务跟踪Zipkin用来跟踪请求。
senRsl
2022年06月16日09:48:55
没有评论 :
发表评论