简介
随着我们系统的庞大,各个服务间调用关系变得越来越复杂。当客户端发起一个请求时,这个请求经过多个服务后,最终返回了结果,中间经过的每个服务都有可能发生延迟或错误,从而导致请求失败。这个时候就需要请求链路跟踪工具来帮助我们,理清请求调用的服务链路,快速确定出问题点。
Spring Cloud Sleuth是分布式系统中跟踪服务间调用的工具,它可以直观地展示出一次请求的调用过程。
本文主要对其用法进行详细介绍。
随着我们系统的庞大,各个服务间调用关系变得越来越复杂。当客户端发起一个请求时,这个请求经过多个服务后,最终返回了结果,中间经过的每个服务都有可能发生延迟或错误,从而导致请求失败。这个时候就需要请求链路跟踪工具来帮助我们,理清请求调用的服务链路,快速确定出问题点。
Spring Cloud Sleuth是分布式系统中跟踪服务间调用的工具,它可以直观地展示出一次请求的调用过程。
本文主要对其用法进行详细介绍。
Spring Cloud Bus是Spring Cloud体系内的消息总线,用来连接分布式系统的所有节点。
Spring Cloud Bus将分布式的节点用轻量的消息代理(RibbitMQ、Kafka)连接起来。可以通过消息代理广播配置文件的更改,或服务之间的通讯,也可以用于监控。解决了微服务数据变更,及时同步的问题。
使用消息代理来构建一个主题,让所有微服务实例订阅,当该消息主题产生消息时会被所有微服务实例监听和消费。
下面我们以RabbitMQ为例来演示下使用Spring Cloud Bus动态刷新配置的功能。
Spring Cloud Config可以为微服务架构中的应用提供集中化的外部配置支持,分为服务端和客户端两部分。
服务端被称为分布式配置中心,它是个独立的应用,可以从配置仓库获取配置信息并提供给客户端使用。
客户端可以通过配置中心来获取配置信息,在启动时加载配置。
Spring Cloud Config配置中心默认采用Git来存储配置信息,所以天然支持配置信息的版本管理,并且可以使用Git客户端来方便地管理和访问配置信息。
本文中我们使用Git仓库来存储Spring Cloud Config配置中心的配置信息,故首先创建Git仓库。
Spring Cloud Zuul是Spring Cloud Netflix子项目的核心组件之一,是微服务架构中的API网关,支持动态路由与过滤功能。下面主要对其用法做详细介绍。
API网关为微服务架构提供统一访问入口,客户端通过API网关访问相关服务。它实现了请求路由、负载均衡、过滤校验、服务容错、服务聚合等功能。
Spring Cloud OpenFeign是声明式的服务调用工具,它整合了Ribbon和Hystrix,拥有负载均衡和服务容错功能,本文将对其用法进行详细介绍。
Feign是声明式的服务调用工具,我们只需创建一个接口并用注解的方式来配置它,就可以实现对某个服务接口的调用,简化了直接使用RestTemplate来调用服务接口的开发量。Feign具备可插拔的注解支持,同时支持Feign注解、JAX-RS注解及SpringMVC注解。当使用Feign时,Spring Cloud集成了Ribbon和Eureka以提供负载均衡的服务调用及基于Hystrix的服务容错保护功能。
版本信息:
Spring Cloud:Hoxton.RELEASE
Spring Boot:2.2.2.RELEASE