admin 發表於 2019-9-10 09:48:31

Spring Cloud Consul(HTTP健康检查和服务发现与Consul)

办事发明与Consul

办事发明是基于微办事架构的关头原则之一。测验考试设置装备摆设每一个客户端或某种情势的商定可能很是坚苦,可以很是懦弱。Consul经由过程HTTP API和DNS供给办事发明办事。Spring Cloud Consul操纵HTTP API举行办事注册和发明。这不会阻拦非Spring Cloud利用步伐操纵DNS界面。

若何激活

要激活Consul办事发明,请利用组org.springframework.cl台北機車借款,oud和artifact id spring-cloud-starter-consul-discovery的启动器。有关利用当前的Spring Cloud公布列表设置构建体系的具体信息,请参阅Spring Cloud项目页面。

注册Consul

当客户端注册Consul时,它供给有关本身的元数据,如主机和端口,ID,名称和标签。默许环境下会建立一个HTTP 查抄,每隔10秒,Consul射中/health端点。若是康健查抄失败,则办事实例被标识表记标帜为关头。

示例Consul客户端:

.

(即彻底正常的Spring Boot利用步伐)。若是Consul客户端位于localhost:8500之外的位置,则必要设置装备摆设来定位客户端。例:

application.yml

.

告诫

若是您利用Spring Cloud Consul Config,上述值将必要放在bootstrap.yml而不是appl自體脂肪豐胸,ication.yml中。

来自Environment的默许办事名称,实例ID和端口别离为${spring.application.name},Spring上下文ID和${server.port}。

@EnableDiscoveryClient将利用步伐设为Consul“办事”(即注册本身)和“客户端”(便可以盘问Consul查找其他办事)。

HTTP康健查抄

Consul实例的运行状态查抄默许为“/ health”,这是Spring Boot履行器利用步伐中有效端点的默许位置。若是您利用非默许上下文路径或servlet路径(比方server.servletPath=/foo)或办理端点路径(比方management.context-path=/admin美白針,),则必要更改这些,即便是履行器利用步伐。也能够设置装备摆设Consul用于查抄运行状态端点的距离。“10s”和“1m”别离暗示10秒和1分钟。例:

application.yml

.

元数据和Consul标签

Consul还没有支撑办事元数据。Spring Cloud的ServiceInstance有一个Map metadata字段。Spring Cloud Consul利用Consul标签来类似元数据,直到Consul正式支撑元数据。利用key=value情势的标签将被朋分并别离用作Map键和值。标签没有不异的=符号,将被用作键和值二者。

.

上述设置装备摆设将致使具备foo→bar和baz→baz的映照。

使Consul实例ID独一

默许环境下,一个领究竟体注册了一个即是其Spring利用步伐上下文ID的ID。默许环境下,Spring利用步伐上下文ID为${spring.application.name}:co妹妹a,separated,profiles:${server.port}。在大大都环境下,这将容许一个办事的多个实例在一台呆板上运行。若是必要进一步的独一性,利用Spring Cloud,您可以经由过程在spring.cloud.consul.discovery.instanceId中供给独一的标识来笼盖此。比方:

.

利用这个元数据和在localhost上摆设的多个办事实例,随机值将在那边举行,以使实例是独一的。在Cloudfoundry中,vcap.application.instance_id将在Spring Boot利用步伐中主动填充,是以不必要随机值。

利用DiscoveryClient

Spring Cloud支撑Feign(REST客户端构建器),Spring RestTemplate利用逻辑办事名称而不是物理URL。

您还可使用org.springframework.cloud.client.discovery.DiscoveryClient,它为Netflix不特定的发明客户端供给了一个简略的API,比方

.
頁: [1]
查看完整版本: Spring Cloud Consul(HTTP健康检查和服务发现与Consul)