Spring Cloud-Consul服务注册发现与配置中心

简介

Spring Cloud Consul为SpringBoot应用提供了Consul的支持,Consul既可以作为注册中心使用,也可以作为配置中心使用,本文将对其用法进行详细介绍。

Consul是HashiCorp公司推出的开源软件,提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格。

Spring Cloud Consul具有如下特性:

  • 支持服务治理:Consul作为注册中心时,微服务中的应用可以向Consul注册自己,并且可以从Consul获取其他应用信息;
  • 支持客户端负载均衡:包括Ribbon和Spring Cloud LoadBalancer;
  • 支持Zuul:当Zuul作为网关时,可以从Consul中注册和发现应用;
  • 支持分布式配置管理:Consul作为配置中心时,使用键值对来存储配置信息;
  • 支持控制总线:可以在整个微服务系统中通过Control Bus分发事件消息;

Spring Cloud-Sleuth服务链路跟踪

简介

随着我们系统的庞大,各个服务间调用关系变得越来越复杂。当客户端发起一个请求时,这个请求经过多个服务后,最终返回了结果,中间经过的每个服务都有可能发生延迟或错误,从而导致请求失败。这个时候就需要请求链路跟踪工具来帮助我们,理清请求调用的服务链路,快速确定出问题点。

Spring Cloud Sleuth是分布式系统中跟踪服务间调用的工具,它可以直观地展示出一次请求的调用过程。

本文主要对其用法进行详细介绍。

Spring Cloud-Bus消息总线

简介

Spring Cloud Bus是Spring Cloud体系内的消息总线,用来连接分布式系统的所有节点。

Spring Cloud Bus将分布式的节点用轻量的消息代理(RibbitMQ、Kafka)连接起来。可以通过消息代理广播配置文件的更改,或服务之间的通讯,也可以用于监控。解决了微服务数据变更,及时同步的问题。

使用消息代理来构建一个主题,让所有微服务实例订阅,当该消息主题产生消息时会被所有微服务实例监听和消费。

下面我们以RabbitMQ为例来演示下使用Spring Cloud Bus动态刷新配置的功能。

Spring Cloud-Config分布式配置中心

简介

Spring Cloud Config可以为微服务架构中的应用提供集中化的外部配置支持,分为服务端和客户端两部分。

服务端被称为分布式配置中心,它是个独立的应用,可以从配置仓库获取配置信息并提供给客户端使用。

客户端可以通过配置中心来获取配置信息,在启动时加载配置。

Spring Cloud Config配置中心默认采用Git来存储配置信息,所以天然支持配置信息的版本管理,并且可以使用Git客户端来方便地管理和访问配置信息。

Git仓库准备配置信息

本文中我们使用Git仓库来存储Spring Cloud Config配置中心的配置信息,故首先创建Git仓库。

Spring Cloud-Zuul服务网关

Zuul简介

Spring Cloud Zuul是Spring Cloud Netflix子项目的核心组件之一,是微服务架构中的API网关,支持动态路由与过滤功能。下面主要对其用法做详细介绍。
API网关为微服务架构提供统一访问入口,客户端通过API网关访问相关服务。它实现了请求路由、负载均衡、过滤校验、服务容错、服务聚合等功能。

创建zuul-proxy模块