1.环境准备
下载consul
解压
cmd执行
consul.exe agent -server -bootstrap -advertise 127.0.0.1 -data-dir ./data -ui
访问http://localhost:8500页面
2.consul客户端
引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulApplication {
public static void main(String[] args) {
SpringApplication.run(ConsulApplication.class, args);
}
}
application.properties中配置
spring.application.name=consulClient1
server.port=8081
其中默认的consul服务发现地址就是localhost:8500,因此无需配置也能注册成功。
如需修改consul服务端的地址
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
问题
服务注册失败,提示
Endpoint ID ‘service-registry’ contains invalid characters, please migrate to a valid format.
spring cloud 版本和boot的版本不匹配
我所使用的spring cloud 版本为Finchley.RELEASE,而boot使用的是2.1.4。将boot修改为2.0.3.RELEASE问题解决。