Spring Cloud Consul—服务发现与Consul
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Cloud Consul—服务发现与Consul相关的知识,希望对你有一定的参考价值。
服务发现是基于微服务架构的关键原则之一。尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱。Consul通过HTTP API和DNS提供服务发现服务。Spring Cloud Consul利用HTTP API进行服务注册和发现。这不会阻止非Spring Cloud应用程序利用DNS界面。Consul代理服务器在通过八卦协议进行通信的集群中运行,并使用Raft协议协议。
如何激活
要激活Consul服务发现,请使用组org.springframework.cloud和artifact id spring-cloud-starter-consul-discovery的启动器。有关使用当前的Spring Cloud发布列表设置构建系统的详细信息,请参阅Spring Cloud项目页面。
注册Consul
当客户端注册Consul时,它提供有关自身的元数据,如主机和端口,ID,名称和标签。默认情况下会创建一个HTTP 检查,每隔10秒,Consul命中/health端点。如果健康检查失败,则服务实例被标记为关键。
示例Consul客户端:
@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class Application {
@RequestMapping("/")
public String home() {
return "Hello world";
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
(即完全正常的Spring Boot应用程序)。如果Consul客户端位于localhost:8500以外的位置,则需要配置来定位客户端。例:
application.yml
spring:
cloud:
consul:
host: localhost
port: 8500
警告
如果您使用Spring Cloud Consul Config,上述值将需要放在bootstrap.yml而不是application.yml中。
来自Environment的默认服务名称,实例ID和端口分别为${spring.application.name},Spring上下文ID和${server.port}。
@EnableDiscoveryClient将应用程序设为Consul“服务”(即注册自己)和“客户端”(即可以查询Consul查找其他服务)。
以上是关于Spring Cloud Consul—服务发现与Consul的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud(13)——服务注册与发现工具Consul
SpringBoot + Spring Cloud Consul 服务注册和发现
Spring Boot + Spring Cloud 集成 Consul 服务注册发现