0%

consul简介

consul简介

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

优点

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

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

consul的使用

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

查看版本

1
consul --version

使用开发模式启动

1
consul agent -dev

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

命令

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

程序编写

依赖

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

主程序

1
2
3
4
5
6
7
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulApp {
public static void main(String[] args) {
SpringApplication.run(ConsulApp.class,args);
}
}

配置

1
2
3
4
5
6
7
8
9
10
11
12
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检测一次

欢迎关注我的其它发布渠道