1.什么是Consul?
Consul是HashiCorp公司推出的开源工具, 用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案相比, Consul的方案更“一站式”, 内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Valu c存储、多数据中心方案, 不再需要依赖其他工具(比如ZooKeeper等) .使用起来也较为简单.Consul使用Go语言编写, 因此具有天然可移植性(支持Linux、Windows和MacOSX) :安装包仅包含一个可执行文件,方便部署, 与Docker等轻量级容器可无缝配合。
2.Consul安装
https://www.consul.io/downloads.html
下载完成后解压,打开CMD终端,进入consul.exe所在目录,执行如下命令启动Consul服务。
#进入consul.exe所在目录 cd 你的目录 #启动服务,-dev表示开发模式运行,另外还有-server表示服务模式运行 consul agent –dev
启动成功后访问localhost:8500,查看是否启动成功
3.monitor改造
改造mango-monitor工程,作为服务注册到注册中心。
3.1 添加依赖
在pom.xml中添加Spring Cloud和Consul注册中心依赖。
注意:Spring Boot2.1后的版本会出现Consul服务注册上的问题,可能是因为配置变更或者支持方式发生改变,由于版本太新,网上也没有相关解决方案,所以这里吧spring Boot版本调整为2.0.4,Spring Cloud版本使用最新的稳定发布版Finchley.RELEASE。
<!--consul--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> <!--srping cloud--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
3.2 配置文件
server.port=8000 spring.application.name=mango-monitor spring.cloud.consul.host=localhost spring.cloud.consul.port=8500 #注册到consul的服务名称 spring.cloud.consul.discovery.service-name=${spring.application.name}
3.3 修改启动类
添加@EnableDiscoveryClient
3.4 测试效果
启动服务监控服务器,访问localhost:8500,发现服务已经成功注册到注册中心。
1