consul 教程

article/2025/9/20 13:09:55

目录

1.consul安装

     1.1 先安装go环境

     2.2  安装consul

2.开始使用

2.1运行consul agent

2.2 查看集群成员

2.3 注册服务

2.4 发现服务

3.Consul 集群

3.1 部署集群

3.2 启动代理

3.3 加入集群

3.4 离开集群

4 健康检查

4.1 设置健康检查文件

4.2 查询健康状况

5 KV Data

5.1 设置值

5.2 查询

5.3 删除

6 常用请求url

6.1 agent

6.2 status

6.3 catalog

7 进阶

7.1 配置gossip加密

7.2 autopilot

8 cli

8.1 catalog


1.consul安装

     1.1 先安装go环境

     2.2  安装consul

            wget https://releases.hashicorp.com/consul/1.4.0/consul_1.4.0_linux_amd64.zip

            unzip consul_1.4.0_linux_amd64.zip

            mv consul /usr/local/go/bin/

            consul -v //成功

2.开始使用

2.1运行consul agent

consul agent -dev

2.2 查看集群成员

consul members          -- -detailed 可查看详细信息

curl  http://localhost:8500/v1/catalog/nodes

2.3 注册服务

 mkdir /etc/consul.d              -- ".d"结尾指目录包含一组配置文件

 vi /etc/consul.d /web.json

{"service": {"name": "web","tags": ["rails"],"address": "114.55.40.20","port": 80}
}
consul agent -dev -config-dir=/etc/consul.d             --设置配置目录,启动代理curl -X PUT -d '{"Datacenter":"dc1","Node":"agent-two","Address":"ebg.conzhu.net","Service":{"Service":"verify","port":80}}' http://localhost:8500/v1/catalog/register               -- 请求注册服务
curl -X PUT -d '{"Datacenter":"dc1","Node":"agent-two"}' http://localhost:8500/v1/catalog/deregister                                  -- 注销服务

结果

2.4 发现服务

 dig @127.0.0.1 -p 8600 web.service.consul              --使用DNS查询服务dig @127.0.0.1 -p 8600 web.service.consul SRV          --使用DNS查询服务,显示服务详情

结果

curl http://localhost:8500/v1/catalog/service/web        --api查询

  结果

curl http://localhost:8500/v1/health/service/web           --查询健康实例

结果

 

3.Consul 集群

3.1 部署集群

         必须:

         (1)集群节点设置名称 如: -node=agent-one

         (2)数据存储目录 如:data-dir=/tmp/consul

          指令详解:

          (1) -bind =<address>                                                     #绑定监听的地址:默认0.0.0.0

          (2)-data-dir=</path/to/data-dir>                                     #存储数据的目录

          (3)-config-dir =</path/to/config-dir>                               #注册服务配置目录

          (4)-bootstrap-expect=<num>                                         #延迟复制日志,直至预期数量的服务器陈宫加入

          (5)-enable-script-checks=<boolean>                             #是否允许外部脚本运行健康检查

          (6)-server

            --- join

          (7)-join=<address>                                                         #启动时自动加入集群

          (8)-retry-join=<adress>                                                   #类似 “-join” ,失败时尝试重新连接

          (10)-retry-interval=30                                                      #尝试连接等待的时间。默认:30s

          (11)-retry-max=3                                                             #尝试连接的最大次数。默认:不限制

       

3.2 启动代理

#启动服务代理
consul agent -server -data-dir=/tmp/consul -node=agent-one -bootstrap-expect=1 -config-dir=/etc/consul.d 
#启动客户端代理
consul agent -node=agent-two -data-dir=/tmp/consul -config-dir=/etc/consul.d -enable-script-checks=true#启动客户端代理并加入集群
consul agent -node=agent-two -data-dir=/tmp/consul -config-dir=/etc/consul.d -enable-script-checks=true -join=172.17.0.4
#或
consul agent -node=agent-two -data-dir=/tmp/consul -config-dir=/etc/consul.d -enable-script-checks=true -retry-join=172.17.0.4

3.3 加入集群

consul join 172.17.0.4

 结果

查看集群节点

