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

Spring Cloud Consul

SpringBoot + Spring Cloud Consul 服务注册和发现

Spring Boot + Spring Cloud 集成 Consul 服务注册发现

Spring Cloud——Consul服务注册中心的介绍安装与使用

Spring Cloud——Consul服务注册中心的介绍安装与使用