Spring cloud核心组件实例参考
阅读阅读公众号作者macrozheng的文章:http://www.macrozheng.com/#/cloud/springcloud
整体架构
集中配置管理工具,分布式系统中统一的外部配置管理,默认使用Git来存储配置,可以支持客户端配置的刷新及加密、解密操作。
包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心组件。
Eureka:服务注册、治理组件,包括服务端的注册中心和客户端的服务发现机制;支持添加认证,提高系统安全性;
Ribbon:负载均衡的服务调用组件,支持多种负载均衡调用策略,具体通过robbin.NFLoadBalancerRuleClassNam指定;
Hystrix:服务容错组件,实现断路器模式,为依赖服务的出错和延迟提供容错能力;@HystrixCommand注解支持:忽略对指定异常类型的容错,使能缓存、删除缓存等操作;@HystrixCollapser注解支持:请求合并等,降低系统性能开销;
OpenFeign:基于Ribbon和Hystrix的声明式服务调用组件,集成Robbin及Hystrix的负载均衡及服务容错的相关功能(比较推荐)
Zuul:API网关组件,对请求提供路由及过滤功能。路由功能负责将外部请求转发到具体的服务实例上去,是实现统一访问入口的基础;过滤功能负责对请求过程进行额外的处理,是请求校验过滤及服务聚合的基础。同时由于Zuul自动集成了Ribbon和Hystrix,所以Zuul具有负载均衡和服务容错能力,可以通过Ribbon和Hystrix的配置来配置Zuul中的相应功能(比较推荐)
用于传播集群状态变化的消息总线,使用轻量级消息代理链接分布式系统中的节点,可以用来动态刷新集群中的服务配置。主要支持Apache Kafka及RabbitMQ
基于Hashicorp Consul的服务治理组件。
安全工具包,对Zuul代理中的负载均衡OAuth2客户端及登录认证进行支持。
应用程序的分布式请求链路跟踪,支持使用Zipkin和基于日志的跟踪。结合ES进行日跟踪信息的持久化存储
API网关组件,对请求提供路由及过滤功能,与Zuul类似
附加文章
Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用
Spring Cloud Gateway:新一代API网关服务
Spring Cloud Security:Oauth2使用入门
Spring Cloud Security:Oauth2结合JWT使用
Spring Cloud Security:Oauth2实现单点登录
Spring Cloud Alibaba:Nacos 作为注册中心和配置中心使用