侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

consul介绍及部署

2023-11-02 星期四 / 0 评论 / 0 点赞 / 56 阅读 / 6820 字

1. 作用CA型的服务发现注册中间件,支持http及dns协议,通过raft(server间)及gossip(client间)协议保证一致性。支持kv存储,可以作为简易的配置中心。通过consul-t

1. 作用

  • CA型的服务发现注册中间件,支持http及dns协议,通过raft(server间)及gossip(client间)协议保证一致性。
  • 支持kv存储,可以作为简易的配置中心。
  • 通过consul-template,支持服务、kv变更触发通知。
  • 支持健康检查,支持将consul的运行监控(telemetry)发送到 statsd或statsite。

2. 基本概念

  • consul中agent有两种角色,server与client。
    • client负责到server的高效通信,相对为无状态的。 唯一在后台运行的时client端执行了LAN gossip pool,只消耗极少的资源和网络带宽。
    • server负责包括选举领导节点,维护cluster的状态,对所有的查询做出响应,跨数据中心的通信等等
  • 数据流一般为:app -> client -> server -> other-client ->app
  • server集群,建议3个及以上节点,建议每个用到client的服务器都部署一个consul-client

3-1. 部署前提

  • 基于consul的0.8.3版的配置
  • 假设有3台server,192.168.1.2/3/4
  • 将telemetry信息发送到statsd,statsd后面我们使用的是graphite。

3. Server端

3.1 目录规划

类型路径
consul安装目录/usr/local/consul/{version}/
server-data目录/data/consul/{version}/server/data
server-conf目录/data/consul/{version}/server/conf
server-sh目录/data/consul/{version}/server/sh
server-pid目录/data/consul/{version}/server/log
consul_version=0.8.3mkdir -p /usr/local/consul/${consul_version}/# server端mkdir -p /data/consul/${consul_version}/server/datamkdir -p /data/consul/${consul_version}/server/log# 其余目录后续会添加

3.2 安装脚本

cd /usr/local/consul/${consul_version}/wget https://releases.hashicorp.com/consul/0.8.3/consul_0.8.3_linux_amd64.zipunzip consul_0.8.3_linux_amd64.ziprm -rf consul_0.8.3_linux_amd64.zip

3.3 配置信息

配置信息放在:/data/consul/0.8.3/server/conf/bootstart_server.conf

{    "server": true,    "data_dir": "/data/consul/0.8.3/server/data",    "datacenter": "datacenter-name",    "node_name": "server-node-name",    "log_level": "warn",    "bootstrap_expect": 3,    "performance": {        "raft_multiplier": 4    },    "telemetry": {        "statsd_address": "192.168.1.2:8125"    },    "retry_join": ["192.168.1.3","192.168.1.4"]}

说明:1)每个节点需要修改node_name;2)需要根据环境配置raft_multiplier值,该值越大,实时性越高,对网络要求也越高;3)根据实际情况修改数据中心名称,建议不同环境,不同部门,使用不同的数据中心;4)修改statsd_address和retry_join地址

3.4 启动脚本

生成start-server.sh文件,放在【/data/consul/0.8.3/server/sh】,添加可执行文件

/usr/local/consul/0.8.3/consul agent -config-dir=/data/consul/0.8.3/server/conf -pid-file=/data/consul/0.8.3/server/pid >/data/consul/0.8.3/server/log/run_`date '+%Y-%m-%d_%H_%M_%S.log'` 2>&1 &

##3.5 常用脚本

# 前提服务器上只有一个consul实例# leave/usr/local/consul/0.8.3/consul leave# stopkill -2 `pgrep -f consul`# force-stopkill -9 `pgrep -f consul`# telemetrykill -USR1 `pgrep -f consul`# reloadkill -1 `pgrep -f consul`# info/usr/local/consul/0.8.3/consul info# members/usr/local/consul/0.8.3/consul members# tail-f-logtail -f /data/consul/0.8.3/*/log/`ls -t /data/consul/0.8.3/*/log/ | head -n 1`# join/usr/local/consul/0.8.3/consul join 加入的IP地址

4. Client端

4.1 目录规划

类型路径
client-data目录/data/consul/{version}/client/data
client-conf目录/data/consul/{version}/client/data
client-pid目录/data/consul/{version}/client
client-sh目录/data/consul/{version}/client/sh
client-log目录/data/consul/{version}/client/log
consul_version=0.8.3mkdir -p /usr/local/consul/${consul_version}/# client端mkdir -p /data/consul/${consul_version}/client/datamkdir -p /data/consul/${consul_version}/client/log# 其余目录后续会添加

4.2 安装脚本

cd /usr/local/consul/${consul_version}/wget https://releases.hashicorp.com/consul/0.8.3/consul_0.8.3_linux_amd64.zipunzip consul_0.8.3_linux_amd64.ziprm -rf consul_0.8.3_linux_amd64.zip

4.3 配置信息

配置信息放在:data/consul/{version}/client/conf/bootstrap_client.conf

{    "server": false,    "data_dir": "/data/consul/0.8.3/client/data",    "datacenter": "datacenter-name",    "node_name": "client-node-name",    "log_level": "warn",    "client_addr": "0.0.0.0",    "ui": true,    "telemetry": {        "statsd_address": "192.168.1.2:8125"    },    "retry_join": ["192.168.1.2","192.168.1.3","192.168.1.4"]}

说明:1)每个节点需要修改node_name;2)根据实际情况修改数据中心名称,建议不同环境,不同部门,使用不同的数据中心;3)修改statsd_address和retry_join地址

4.4 启动脚本

生成start-client.sh文件,放在【/data/consul/0.8.3/client/sh】,添加可执行文件

/usr/local/consul/0.8.3/consul agent -config-dir=/data/consul/0.8.3/client/conf -pid-file=/data/consul/0.8.3/client/pid >/data/consul/0.8.3/client/log/run_`date '+%Y-%m-%d_%H_%M_%S.log'` 2>&1 &

4.5 常用脚本

# 前提服务器上只有一个consul实例# leave/usr/local/consul/0.8.3/consul leave# stopkill -2 `pgrep -f consul`# force-stopkill -9 `pgrep -f consul`# telemetrykill -USR1 `pgrep -f consul`# reloadkill -1 `pgrep -f consul`# info/usr/local/consul/0.8.3/consul info# members/usr/local/consul/0.8.3/consul members# tail-f-logtail -f /data/consul/0.8.3/*/log/`ls -t /data/consul/0.8.3/*/log/ | head -n 1`# join/usr/local/consul/0.8.3/consul join 加入的IP地址

广告 广告

评论区