dns查询某个节点信息

dig @127.0.0.1 -p 8600 agent-one.node.consul

结果

3.4 离开集群

consul leave

执行结果

客户端代理结果

4 健康检查

4.1 设置健康检查文件

vi /etc/consul/web2-check.json
{"check": {"id": "web2","name": "http web2 check","http": "http://www.aa.com","tls_skip_verify": false,"method": "GET","interval": "5s","timeout": "2s"}
}

结果:下面是出错的情况

4.2 查询健康状况

curl http://localhost:8500/v1/health/state/critical --api进行健康检查(可以在任一节点上运行)

结果

5 KV Data

5.1 设置值

consul kv put  mysql/config/max_binlog_size 100m                            --设置kv值(修改值会修改ModifyIndex)
consul kv put -cas -modify-index=19998 mysql/config/max_binlog_size 400m    --check-and-set的原子操作 

结果

5.2 查询

consul kv get mysql/config/max_binlog_size                --获取值
consul kv get -detailed  mysql/config/max_binlog_size     --获取详细值
consul kv get -recurse [prefix]                           --迭代查询匹配的结果,支持前缀匹配
consul kv get -detailed -recurse [prefix]                 --迭代查询匹配的详细结果

结果

5.3 删除

consul kv delete mysql/config/sync_binlog        --删除单个
consul kv delete  -recurse [prefix]              --批量删除匹配前缀的key

结果

6 常用请求url

6.1 agent

请求例子:curl http://localhost:8500/v1/agnect/services | python -m json.tool 
/v1/agent/checks                                --获取本地agent注册的所有检查(包括配置文件和http注册)
/v1/agent/services                              --获取本地agent注册的所有服务
/v1/agent/members                               --获取集群中的成员
/v1/agent/self                                  --获取本地agent的配置和成员信息
/v1/agent/join/<address>                        --触发本地agent加入node
/vq/agent/force-leave/<node>                    --强制删除node
/v1/agent/check/register                        --在本地agent增加一个检查项,使用PUT方法传输一个json格式的数据
/v1/agent/check/deregister/<checkID>            --注销一个本地agent的检查项
/v1/agent/check/pass/<checkID>                  --设置一个本地检查项的状态为passing
/v1/agent/check/warn/<checkID>                  --设置一个本地检查项的状态为warning
/v1/agent/check/fail<checkID>                   --设置一个本地检查项的状态为critical
/v1/agent/service/register                      --在本地agent增加一个新的服务项,使用PUT方法传输一个json格式的数据
/v1/agent/service/deregister/<serviceID>        --注销一个本地agent的服务项

6.2 status

/v1/status/leader                --获取当前集群的leader(如:"172.17.0.4:8300")
/v1/status/peers                 --获取当前集群中的同事(如:["172.17.0.4:8300"])

6.3 catalog

/v1/catalog/register                          --注册一个新的service、node、check
/v1/catalog/deregister                        --注销一个service、node、check
/v1/catalog/datacenters                       --列出知道的数据中心
/v1/catalog/nodes                             --在给定的数据中心列出node
/v1/catalog/services                          --在给定的数据中心列出service
/v1/catalog/service/<service>                 --查看某个服务的信息
/v1/catalog/node/<node>                       --查看某个节点的信息

7 进阶

7.1 配置gossip加密

consul keygen                            -- 随机生成16bytes的字符并已转为base64
# 编写服务配置文件,保存在"/etc/consul.d"目录中
{"datacenter": "dc1","node_name": "agent_one","data_dir": "/opt/consul","log_level": "INFO","server": true,"encrypt": "83XxiHG3OmMng7qV8Gtaww==","encrypt_verify_incoming": false,"encrypt_verify_outgoing": false
}
#启动服务
consul agent -config-dir=/etc/consul.d                

   结果

# 编写客户端配置文件,保存在"/etc/consul.d"目录,注意"disable_keyring_file"
{"datacenter": "dc1","data_dir": "/tmp/consul","log_level": "INFO","node_name": "agent-two","encrypt": "83XxiHG3OmMng7qV8Gtaww==","disable_keyring_file": true,"encrypt_verify_incoming": true,"encrypt_verify_outgoing": true,"retry_join": ["172.17.0.4"]
}
#启动客户端
consul agent -config-dir=/etc/consul.d

