分享
  1. 首页
  2. 文章

Consul 入门笔记

xugang · · 2904 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Consul [ˈkɑ:nsl] 是一个分布式的服务发现和配置管理工具,本文是根据consul 入门指南 整理的笔记。

1. 安装

系统是三台虚拟机:

  • CentOS release 6.8
  • CentOS release 7
  • Ubuntu 16.04 LTS

前往 官网下载地址 下载相应系统最新的二进制包,复制consul_VERSION_linux_amd64.zip 到3个节点的 consul 目录下。

1
2
3
4
5
6
7
8
cd~/consul
unzip consul_VERSION_linux_amd64.zip
// 解压得到 consul 二进制文件
// 将consul 软链到环境变量目录
sudo ln-s~/consul/consul/bin/consul
// 验证是否安装成功
consul-h

在3台虚拟机中按相同步骤安装 consul

2. 开发模式

consul 开发者模式,可以快速开启单节点的 consul服务,具有完整功能,方便开发测试。

2.1 启动开发模式

开发模式命令:

1
2
consul agent-dev

consul members 命令查看当前集群的节点情况

1
2
3
4
dev@ubuntu~$consul members
Node Address Status Type Build Protocol DC
ubuntu127.0.0.1:8301alive server0.7.22dc1

通过HTTP API 查看节点信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
dev@ubuntu~$curl localhost:8500/v1/catalog/nodes
[
{
"Node":"ubuntu",
"Address":"127.0.0.1",
"TaggedAddresses":{
"lan":"127.0.0.1",
"wan":"127.0.0.1"
},
"CreateIndex":4,
"ModifyIndex":5
}
]

2.2 服务注册

服务可以通过配置文件注册,也可以通过HTTP API 添加。这里以配置文件定义服务:

1
2
3
4
5
6
7
8
cd~/consul
// 创建etc 目录用于存放配置文件
mkdir etc
// 创建web.json 配置文件
echo'{"service": {"name": "web", "tags": ["nginx"], "port": 80}}'|tee~/consul/etc/web.json
// 重启consul,并指定配置文件目录
consul agent-dev-config-dir=/home/dev/consul/etc

如果需要定义多个服务,添加多个服务配置文件即可

2.3 服务发现

当定义服务并且重启consul 代理后,就可以通过HTTP API 查询服务信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
dev@ubuntu~/consul$curl http://localhost:8500/v1/catalog/service/web
[
{
"Node":"ubuntu",
"Address":"127.0.0.1",
"TaggedAddresses":{
"lan":"127.0.0.1",
"wan":"127.0.0.1"
},
"ServiceID":"web",
"ServiceName":"web",
"ServiceTags":[
"nginx"
],
"ServiceAddress":"",
"ServicePort":80,
"ServiceEnableTagOverride":false,
"CreateIndex":6,
"ModifyIndex":6
}
]

3. Consul 集群

consul 是一个CS 模式的软件,生产环境下一个集群中建议准备3~5个节点运行服务模式的consul,其他节点运行客户端模式。

3.1 启动server 模式

1
2
3
#server 模式启动
consul agent-server-bootstrap-expect=1-data-dir=/tmp/consul-node=agent-one-bind=192.168.1.114-config-dir=/home/dev/consul/etc
  • -server 以服务模式运行
  • -node 节点名称
  • -bind 指定监听地址,用于多网卡服务器
  • -bootstrap-expect 额外的服务模式节点数量
  • config-dir 配置文件目录

3.2 启动client 模式启动

1
2
3
# client 模式启动
consul agent-data-dir=/tmp/consul-node=agent-two-bind=192.168.1.115-config-dir=/home/dev/consul/etc

在集群中其他节点上以客户端模式运行consul,注意更改绑定IP 和节点名。

3.3 加入集群

客户端模式的consul 需要加入一个服务端节点,才能同步服务信息。

加入集群:

1
2
consul join192.168.1.114

查看集群节点:

1
2
3
4
5
6
dev@ubuntu~$consul members
Node Address Status Type Build Protocol DC
agent_1192.168.1.114:8301alive server0.7.22dc1
agent_2192.168.1.115:8301alive client0.7.22dc1
agent_3192.168.1.116:8301alive client0.7.22dc1

客户端节点服务发现功能

1
2
curl http://localhost:8500/v1/catalog/service/web

参考


有疑问加站长微信联系(非本文作者)

本文来自:ironxu

感谢作者:xugang

查看原文:Consul 入门笔记

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2904 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