Consul介绍

Consul:服务管理软件。支持多数据中心下,分布式高可用,服务发现和配置共享,成员管理和消息广播,支持ACL访问控制。(相关的其他类似软件Zookeeper、Etcd、spring里的eureka)

官网:
https://www.consul.io/intro/index.html

安装:

1、下载解压之后就是一个可执行文件
2、拷贝到你的/usr/local/bin目录中(或者其他你喜欢的环境变量目录)
#查看版本(显示版本号表示安装成功)
consul -v

这里写图片描述

接下来我们要学习:

1、服务端模式
负责保存信息、集群控制、与客户端通信、与其他数据中心通信
2、客户端模式
无状态,将请求转发服务端(集群)
3、基于Agent守护进程

Consul Agent

https://www.consul.io/docs/agent/basics.html
Agent是Consul的核心业务。Agent维护成员信息、注册服务、运行检查、响应查询等等。Agent必须在Consul 集群的每个节点上运行。

Agent Configuration

https://www.consul.io/docs/agent/options.html
Agent具有可以通过命令行或配置文件指定的各种配置选项。所有配置选项都是完全可选的。

比如:

consul agent -data-dir=/root/consul-data -bind=10.211.55.17 -server -bootstrap -client -ui -client=0.0.0.0 

-data-dir consul数据目录
-bind 绑定ip地址
-server 代表以服务的方式启动
-bootstrap 指定自己为leader而不需要选举
-ui 启动一个内置管理的web界面
-client 指定客户端可以访问的IP。设置为0.0.0.0则任意访问,否则默认本机才可以访问。

这里写图片描述

这样就启动了一个Consul agent。

新打开一个终端,执行:

consul members
#可以看到当前节点情况

这里写图片描述

当然我们还可以通过Agent提供的HTTP API方式来查看
https://www.consul.io/api/agent.html

curl http://10.211.55.17:8500/v1/agent/members

这里写图片描述

注册service

https://www.consul.io/api/agent/service.html

curl  --request PUT --data @payload.json http://10.211.55.17:8500/v1/agent/service/register

注册服务参数较多,官网提示我们可以把参数写到json文件中。
比如上面的payload.json内容如下:

{
  "ID": "sw_service1",
  "Name": "sw_service1",
  "Tags": [
    "primary"
  ],
  "Address": "10.211.55.17",
  "Port": 9501,
  "Check": {
    "HTTP": "http://10.211.55.17:9501",
    "Interval": "5s"
  }
}

ID 服务id
Name 服务名词
Address 主机IP
Port 端口
Check 是用来检查服务健康状态。我们这里使用http的方式,只要请求这个路径返回状态为200就表示正常

上面注册service之后,我们可以开查看一下:

curl  http://10.211.55.17:8500/v1/agent/services

这里写图片描述

检查服务Api

http://10.211.55.17:8500/v1/agent/checks

这里写图片描述
Status为passing表示检查通过。

反注册(就是把已经注册的service删除)

API如下:

curl --request PUT  http://10.211.55.17:8500/v1/agent/service/deregister/sw_service1

sw_service1是我们前面注册服务的id。
这里写图片描述
deregister之后再查看服务列表,{}空了。

如果服务异常(不是deregister掉的)

为了测试,我们保证已经注册好

#注册service
curl  --request PUT --data @payload.json http://10.211.55.17:8500/v1/agent/service/register
#查看service列表
curl  http://10.211.55.17:8500/v1/agent/services

这里写图片描述

curl  http://10.211.55.17:8500/v1/agent/checks
#检查服务的状态

这里写图片描述
如果我们的服务有异常了,我们看看会是什么一个表现。

还记得注册的是 payload.json文件么?
配置的Check,是访问http://10.211.55.17:9501
我们知道http://10.211.55.17:9501就是我们swoole的一个HttpServer。
我们去强制停掉这个HttpServer.

http://10.211.55.17:9501停掉之后,再检查
这里写图片描述
Status变为critical了。

从 Consul Agent启动窗口 也可以看出:
这里写图片描述

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值