最近在写springcloud系列文章,其中注册中心中使用的consul也是文章篇幅之一,这篇文章介绍了我对于consul的安装的一个步骤,可以作为大家在安装使用consul的过程中的一个参考。
1、windows安装
访问官网下载地址,下载windows对应版本,这里386对应的是32位系统,AMD64对应的是64位系统。下载完成后解压缩,会有一个consul.exe文件,双击打开就启动了consul服务。
我的电脑双击之后,直接闪一下就没有了,后面查看任务管理器,发现其实是已经运行了的,也可以使用cmd输入 consul --version 来进行验证
使用开发者模式启动consul agent -dev
启动完成后就可以访问管理页面localhost:8500
2、linux安装
还是访问consul官网 安装地址,选择对应的我们的linux系统版本(也可以选择下面的文件下载后再上传到linux服务)
根据官网的命令来执行下载我们的consul
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install consul
安装完毕后,我们启动使用consul agent -dev启动,就可以访问到consul的web管理界面了。
3、Consul agent讲解
有兴趣的可以访问Commands | Consul | HashiCorp Developer官网的命令大全地址进行学习。
什么是agent?
agent是consul的核心,它负责运行代理执行维护成员信息、运行检查、注册服务、响应查询等重要任务,agent分为server及client两种,其中server负责维护成员信息(数据存储)、检查、注册服务、响应查询,client之负责将请求转发到server,不进行持久化存储等功能。
我们启动consul的的时候一般使用命令consul [command] [options]的方式.
command:
- agent:consul的节点分为client和server两类,这两类节点统称为agent节点。
- join:该命令的作用是将agent加入到consul的集群当中。当新启动一个agent节点后,往往需要指定节点需要加入到特定的consul集群中,此时使用join命令进行指定。
- members:列出consul集群中的所有的成员节点信息,包括ip,端口,状态,类型等信息。
options:
option | decribe | default |
---|---|---|
-server | boolean,表示当前代理是通过server方式还是client方式启动 | false |
-datacenter | 指定代理运行在哪个数据中心的字符串值 | dc1 |
-data_dir | 指定存储代理状态数据的目录的字符串值。 | none |
-log_level | 指定代理报告日志记录级别的字符串值,可选值"trace", "debug", "info", "warn", and "error" | info |
-retry_join | 指定启动后要加入的一个或多个代理地址的字符串值数组。代理将继续尝试加入指定的代理,直到成功地加入另一个成员,允许错误。 | |
-node | 代理节点的名称,保证代理节点在集群中的唯一性 | 默认使用HostName |
-bootstrap | boolean值,一般只有一个server设置,表示此server当选为leader节点。 | |
-bootstrap-expect | int,该选项用于通知consul server类型节点,指定集群的server节点个数,该参数是为了延迟选举启动,直到全部的节点启动完毕以后再进行启动 | |
-ui_config.enable | boolean,表示是否开启ui界面(1.10版本之前配置为ui=true) | false |
-bind | 该选项用于指定节点所在的IP地址 | |
-client | 该参数用于指定consul界定为client节点类型 | |
-config-file | 指定一个要装载的配置文件。该选项可以配置多次,进而配置多个配置文件。 -dev:该选项用于创建一个开发环境下的server节点,该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘。dev模式仅仅是在开发和测试环境中使用,不能用于生产环境。 | |
-config-dir | 该选项用于指定service的配置文件和检查定义所在的位置。通常会指定为"某一个路径/consul.d"(通常情况下,.d表示一系列配置文件存放的目录) |
我们在进行开发测试的时候可以使用consul agent -dev,当使用-dev的时候,将启动一个server模式的代理服务,它会自动帮我们进行相关的一系列配置,只需要我们指定数据的存储目录,可以使用-data-dir=/opt/consuldata的方式进行指定,也可以使用外部配置文件来进行配置-config-file=/opt/consul.json或者-config-file=/opt/consul.hcl,hcl是consul官方的例子配置文件方式,我们一般都是用json文件来进行配置,这里就不做过多的描述,使用hcl就类似properties文件。