Spring Cloud Consul学习笔记
1、简介
consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置;
consul是一站式解决方案,安装包只是一个可执行文件,可以部署到Docker容器,部署后就提供了类似Eureka、SmartStack登服务治理中心的功能。
几个关键特性:
- 服务发现
- 健康检查
- key/value存储
- 多数据中心
相关地址:
Spring Cloud Consul 快速启动
Consul agent 文档
2、服务生产者实现
服务生产者添加consul依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-all</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-consul-dependencies</artifactId>
<version>1.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
application.properties配置consul服务中心相关的properties
Spring Cloud Consul默认配置
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
如需自定义则覆盖即可。
添加注解
启动类添加@EnableDiscoveryClient
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application .class, args);
}
运行Consul agent
执行consul的开发模式命令:consul agent -dev
3、Consul集群
Consul集群的consul agent有两种运行模式:Server和Client,其中Server是用于监测和维护Client,Client是用于注册服务,运行健康检查和转发对 server 的查询。,官方建议每个Consul Cluster至少有3个或以上运行在Server模式的Agent,Client则不限。