在微服务中,一个重要的组件就是服务发现。有服务发现后,client和 server工作流程就变为:
- 每一个server启动时,都将自己的
IP
、port和服务名注册给“服务发现” - 当client向服务发现发起服务请求时,“服务发现”会自动找一个可用的服务,将相关信息(
IP
+port等)返回给client - client再去访问该服务
其中,consul就是一个常用的,使用Go语言编写的服务发现系统(此外,还有etcd
、zookeeper
、Eureka
等)。具体来说,Consul是一个分布式高可用的系统,包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性:
- 服务发现
- 健康检查
- Key/Value存储
- 多数据中心
本章节主要叙述如何安装 consul
安装
官网下载地址:
- https://www.consul.io/downloads.html
- https://releases.hashicorp.com/consul/
选择对应的操作系统,下载好安装包。这个安装包是一个可执行的 二进制 文件。
在Linux上安装
- 解压好下载的安装包:
unzip consul_1.9.2_linux_amd64.zip
- 解压文件,移动到
bin
发现是一个可执行的二进制文件,将该文件移动到 /usr/local/bin
目录下:
mv 文件位置 /usr/local/bin
# /usr/local/bin 中,是可行性文件,这里的文件不需要配置环境变量
- 终端验证是否成功
检查是否安装成功:
root@iZbp108sgwrkv7xselxucnZ:~# consul --version
Consul v1.9.2
Revision 6530cf370
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
在windows 10上安装
在windows 10上也是类似的操作,直接解压,之后会有一个 consul.exe
文件
将该文件的所在路径,配置到环境变量中:
说明:
建议下载稳定版本的,不要下载最新版本:Consul Versions | HashiCorp Releases
简单启动
常用命令
consul agent ##代理
-bind=0.0.0.0 ## 指定consul所在机器的IP地址,默认是0.0.0.0
-http-port=8500 ## consul自带一个web访问的默认端口
-client=127.0.0.1 ## 表明哪些机器可以访问consul,默认本机,0.0.0.0表示所有机器均可访问
-config-dir=foo ## 所有主动注册服务的描述信息
-data-dir=path ## 储存所有注册过来的server机器的详细信息
-dev ## 开发者模式,直接以默认的配置启动consul
-node=hostname ## 服务发现的名字(节点名称)
-rejion ## consul启动的时候,加入到consul的集群
-server ## 以服务方式开启consul,运行其他的consul连接到开启的consul上(形成了集群)。如果不加-server,表示以“客户端”的方式开启,不能被连 接。
-ui ## 可以使用web页面来查看服务发现的详情
启动
这里需要在服务器启动的时候,加上-client的指定,执行下面命令的时候则其他机器才可以进行访问,否则只能本机访问。
consul agent -dev -client 0.0.0.0 -ui
## consul agent -dev -client 127.0.0.1 -ui ## 这个只能本机访问
看到:
==> Consul agent running!==> Consul agent running!
则表示成功
启动成功后,访问:
http://127.0.0.1(或者云服务IP地址):8500/ui
访问不了的时候,查看服务器的防火墙是否开放了 8500 端口
退出
方法一
打开另一个终端,输入:
consul leave
方法二:
直接使用 Ctrl-C
退出