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简介/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。