Consul初探-从安装到运行
前言
伟大领袖毛主席说过:实践是检验真理的唯一标准!经过上一篇的学习,我基本掌握了 Consul 的基本原理,接下来就是动手实践了;Consul 的部署方式分为两种,分别是二进制包和docker方式,这次就以二进制包的方式进行实验吧。
本次实验使用物料准备:
1、 Consul 服务器集群 3 台,系统为 Centos7.0
下载二进制包
访问 Consul 的官方网站:https://www.consul.io,看懂非常牛逼的一句话,让打造服务网格变简单!然后大大的屏幕上放着两个按钮:Download or Get Started;表示你要么立即开始干要么先学一段,右边就是一个高大上的视频操作介绍,看着就让人热血沸腾;这我哪里能忍,点击下载:https://www.consul.io/downloads.html ,话不多说,打开服务器的 ssh,果断敲下一梭子:
cd /tmp
wget https://releases.hashicorp.com/consul/1.5.1/consul_1.5.1_linux_amd64.zip
unzip consul_1.5.1_linux_amd64.zip -d /usr/local/bin
编辑 /etc/profile 文件,添加环境变量,保存后退出。
vi /etc/profile
export CONSUL_HOME=/usr/local/bin/consul
export PATH=$PATH:CONSUL_HOME
// 使用环境变量配置生效
source /etc/profile
验证 Consul 安装是否成功,在命令行输入:consul
consul --version
输出结果:

看到这个结果,我心里是很安慰的,不过如此嘛,一点都不像其它软件,从下载源码到编译,从安装 gcc 到 gdi+ 的依赖,先跑1万个依赖文件的列表,Consul 也太 easy 了。
入门必学必记文档
帮助文档:https://www.consul.io/docs/agent/options.html
安装好 Consul 后,在启动程序之前,需要掌握一些配置参数,通过掌握这些参数,可以一次性的成功运行 Consul 服务器集群,常用的参数如下:
| 参数名称 | 用途 |
|---|---|
| -server | 此标志用于控制代理是运行于服务器/客户端模式,每个 Consul 集群至少有一个服务器,正常情况下不超过5个,使用此标记的服务器参与 Raft一致性算法、选举等事务性工作 |
| -client | 表示 Consul 绑定客户端接口的IP地址,默认值为:127.0.0.1,当你有多块网卡的时候,最好指定IP地址,不要使用默认值 |
| -bootstrap-expect | 预期的服务器集群的数量,整数,如 -bootstrap-expect=3,表示集群服务器数量为3台,设置该参数后,Consul将等待指定数量的服务器全部加入集群可用后,才开始引导集群正式开始工作,此参数必须与 -server 一起使用 |
| -data-dir | 存储数据的目录,该目录在 Consul 程序重启后数据不会丢失,指定此目录时,应确保运行 Consul 程序的用户对该目录具有读写权限 |
| -node | 当前服务器在集群中的名称,该值在整个 Consul 集群中必须唯一,默认值为当前主机名称 |
| -bind | Consul 在当前服务器侦听的地址,如果您有多块网卡,请务必指定一个IP地址(IPv4/IPv6),默认值为:0.0.0.0,也可用使用[::] |
| -datacenter | 代理服务器运行的数据中心的名称,同一个数据中心中的 Consul 节点必须位于同一个 LAN 网络上 |
| -ui | 启用当前服务器内部的 WebUI 服务器和控制台界面 |
| -join | 该参数指定当前服务器启动时,加入另外一个代理服务器的地址,在默认情况下,如果不指定该参数,则当前代理服务器不会加入任何节点。可以多次指定该参数,以加入多个代理服务器, |
| -retry-join | 用途和 -join 一致,当第一次加入失败后进行重试,每次加入失败后等待时间为 30秒 |
| -syslog | 指定此标志意味着将记录 syslog,该参数在 Windows 平台不支持 |
启动 Consul
终于来到这一步了,目前我手上有 3 台嗷嗷待哺的 Centos-7.0 服务器,他们的IP地址分别是:
- 172.16.1.218
- 172.16.1.219
- 172.16.1.220
分别在三台服务器输入以下对应的命令
// 172.16.1.218
consul agent -server -ui -bootstrap-expect=3 -data-dir=/data/consul -node=agent-1 -client=0.0.0.0 -bind=172.16.1.218 -datacenter=dc1
// 172.16.1.219
consul agent -server -ui -bootstrap-expect=3 -data-dir=/data/consul -node=agent-2 -client=0.0.0.0 -bind=172.16.1.219 -datacenter=dc1 -join 172.16.1.218
// 172.16.1.220
consul agent -server -ui -bootstrap-expect=3 -data-dir=/data/consul -node=agent-3 -client=0.0.0.0 -bind=172.16.1.220 -datacenter=dc1 -join 172.16.1.218
上面的命令几乎无法再精简,简单来说,就是指定了 consul(-server) 集群有3台(-bootstrap-expect=3 )服务器(-node),指定当前主机客户端侦听地址为( -client=0.0.0.0 ),因为我有多块网卡,如果不指定,无法运行127.0.0.1。绑定了当前主机的IP地址(-bind),指定了一个数据中心的名称(-datacenter=dc1),后两台服务器在启动的时候加入第一台代理服务器(-join 172.16.1.218),同时指定了启用每台服务器的内置 WebUI 服务器组件(-ui),当三台服务器都正确运行起来以后,Consul 集群将自动选举 leader,自动进行集群事务,无需干预。
正常启动的服务器应该输出下面的信息

