consul简介
由于Eureka的停更,很多公司也开始使用consul来作为注册中心了,consul是一套开源的分布式服务发现和配置管理系统,用Go语言编写,提供了微服务系统的服务治理、配置中心、控制总线等功能
优点
- 基于raft协议,简洁
- 支持健康检查,支持HTTP和DNS协议
- 支持KV存储
- 支持跨数据中心的WAN集群
- 提供图形界面
- 跨平台,支持windows、mac、linux
consul的强一致性要求必须过半数的节点都写入成功才认为注册成功,Leader挂掉时,重新选举期间整个consul不可用
consul的使用
使用consul必须要使用Consul Agent客户端
查看版本
使用开发模式启动
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
| <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: host: localhost port: 8500 discovery: service-name: ${spring.application.name} health-check-interval: 30s
|