《Spring Cloud 微服务实战》组件总结

Spring Cloud 组件概述

《Spring Cloud 微服务实战》,该书中推荐了九种组件,分别是:
服务治理:Spring Cloud Eureka
客户端负载均衡:Spring Cloud Ribbon
服务容错保护:Spring Cloud Hystrix
声明式服务调用:Spring Cloud Feign
API网关服务:Spring Cloud Zuul
分布式配置中心:Spring Cloud Config
消息总线:Spring Cloud Bus
消息驱动的微服务:Spring Cloud Stream
分布式服务跟踪:Spring Cloud Sleuth

1 服务治理:Spring Cloud Eureka

注册中心:

Eureka 框架中构建一份注册表,每个微服务向注册中心注册自己的服务名、端口号、通信协议、版本号等信息。
提供服务注册和发现的功能。

客户端:

实际架构中Eureka 客户端即是服务提供者也是服务消费者。
服务注册
服务提供者会在启动的时候,通过发送REST请求的方式,向注册中心注册自己的服务名、端口号、通信协议、版本号等信息。
服务发现
在启动消费者的时候,通过发送REST请求的方式,获取注册中心的服务清单,每个30s更新一次。
服务同步
每个注册中心都会缓存、同步这个注册表,如果Eureka 以集群的形式部署,当分片出现故障,该分片故障期间继续提供服务的注册和发现,故障消除后,再同步注册表。
服务续约
注册中心按心跳检查的方式去维护这个注册表,并将其服务剔除。

2 客户端负载均衡:Spring Cloud Ribbon

服务提供者:
启动多个实例,注册到一个或多个注册中心。
服务消费者:
直接通过调用被@LoadBalanced注解过的RestTemplate来实现服务接口的调用。
RestTemplate:
包含我们常用的多种请求方式。

3 服务容错保护:Spring Cloud Hystrix

基于Netflix的开源框架Hystrix实现。
通过控制那些访问远程系统、服务、第三方库的节点,从而对延迟和故障提供更强大的容错能力。
Hystrix具备服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并、服务监控等强大功能。
工作流程:
1)创建HystrixCommand或HystrixObservableCommand对象
2)命令执行
3)结果是否被缓存
4)断路器是否被打开
5)线程池/请求队列/信号量是否被占满
6)HystrixCommand.run()或HystrixObservableCommand.construct()
7)计算断路器的健康度
8)fallback处理(服务降级)
9)返回成功响应

4 声明式服务调用:Spring Cloud Feign

基于Netflix Feign 实现。
整合了Spring Cloud Ribbon与Spring Cloud Hystrix。
提供了一种声明式的Web客户端定义方法。

5 API网关服务:Spring Cloud Zuul

1)通过与Spring Cloud Eureka 整合,将自身注册为Eureka治理下的应用,同时获取Eureka下所有实例的信息,不再需要人工维护实例,同时能够实现我们大部分的路由需求。有效降低路由规则和实例列表的维护难度。
2)提供一套过滤机制,创建过滤器,指定不同的校验规则,只有通过校验的请求才会被路由到具体的的微服务接口。有效的解决接口访问时,前置校验冗余问题。

6 分布式配置中心:Spring Cloud Config

用来为分布式系统中的基础设施和微服务应用提供集中华的外置配置支持。
服务端:
也称为分布式配置中心,它是一个独立的微服务应用,用来链接配置仓库并为客户端提供获取配置信息、加密解密信息的接口。
客户端:
微服务架构中的各个微服务应用或基础设施,他们通过指定配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。

7 消息总线:Spring Cloud Bus

使用轻量级消息代理,构建一个公用的消息主题,让系统中的所有的微服务实例都链接上来,该主题中产生的消息会被所有的实例监听和消费。
通常是RabbitMQ或Kafka

8 消息驱动的微服务:Spring Cloud Stream

是一个用来为微服务应用构建消息驱动能力的架构。
整合了Spring Boot 和Spring Intergretion,实现了一套轻量级的消息驱动的微服务框架。
简化消息中间件使用的复杂度。

9 分布式服务跟踪:Spring Cloud Sleuth

通过实现对请求调用的跟踪,帮助我们快速发现错误的根源以及监控分析每一条请求链路上的性能瓶颈等。

原创文章 122 获赞 25 访问量 6万+

猜你喜欢

转载自blog.csdn.net/leinminna/article/details/105981587