现在,我尝试通过某台服务器访问 Consul 的 WebUI 控制台,web 控制台默认端口为:8500,查看集群状态,输入地址:
http://172.16.1.218:8500
上面的IP地址可以是 3 台 Consul 服务器中的任意一台,打开网页后,转向 Nodes 菜单,可以看到,由 3 台代理服务器组成的集群已成功启动和运行,健康检查都是草原的颜色,非常的健康。

在网页控制台中,除了了看到 Consul 的服务器集群的信息,还可以对 key/value 、ACL 等进行管理。
Consul初探-从安装到运行的更多相关文章
- Consul初探-集成ocelot
前言 由于 Consul 的高可用性.丰富的API.友好的 Web 控制台界面等特点,Consul 的发展非常迅猛,得益于 .NETCore 社区的快速发展和社区成员的贡献,我们现在可以非常方便快速的 ...
- Consul初探-在深交之前先认识
Consul 是什么? Consul 官方站点:https://www.consul.io/ 首先,官方介绍是:Consul 是一种服务网格的解决方案,在 Consul 中,提供了服务发现.配置.分段 ...
- Python 2/3 安装与运行环境设置
Python 2/3 安装与运行环境设置: 1.Python 软件源:https://www.python.org/ 下载Win版本 https://www.python.org/downloa ...
- 使用工具安装,运行,停止,卸载Window服务
WSWinForm.exe介绍 WSWinForm.exe是我自己开发的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说WSWinForm只是其注册程序的服务外壳,这个特性对 ...
- VMware10.06精简版安装后台运行
VMware10.06精简版安装时会出现一个安装功能选择菜单,里面有一条后台运行必选功能,一般人会跳过条.当你打算在服务器上用vmware时,一定要安装后台运行服务,否则你无法换出正在运行的后台虚拟机 ...
- phpstudy 出现“请自行检查是否安装VC9运行库??”问题 -- 缺少vc9库
phpStudy是一款PHP调试环境的程序集成包,该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便.好用的 ...
- JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)
1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...
- 解决安装vc2005运行库时提示Command line option syntax error.Type Command/?for Help
安装vc2005运行库时提示 这是因为它要自解压到用户的临时文件夹下,如果用户名中带中文,就会报错. 简单的解决方法是,手动解压之,再安装 当然,你也可以修改用户名或者再新建个用户.
- 解决不安装VC运行库(VC2005,VC2008),程序运行出错的方法
因为VS2005以后程序采用了manifest的生成方式,所以发布的时候要和运行库一起发布.但是我们平时开发和发布的时候如果都要客户安装运行库,那就不太方便了.你可以Microsoft下载:http: ...
随机推荐
- mysql那些事(4)建库建表编码的选择
mysql建数据库或者建表的时候会遇到选择编码的问题,以前我们都是习惯性的选择utf8,但是在mysql在5.5.3版本后加了utf8mb4的编码,utf8mb4可以存4个字节Unicode,mb4就 ...
- 顺序表-C语言实现
顺序存储线性表的结构体: #define MAXSIZE 100 //数组最大长度 typedef int ElemType; //元素类型 typedef struct //定义线性表结构体 { E ...
- Docker 构建私有仓库
Docker Hub 目前Docker官方维护了一个公共仓库Docker Hub,其中已经包含了数量超过15000的镜像.大部分需求都可以通过在Docker Hub中直接下载镜像来实现. 可以在htt ...
- JS的Form表单转JSON格式
一.serialize()方法 格式:var data = $("#formID").serialize(); 功能:将表单内容序列化成一个字符串. 注意:要使用params = ...
- nginx、redis在Centos7中,加入开机自启动
nginx加入开机启动 cat <<EOF >> /etc/systemd/system/nginx.service> [Unit]> Description=ng ...
- 【华为云实战开发】9.如何进行PHP项目的快速搭建并实现CICD?【华为云技术分享】
1 概述 1.1 文章目的 本文主要想为研发PHP项目的企业或个人提供上云指导,通过本文中的示例项目 “workerman-todpole”,为开发者提供包括项目管理,代码托管,代码检查,编译构建,测 ...
- Tensorflow Serving Docker compose 部署服务细节(Ubuntu)
[摘要] Tensorflow Serving 是tf模型持久化的重要工具,本篇介绍如何通过Docker compose搭建并调试TensorFlow Serving TensorFlow Servi ...
- Reactive(1) 从响应式编程到"好莱坞"
目录 概念 面向流设计 异步化 响应式宣言 参考文档 概念 Reactive Programming(响应式编程)已经不是一个新东西了. 关于 Reactive 其实是一个泛化的概念,由于很抽象,一些 ...
- 详解TCP连接的“三次握手”与“四次挥手”(上)
一.TCP connection 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西: 由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它 ...
- 牛客竞赛-Who killed Cock Robin
Who killed Cock Robin? I, said the Sparrow, With my bow and arrow,I killed Cock Robin. Who saw him d ...