一、什么是Consul?
Consul是一套开源的分布式服务发现与配置管理系统,由hashiCorp公司使用go语言开发。它提供了微服务系统中的服务治理、配置中心、控制总线等功能,同时支持健康检查、跨平台、跨数据中心wlan集群等。这些功能可以单独使用,也可以一起使用,它提供了一套完整的服务解决方案。
二、Consul安装
访问https://www.consul.io/downloads下载相应的版本,windows版本下载后只有一个Consul.exe文件,双击即可运行,也可以使用开发模式启动(consul agent -dev),启动成功后访问http://localhost:8500,会显示一个web控制界面。
三、服务提供者注册到Consul
1、与zookeeper、eureka服务注册方式一样,服务提供者要想注册到Consul控制中心,需要引入spring-cloud-starter-consul-discovery组件包
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-cqhsul-discovery</artifactId> </dependency>
2、编辑application.yml配置文件
#consul服务端口号 server: port: 8006 spring: application: name: consul-provider-name #consul注册中心地址 cloud: consul: host: localhostport: 8500 discovery: #hostname: 127.0.0.1 service-name: ${spring.application.name}
3、主启动类增加@EnableDiscoveryClient注解,该注解用于向consul或者zookeeper注册中心注册该服务。
4、Controller类写业务接口,该控制器通常需要使用@RestController注解。
四、Eureka、Zookeeoer、Consul三个注册中心对比
语言 | CAP理论 | 健康检查 | 接口 | SpringCloud集成 | |
Eureka | java | AP | 可配 | HTTP | 已集成 |
Consul | go | CP | 支持 |
HHTPDNS |
已集成 |
Zookeeper | java | CP | 支持 | 客户端 | 已集成 |