安装consul
1.下载consul
2.安装consul
解压下载文件consul_1.2.1_windows_amd64,并将解压的文件放入到创建好的consul,配置到path中。
例如:在path下加上:E:\programfiles\consul;
3.启动consul
使用cmd启动方式:consul agent -dev
4.访问consul,并检验是否安装成功
打开浏览器,访问http://localhost:8500
spring cloud consul 客户端连接consul
1.创建一个maven项目
2.进行田间maven依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-consul-dependencies</artifactId> <version>2.0.0.M7</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
3.创建一个SpringCloudConsulSampleApplication.java 文件
package com.example.springcloudconsulsample; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.DiscoveryClient; @EnableDiscoveryClient @RestController @SpringBootApplication public class SpringCloudConsulSampleApplication { @Autowired private DiscoveryClient discoveryClient; /** * 获取所有服务 */ @RequestMapping("/services") public Object services() { return discoveryClient.getServices(); } @RequestMapping("/home") public String home() { return "Hello World"; } public static void main(String[] args) { SpringApplication.run(SpringCloudConsulSampleApplication.class, args); } }
4.Spring Boot 项目资源文件在 resources 目录下创建appliation.properties文件
spring.application.name=spring-boot-service ##debug配置是否调试模式,如果打包发布的话,需要设置为false。 debug=true ##server.port配置的是 Spring Boot 服务的端口。 server.port=24543 ##spring.cloud.consul.host/port配置的是本地 Consul 的地址和端口(Server 节点和 Client 节点都可以) #Spring Cloud Consul 会调用 Consul HTTP REST 接口,进行服务注册。 spring.cloud.consul.host=127.0.0.1 spring.cloud.consul.port=8500 ##spring.cloud.consul.discovery.register.true配置启动是否注册服务, spring.cloud.consul.discovery.register=true ##spring.cloud.consul.discovery.hostname配置 Spring Boot 服务的主机地址,也可以不进行配置,默认本机地址。 spring.cloud.consul.discovery.hostname=127.0.0.1 ##spring.cloud.consul.discovery.serviceName配置 Consul 注册的服务名称,${spring.application.name}变量是我们上面application.properties配置文件中添加的配置。] spring.cloud.consul.discovery.serviceName=${spring.application.name} ##spring.cloud.consul.discovery.healthCheckPath配置 Consul 健康检查地址,Actuator 组件帮我们进行了实现,所以我们不需要额外的实现,地址在服务启动的时候,打印信息里面可以看到。 spring.cloud.consul.discovery.healthCheckPath=/actuator/health ##spring.cloud.consul.discovery.healthCheckInterval配置 Consul 健康检查频率,也就是心跳频率。 spring.cloud.consul.discovery.healthCheckInterval=15s ##spring.cloud.consul.discovery.tags配置 Consul 注册服务的 Tags,设置为urlprefix-/serviceName的格式,是自动注册到 Fabio 集群中。 spring.cloud.consul.discovery.tags: urlprefix-/${spring.application.name} ##spring.cloud.consul.discovery.instanceId配置 Consul 注册服务 ID。 spring.cloud.consul.discovery.instanceId=${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_id:${random.value}}}
5. 启动项目
6.查看 Consul 是否服务注册成功: