]# [root@h104 consul]# [root@h104 consul]# 查询值 查询用 GET 方法 ?...]# [root@h104 consul]# ---- 删除值 删除用 DELETE 方法 [root@h104 consul]# curl -X DELETE http://localhost...]# [root@h104 consul]# ---- 更新值 更新和存值一样使用 PUT 方法,只是提供一个与原值不同的内容就可以了 [root@h104 consul]# curl http:/...consul]# [root@h104 consul]# curl -X PUT -d 'great' http://localhost:8500/v1/kv/web/key1?...]# [root@h104 consul]#
查看状态 可以使用HTTP API来检查配置 [root@h104 consul]# curl http://localhost:8500/v1/health/state/critical [{"Node...","Output":"","ServiceID":"web","ServiceName":"web","CreateIndex":593,"ModifyIndex":593}][root@h104 consul...]# [root@h104 consul]# ---------- [root@docker ~]# curl http://localhost:8500/v1/health/state/critical...提供了一个简单的键值存储机制,可以使用这个特性来存储动态配置,服务协调,主节点选举和其它一些功能 [root@h104 consul]# curl -v http://localhost:8500/v1...: 1 < X-Consul-Knownleader: true < X-Consul-Lastcontact: 0 < Date: Fri, 18 Mar 2016 16:14:49 GMT < Content-Length
agent加入到consul集群 consul join IP members 列出consul cluster集群中的members consul members leave 将节点移除所在集群 consul...尤其重要,因为他们必须持久化集群的状态 •-config-dir •作用:指定service的配置文件和检查定义所在的位置•通常会指定为"某一个路径/consul.d"(通常情况下,.d表示一系列配置文件存放的目录...,其他选项未作展开,详见: https://www.consul.io/docs/agent/options.html[2] Consul集群搭建 ?...node0上(node2机器上执行): consul join -rpc-addr=192.168.11.145:8400 192.168.11.143 •这样一个简单的Consul集群就搭建完成了,...在node1上查看当前集群节点: consul members -rpc-addr=192.168.11.143:8400 结果如下: Node Address Status
启动第二个节点 [root@docker consul]# consul agent -data-dir /tmp/consul -node=a2 -bind=192.168.100.103 -config-dir.../etc/consul.d ==> Starting Consul agent... ==> Starting Consul agent RPC... ==> Consul agent running...此时已经分别在104和103上启动了两个代理a1和a2,a1准备用来作server ,a2用来作client,但它们彼此还互不认识,都是自己的单节点集群中的唯一节点,可以通过 consul members...192.168.100.103:8301 alive client 0.6.4 2 dc1 [root@docker ~]# ---- 加入集群 使用a1来加入a2 [root...[root@h104 consul]#
查询节点 可以通过 DNS API 或 HTTP API 来查询节点 如果使用DNS API,查询结构为 NAME.node.consul 和 NAME.node.DATACENTER.consul [...root@h104 consul]# dig @127.0.0.1 -p 8600 a2.node.consul ; > DiG 9.9.4-RedHat-9.9.4-29.el7_2.1 > @127.0.0.1 -p 8600 a2.node.consul ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>...#8600(127.0.0.1) ;; WHEN: Fri Mar 18 23:03:36 CST 2016 ;; MSG SIZE rcvd: 62 [root@h104 consul]# dig...a2.node.dc1.consul ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode:
2016/03/18 22:04:06 [INFO] serf: EventMemberJoin: a1 192.168.100.104 2016/03/18 22:04:06 [INFO] consul...: adding server a1 (Addr: 192.168.100.104:8300) (DC: dc1) 2016/03/18 22:04:06 [INFO] consul: New...打开方式一样 [root@h104 consul]# firewall-cmd --add-port=8300/tcp success [root@h104 consul]# firewall-cmd...此时再在两个节点上查看成员状态,彼此都能互识了 [root@h104 consul]# consul members Node Address Status Type...192.168.100.103:8301 alive client 0.6.4 2 dc1 [root@docker ~]# Tip: 如果有多个成员,也只用加入一个节点,其它节点会在这个节点加入集群后通过成员间的通讯相互发现
脱离集群 可以使用 Ctrl-C 来平滑地退出,也可以强行Kill退出,区别是主动告知其它节点自己的离开,和被其它节点标记为失效,被发现离开 ---- 健康检查 健康检查对于避免将请求发送给运行不正常的服务是一个相当关键的机制.../web.json [root@docker ~]# cat /etc/consul.d/ping.json {"check": {"name": "ping","script": "ping -c1...soft.dog >/dev/null", "interval": "30s"}} [root@docker ~]# cat /etc/consul.d/web.json {"service": {...root 22094 1.2 0.3 25084 13756 pts/0 Sl+ 21:51 1:07 | \_ consul agent -data-dir.../tmp/consul -node=a2 -bind=192.168.100.103 -config-dir /etc/consul.d root 25063 0.0 0.0 112644
上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。consul客户端不保存数据,客户端将接收到的请求转发给响应的Server端。...每个Server或Client都是一个consul agent。Consul集群间使用了GOSSIP协议通信和raft一致性算法。...上面这张图涉及到了很多术语: Agent——agent是一直运行在Consul集群中每个成员上的守护进程。通过运行 consul agent 来启动。...bootstrap-expect:集群要求的最少server数量,当低于这个数量,集群即失效。 iii. data-dir:data存放的目录,更多信息请参阅consul数据同步机制 iv. .../consul join 10.0.0.7 到这里整个consul server 集群就算完成了,可以利用consul members查看集群中包含的node信息。
集群部署 节点IP 节点名称 192.168.1.181 consul-01 192.168.1.182 consul-02 192.168.1.183 consul-03 节点一配置 # 创建目录...mkdir -p /data/consul/{data,conf,bin,logs} # 下载consul压缩包,解压到/data/consul/bin/目录下 # 创建配置文件 vim /data...systemctl start consul 节点二配置 # 创建目录 mkdir -p /data/consul/{data,conf,bin,logs} # 下载consul压缩包,解压到/data...systemctl start consul 节点三配置 # 创建目录 mkdir -p /data/consul/{data,conf,bin,logs} # 下载consul压缩包,解压到/data...systemctl start consul 启用 ACL 访问控制 # 重新启动consul,在任意一节点上初始化consul acl [root@i-lra7lmuy ~]# consul acl
Go 实现的,也是使用的 Raft 算法 Consul 的架构 Docker Swarm 中使用 Consul 来进行服务发现,这里简单分享一下 Consul 集群相关的基础操作,详细内容可以参考...官方文档 Tip: 当前的最新版本为 Consul 0.6.4 ---- 概要 ---- 发现机制 当一个Consul代理启动后,它并不知道其它节点的存在,它是一个孤立的 单节点集群,如果想感知到其它节点的存在...,它必须加入到一个现存的集群,要加入到一个现存的集群,它只用加入集群中任意一个现存的成员,当加入一个现存的成员后,会通过成员间的通讯很快发现集群中的其它成员,一个Consul代理可以加入任意一个代理,而不仅仅是服务节点...---- 构建集群 启动首个节点 [root@h104 ~]# consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node...Do not enable unless necessary ==> Starting Consul agent... ==> Starting Consul agent RPC... ==> Consul
第一次更新成功是因为 cas 指定的值 1061 与 ModifyIndex 相等,第二次失败是因为,cas 指定的值 1061与ModifyIndex 的 1076 不相等 ---- 监听 [root@h104 consul...agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=a1 -bind=192.168.100.104 -config-dir /...etc/consul.d consul agent -data-dir /tmp/consul -node=a2 -bind=192.168.100.103 -config-dir /etc/consul.d...consul members firewall-cmd --add-port=8301/tcp consul join 192.168.100.103 firewall-cmd --add-port=...consul.d/ping.json cat /etc/consul.d/web.json kill -s SIGHUP 22094 curl http://localhost:8500/v1/health
Consul集群搭建 Consul的简介和安装过程之前的文章中已经提及了,这次主要了解下consul的集群搭建过程,在搭建Consul集群之前,有必要先了解一下单个节点的consul环境部署。...3.集群成员查询 重新启动一个终端,输如consul members,就可以看到这个Consul集群的成员。 ? 还可以通过consul members -detailed查看额外的信息。 ?...二、consul集群的部署方法 搞明白了单个节点部署consul服务的过程,就可以来摸索多个节点的consul集群搭建了。...当一个consul agent启动时,它是孤立的,不知道其它集群成员,此时它必须通过某种方法加入到集群中来。...此时查看consul集群中的成员,命令:consul members ? 可以看到,集群中已经有两个成员了。
这篇文章概述了由于集群中的大多数服务器节点丢失而从Consul中断中恢复的过程。中断类型有几种,具体取决于服务器节点的数量和发生故障的服务器节点的数量。...我们将概述如何从以下方法恢复: 单个服务器集群发生故障。这是当您只有一台Consul服务器并且失败时。 多服务器集群中少数服务器发生故障。 多服务器群集中的多台服务器出现故障。...通常,如果故障服务器仍然是集群的成员,则可以发出consul force-leave命令来删除发生故障的服务器。...一旦所有其余服务器都使用相同的raft/peers.json配置重新启动,集群就应该能够选举领导者 如果需要引入新服务器,使用Consul的join命令将其加入。...应当注意,任何可用成员都可以用来重新加入集群,因为流言协议(gossip)将负责发现服务器节点。 此时,集群应再次处于可操作状态。
docker大件Consul集群 由于开发需要,需要在本地运行一个Consul环境,由于电脑上已经有Docker环境了,于是就直接在Docker里面搭一套Consul集群。...Docker搭建Consul集群 集群要求要有3个Server,将容器8500端口映射到主机8900端口,同时开启管理界面 搭建集群 1....启动第2个Server节点,并加入集群 docker run -d --name=consul2 -e CONSUL_BIND_INTERFACE=eth0 consul:1.6.2 agent --server...启动第3个Server节点,并加入集群 docker run -d --name=consul3 -e CONSUL_BIND_INTERFACE=eth0 consul:1.6.2 agent --server...导入kv.json docker exec consul1 consul kv import @/tmp/consul_kv.json IDEA跑服务注册到Consul 遇到的坑 consul集群跑起来之后
集群 补充一下单点服务器Consul集群的步骤,我的虚拟机ip 192.168.88.144,配置3个节点, Consul v1.12.1 server01@server01-virtual-machine...:~$ consul version Consul v1.12.1 wget https://releases.hashicorp.com/consul/1.12.1/consul_1.12.1_darwin_arm64....zip unzip consul_1.12.1_darwin_arm64.zip mv consul /usr/local/bin/consul 目录: ├── client1 ├── client2.../server1/data", "log_level":"INFO", "log_file":"/home/server01/soft/consul/server1/log/consul.log.../server2/data", "log_level":"INFO", "log_file":"/home/server01/soft/consul/server2/log/consul.log
目录 准备 Consul 镜像 安装单个 Consul 组装集群 Consul 启动 Consul 和 Web 管理器 Consul 命令简单介绍 Web 管理器 Server 加入集群 Client...Consul 集群,如果你对 Docker 不了解的同学,请先学习一下 Docker。...组装集群 Consul 上面完成了一个单机版的 Consul 部署,下面我们将实现图中的的集群架构 Consul 部署。 ?...下面我将加入二个 Server 模式的 Consul 到集群中,Server 模式在集群中建议是 三个以上,这样更好的避免因为 Server 的宕机导致整个集群挂掉的风险。...Client 加入集群 Client 在 Consul 集群中起到了代理 Server 的作用,Client 模式不持久化数据。
图片.png 上图是官网提供的一个事例系统图,图中的Server是consul服务端高可用集群,Client是consul客户端。...Consul集群间使用了GOSSIP协议通信和raft一致性算法。上面这张图涉及到了很多术语: Agent——agent是一直运行在Consul集群中每个成员上的守护进程。...bootstrap-expect:集群要求的最少server数量,当低于这个数量,集群即失效。 iii. data-dir:data存放的目录,更多信息请参阅consul数据同步机制 iv. .../consul join 10.0.0.7 到这里整个consul server 集群就算完成了,可以利用consul members查看集群中包含的node信息。...使用consul info命令可以查看当前节点状态,包括是否在集群中,是否为leader(主)。 3.
简介 在阅读本文前我想您应该对微服务架构有一个基本的或者模糊的了解 Consul是一个服务管理软件,它其实有很多组件,包括服务发现配置共享键值对存储等 本文主要讲解Consul的服务注册服务发现以及集群的配置...是长期运行在每个consul集群成员节点上守护进程。...=3 -data-dir=C:\consul -node=node3 -join=192.168.3.233 -bind=192.168.3.243 -client=0.0.0.0 -join:表示加入到哪个集群内...集群注册了一个服务,访问集群的任何一个ip都可取到该服务的ip。...集群就可以正常使用了 对于consul和服务发现目前还只是刚刚开始接触。
Server还处于活跃状态,consul就会重新选举新的Leader,保证集群可以正常工作。...agent -config-file=/usr/src/consul/consul_config.json 截止目前服务端已经全部启动,但是还没有加入集群,因此还只是单节点的集群,可以在某台机器上查看成员情况...server 1.4.0 2 consul_cluster Server端集群建立 每个Consul Agent之后,都是相对独立的并不知道其它节点的存在,现在我们要做的是加入集群...,将上面创建的consul_2、consul_3加入到同一个集群consul_1中。...192.168.6.130:8500 192.168.6.128 目前服务端的集群已经创建完毕,可以看下我们目前的集群成员情况: consul members --http-addr 192.168.6.128
二、Consul集群搭建 2.1 Consul镜像拉取 docker pull consul:1.4.4 验证:docker images ?...' -data-dir /consul/data -config-dir /consul/config -datacenter=xdp_dc; (2)Consul实例2 为了让Consul实例...2加入集群,首先获取一下Consul实例1的IP地址: JOIN_IP="$(docker inspect -f '{{.NetworkSettings.IPAddress}}' consul_server...--restart=always -v /XiLife/consul/data/server3:/consul/data -v /XiLife/consul/conf/server3:/consul/...:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --name=consul_client_1 consul:1.4.4 agent -node=consul_client
领取专属 10元无门槛券
手把手带您无忧上云