7.2 autopilot

#默认配置
{"cleanup_dead_servers": true,"last_contact_threshold": "200ms","max_trailing_logs": 250,"server_stabilization_time": "10s","redundancy_zone_tag": "","disable_upgrade_migration": false,"upgrade_version_tag": ""
}
#获取autopilot配置信息
consul operator autopilot get-config

#设置autopilot
conusl operator autopilot set-config —cleanup-dead-servers=false [...]
#查看健康状态(测试只返回已服务方式启动的节点)curl http://localhost:8500/v1/operator/autopilot/health   

    一个server服务认定为健康,满足以下要求:

8 cli

8.1 catalog

consul catalog nodes                        -- 获取所有节点信息
consul catalog services                     -- 获取所有服务
consul catalog datacenters                  -- 获取所有数据中心

### 配置文件例子

{"datacenter": "dc1","data_dir": "/tmp/consul","log_level": "INFO","log_file": "/var/lib/consul/log/consul","node_name": "agent-two","pid_file": "/var/lib/consul/consul.pid","encrypt": "83XxiHG3OmMng7qV8Gtaww==","disable_keyring_file": true,"encrypt_verify_incoming": true,"encrypt_verify_outgoing": true,"retry_join": ["172.17.0.4"],"retry_interval": "30s","retry_max": 0
}

 


http://chatgpt.dhexx.cn/article/BqQ7Oad9.shtml

相关文章

consul部署

docker consul的容器服务更新与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的&#xff0c;不保证高可用性&#xff0c;也不考虑服务的压力承载&#xff0c;服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构&#xff0c;起初…

【Consul教程】1.Consul简介和安装

简介 consul是HashiCorp 公司基于Go语音开发的微服务工具。基于它Http API方式可以十分方便在系统中实现服务注册于发现&#xff0c;分布式配置中心。支持集群CP模式&#xff0c;一致性算法是Raft。 常见解决方案&#xff1a; SpringBoot Consul 实现注册中心、配置中心。 …

Consul安装使用

最近在写springcloud系列文章&#xff0c;其中注册中心中使用的consul也是文章篇幅之一&#xff0c;这篇文章介绍了我对于consul的安装的一个步骤&#xff0c;可以作为大家在安装使用consul的过程中的一个参考。 1、windows安装 访问官网下载地址&#xff0c;下载windows对应版…

Consul介绍

consul服务注册与发现 了解consul consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案&#xff0c;不再需要依赖其他工具&#xff08;比如ZooKeeper等&#xff0…

Consul 注册中心介绍

在 Spring Cloud 体系中&#xff0c;几乎每个角色都会有两个以上的产品提供选择&#xff0c;比如在注册中心有&#xff1a;Eureka、Consul、zookeeper、etcd 等&#xff1b;网关的产品有 Zuul、Spring Cloud Gateway 等。在注册中心产品中&#xff0c;最常使用的是 Eureka 和 C…

Consul服务注册与发现

目录 一、Consul简介 &#xff08;一&#xff09;官网 &#xff08;二&#xff09;特点 二、安装并运行Consul &#xff08;一&#xff09;官网安装说明 &#xff08;二&#xff09;下载 &#xff08;三&#xff09;使用开发模式启动 三、服务提供者 四、服务消费者 …

Consul是什么

前言 Consul是一个基于CP的轻量级分布式高可用的系统&#xff0c;提供服务发现、健康检查、K-V存储、多数据中心等功能&#xff0c;不需要再依赖其他组件(Zk、Eureka、Etcd等)。 服务发现&#xff1a;Consul可以提供一个服务&#xff0c;比如api或者MySQL之类的&#xff0c;其他…

Consul的使用

Consul可以用来进行服务发现&#xff0c;我们来测试下Consul的使用 一.Consul基本使用 先需要下载Consul的程序https://www.consul.io/downloads.html 我们这里下载Windows 64版本。 下载后直接解压就行了&#xff0c;里面会有一个consul.exe文件。通过命令可以启动consul.…

