此篇文章主要是学习consul用作注册中心的总结
一、consul下载
consul是需要独立安装,无论是单节点部署还是集群环境,类似于zookeeper,由于consul是用Go语言编写的也就是意味着consul具有良好的跨平台的特性。
下面附上官网的下载地址:
链接: https://www.consul.io/downloads.html.
本次学习选用windows版本,诸君可自行选择。
二、安装
下载完成之后就会得到一个consul.exe文件,双击执行即可(切记关闭防火墙)
安装完成之后,在当前路径下打开命令提示框输入: consul --version
我所使用的版本是 Consul v1.7.1
三、启动consul
在命令提示框中输入:consul agent -dev
使用开发模式启动单节点服务
访问:http://localhost:8500/ui
可以看到consul的管理台具有很多功能,下面简单介绍一下:
1.服务发现(Service Discovery):Consul提供了通过DNS或者HTTP接口的方式来注册服务和发现服务。一些外部的服务通过Consul很容易的找到它所依赖的服务。
2.健康检查(Health Checking):Consul的Client可以提供任意数量的健康检查,既可以与给定的服务相关联(“webserver是否返回200 OK”),也可以与本地节点相关联(“内存利用率是否低于90%”)。操作员可以使用这些信息来监视集群的健康状况,服务发现组件可以使用这些信息将流量从不健康的主机路由出去。
3.Key/Value存储:应用程序可以根据自己的需要使用Consul提供的Key/Value存储。 Consul提供了简单易用的HTTP接口,结合其他工具可以实现动态配置、功能标记、领袖选举等等功能。
4.安全服务通信:Consul可以为服务生成和分发TLS证书,以建立相互的TLS连接。意图可用于定义允许哪些服务通信。服务分割可以很容易地进行管理,其目的是可以实时更改的,而不是使用复杂的网络拓扑和静态防火墙规则。
5.多数据中心:Consul支持开箱即用的多数据中心. 这意味着用户不需要担心需要建立额外的抽象层让业务扩展到多个区域
(此次学习主要是着眼于服务发现以及健康检查。)
四、spring-cloud集成Consul
1.依赖引入(此处仅放置了consul的依赖,其他微服务必须依赖请自行引入):
2.yml文件配置
spring.cloud.consul.host: 配置consul的注册地址
spring.cloud.consul.port:配置consul的注册地址端口
spring.cloud.consul.discovery’.service-name: 配置此微服务在consul上的服务名称
3.启动类配置
@EnableDiscoveryClient:主要用于服务的发现,便于consul可以发现此服务并注册到consul上。
(ps:其他微服务配置同理可得)
五、验证
向consul注册两个服务分别是cloud-consumer-service和cloud-payment-service
两台服务的健康状态正常
consumer服务controller
payment服务controller
通过consumer服务向payment服务发起请求,通过服务名称的方式进行访问,成功访问,测试通过。
后记
spring-cloud-consul的更多配置请参考文档:https://www.springcloud.cc/spring-cloud-dalston.html#spring-cloud-consul-discovery.