consul简介

由于Eureka的停更,很多公司也开始使用consul来作为注册中心了,consul是一套开源的分布式服务发现和配置管理系统,用Go语言编写,提供了微服务系统的服务治理、配置中心、控制总线等功能

优点

  • 基于raft协议,简洁
  • 支持健康检查,支持HTTP和DNS协议
  • 支持KV存储
  • 支持跨数据中心的WAN集群
  • 提供图形界面
  • 跨平台,支持windows、mac、linux

<!-- more -->

consul的强一致性要求必须过半数的节点都写入成功才认为注册成功,Leader挂掉时,重新选举期间整个consul不可用

consul的使用

使用consul必须要使用Consul Agent客户端

查看版本

consul --version

使用开发模式启动

consul agent -dev

consul启动之后可以访问localhost:8500来进行查看web页面

命令

# 将agent加入到consul集群
consul join 192.168.0.2
# 列出consul集群中的成员
consul members
# 将节点移出所在集群
consul leave

程序编写

依赖

<!-- consul服务发现 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

主程序

@SpringBootApplication
@EnableDiscoveryClient
public class ConsulApp {
    public static void main(String[] args) {
        SpringApplication.run(ConsulApp.class,args);
    }
}

配置

server:
  port: 8005
spring:
  application:
    name: provide-consul
  cloud:   # consul配置
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}   #注册的服务名称
        health-check-interval: 30s #Consul实例会检查/health端点来确定实例是否正常,默认是10s检测一次
https://zhhll.icu/2021/框架/微服务/springcloud/注册中心/consul/1.consul简介/

bug生产者
20 声望0 粉丝