Consul 使用手册(感觉比较全了)

使用consul 介绍 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 服务发现 Consul的客户端可用提供一个服务,比如 api 或者mysql ,另外一些客户端可用使用Consul去发现一个指定服务的提供者.通过DNS或者HTTP应用程序…

【Consul】Consul架构-简介

Consul是一个复杂的系统&#xff0c;有许多不同的移动部件。为了帮助用户和Consul的开发人员更深入的了解consul是如何工作的&#xff0c;本文介绍consul的系统架构。 高级话题&#xff1a;本节主要讲解consul内部技术细节&#xff0c;使用consul不需要必须了解这些细节的。这…

Consul的介绍、安装与使用

1.常用服务注册与发现框架 常见服务发现框架 Consul、Eureka、 ZooKeeper以及Etcd ZooKeeper是这种类型的项目中历史最悠久的之一&#xff0c;它起源于Hadoop。它非常成熟、可靠&#xff0c;被许多大公司&#xff08;YouTube、eBay、雅虎等&#xff09;使用。其中consul并不需…

【超详细】Consul的安装的使用附多环境配置(傻瓜式教程)

一、Consul概述 Consul 是 HashiCorp 公司推出的开源工具&#xff0c;用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案&#xff0c;Consul 的方案更“一站式”&#xff0c;内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多…

Consul系列:什么是Consul?

引言 Consul 是 HashiCorp 公司推出的开源工具&#xff0c;用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案&#xff0c; consu1 的方案更“一站式”&#xff0c;内置了服务注册 与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心…

Consul安装并运行

Consul安装并运行 一、安装 官网&#xff1a;https://www.consul.io/downloads.html 下载完成后只有一个consul.exe文件&#xff0c;硬盘路径下双击运行 查看 consul 版本信息&#xff1a; consul --version 使用开发模式启动&#xff1a; consul agent -dev 二、运行 通…

Consul

Consul 是 HashiCorp 公司推出的开源工具&#xff0c;用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案&#xff0c;Consul 的方案更“一站式”&#xff0c;内置了服务注册与发现框架、分布式一致性协议实现、健康检查、Key/Value 存储&#xff08;配置中…

Consul详解

Spring Cloud 支持很多服务发现的软件&#xff0c;Eureka 只是其中之一&#xff0c;下面是 Spring Cloud 支持的服务发现软件以及特性对比&#xff1a; FeatureeuerkaConsulzookeeperetcd服务健康检查可配支持服务状态&#xff0c;内存&#xff0c;硬盘等(弱)长连接&#xff0c…

5分钟让你看懂Consul特性及搭建

一、前言 虽然说牛逼的公司都有那么几个牛逼的运维团队&#xff0c;牛逼的运维团队都有着神秘黑科技般敲代码的姿势&#xff1b;本人虽然不是一个运维工程师&#xff0c;但是有幸自己比较爱倒腾这些东西&#xff0c;也会那么一点点运维知识&#xff0c;虽然不算专业&#xff0…

consul简介

目录 Consul 简介 Consul 的使用场景 Consul 的优势 Consul 的角色 consul cluster集群架构图 Consul常用命令 consul agent 命令的常用选项 Spring Cloud Consul 项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统&#xff0c;具有分布式、高可用、高扩…

Consul 基本概念、内部原理

1.什么是Consul&#xff1f; Consul是一种服务网格解决方案&#xff0c;提供具有服务发现&#xff0c;配置和分段功能的全功能控制平面。 这些功能中的每一个都可以根据需要单独使用&#xff0c;也可以一起使用以构建全服务网格。 Consul需要数据平面并支持代理和本机集成模型…

Consul的介绍和基本使用

一、Consul的简单介绍 Consul是一套开源的分布式服务发现和配置管理系统&#xff0c;由HasiCorp公司用go语言开发的。提供了微服务系统中服务助理、配置中心、控制总线等功能&#xff0c;这些功能中的每一个都可以根据需要单独使用&#xff0c;也可以一起使用以构造全方位的服…