CentOS6.8安装Consul记录

官方文档
https://learn.hashicorp.com/consul/
https://learn.hashicorp.com/consul/getting-started/install
https://www.springcloud.cc/spring-cloud-consul.html
下载consul
https://releases.hashicorp.com/consul/1.5.1/consul_1.5.1_linux_amd64.zip


1. 解压即安装

[root@localhost ~]# unzip -o consul_1.5.1_linux_amd64.zip -d /usr/local/consul/

2. 配置环境变量

[root@localhost ~]# echo 'PATH=$PATH:/usr/local/consul/' >> /etc/profile
[root@localhost ~]# source /etc/profile

3. Consul集群

3.1 将consul部署到3台服务器,其中两台服务端(一台leader,一台备份server),一台为转发消息的客户端。
3.2 通过命令启动三台consul后,将其他两台consul服务加入集群中。
一般服务端3台-5台就可以了,客户端可以部署很多台。


server1

nohup consul agent -server \
-bootstrap-expect=1 \
-data-dir=/tmp/consul/data/ \
-node=server1 \
-bind=192.168.168.168 \
-ui \
-client=0.0.0.0  \
> /tmp/consul/log/consul.log 2>&1 &

-advertise-wan=123.57.215.66  
-advertise=123.57.215.66 

-server 表示以服务端身份启动
-bind 表示绑定ip(服务器有多块网卡,可通过bind参数强制绑定指定ip)
-client 限定客户端访问的ip(consul有丰富的api接口,这里的客户端指浏览器或调用方),0.0.0.0表示不限客户端ip
-bootstrap-expect=3 表示server集群最低节点数为3,低于这个值将工作不正常(注:类似zookeeper一样,通常集群数为奇数,方便选举,consul采用的是raft算法)
-data-dir 表示指定数据的存放目录(该目录必须存在)
-node 表示节点在web ui中显示的名称
-advertise-wan 使用也可以
-advertise 配置外网通知地址

启动成功后,终端窗口不要关闭,可以在浏览器里,访问下,类似 http://192.168.1.101:8500/,正常的话,应该会看到一行文字:Consul Agent。


server2

nohup consul agent -server \
-data-dir=/tmp/consul/data/ \
-node=server2 \
-bind=192.168.168.169 \
-ui \
-client=0.0.0.0\
> /tmp/consul/log/consul.log 2>&1 &

-advertise=118.57.108.56  \

client1

nohup consul agent \
-data-dir=/tmp/consul/data/ \
-node=client1 \
-bind=192.168.168.170 \
-ui \
-client=0.0.0.0 \
> /tmp/consul/log/consul.log 2>&1 &

-advertise=118.57.108.56  \

分别执行如下命令,将server2和client1加入到server1集群

[root@localhost ~]# consul join 192.168.168.168
Successfully joined cluster by contacting 1 nodes.

命令查看集群成员

[root@localhost ~]# consul members
Node     Address               Status  Type    Build  Protocol  DC   Segment
server1  192.168.168.168:8301  alive   server  1.5.1  2         dc1  <all>
server2  192.168.168.169:8301  alive   server  1.5.1  2         dc1  <all>
client1  192.168.168.170:8301  alive   client  1.5.1  2         dc1  <default>

使用WEB UI界面查看集群信息
在这里插入图片描述


portdesc 端口说明:
TCP/8300用于服务器节点,客户端通过该端口RPC协议调用服务端节点,服务器节点之间相互调用
TCP/8301用于单个数据中心所有节点之间的相互通信,即对LAN池信息的同步。它使得整个数据中心能够自动发现服务器地址,分布式检测节点故障,事件广播(如领导选举事件)
TCP/8302用于单个或多个数据中心之间的服务器节点的信息同步,即对WAN池信息的同步。它针对互联网的高延迟进行了优化,能够实现跨数据中心请求。
8400
8500基于http协议,用于API接口或WEB UI访问
8600作为DNS服务器,使得我们可以通过节点名查询节点信息

4. Consul服务注册:

某个服务在注册中心注册自己的位置。通常注册自己的主机和端口,有时还有身份验证信息,协议,版本号,以及运行环境的详细资料。服务注册简单的方式就是通过http请求添加一个服务,携带json数据请求即可。

http://192.168.168.169:8500/v1/agent/service/register put
{
  "ID": "testID", //指定服务的名称,此名称必须是唯一的名称。
  "Name": "testIDService", //指定服务的逻辑名称,允许名称重复。
  "Tags": [ "primary" ], //指定要分配给服务的标签列表,这些标签可用于以后的过滤,并通过API公开。
  "Address": "127.0.0.1", //指定服务地址。
  "Port": 80, //指定服务的端口号。
  "Check": { //指定健康检查服务状态相关参数
    "HTTP": "http://127.0.0.1/health", //http形式的请求
    "Interval": "5s" //检查时间
  }
}

通过API选择一个健康服务来调用

http://192.168.168.169:8500/v1/health/service/testIDService get

取消注册的服务

http://192.168.168.169:8500/v1/agent/service/deregister/testIDService

查看所有不健康的服务

http://192.168.168.169:8500/v1/health/state/critical

5. 开发单机模式

consul agent -dev -advertise 192.168.168.102 -client 0.0.0.0 -ui
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值