最近一直在对比Consul和Nacos,两者功能几乎完全类似,都是服务注册和全局配置中心。Consul是基于Google基于Go语言开发的,Nacos是阿里巴巴使用JAVA开发的。
本篇文章我们简单来研究下Consul服务注册中心,Consul的下载和使用很方便,直接到官网下载,我下载的是consul_1.7.2_windows_amd64.zip版本,下载后之后直接解压,然后运行命令:
consul agent -dev -ui -client=192.168.43.1 -dns-port=53
client是Consul运行的IP地址,-dns-port的dns服务监听的端口, Consul通过HTTP API和DNS提供服务发现服务,关于Consul的原理和整体架构这里就不再叙述。运行成功后打开8500端口,出现:
在这里插入图片描述

这个Consul的管理端界面,可以实现服务注册后的监听和健康检查,以及全局配置的Key/Value的新增等功能。
那么我们来实现一个服务注册功能,完整的代码包见资源文件,其中最主要的就是配置@EnableDiscoveryClient,这个标识。运行程序后,再到Consul中查看:
在这里插入图片描述

可以看到我们的整个Service提供方已经注册进来,查看Node节点,也可以看到http://LAPTOP-5LOO6GCT:8080/actuator/health的输出是{“status”:“UP”},这个Service中包含了一个RESTAPI,/hello。
接下来我们创建一个客户端,通过RestTemple来调用Producer上的/hello的API。代码打包见资源文件。核心关键代码如下:
在这里插入图片描述

启动该应用后,我们发现Consul中客户端也注册进来了。
在这里插入图片描述

最后我们通过客户端的8503端口,调用/call的Api,出现服务调用成功,并且Consul还可实现服务端的负载均衡,这里可以通过运行服务端不同的端口来配置实现。
在这里插入图片描述

最后总结一句,Consul的服务注册中心,注册的是微服务组件,而不是微服务组件内部的API,至于Consul如何与Kong网关的融合,将在后面讲解。

更多推荐