Consul服务治理原理简介及使用过程(二)

简介: Consul服务治理原理简介及使用过程

启动

  • agent可以运行在server或者client模式

consul agent -dev -server -bootstrap-expect 1 -data-dir /Users/mengfanxiao/Documents/third_software/spring-cloud/consul/data -node=node1

微信图片_20220421230437.png

  • 查看成员

consul members

微信图片_20220421230503.png

  • 创建服务

mkdir -p /Users/mengfanxiao/Documents/third_software/spring-cloud/consul/bin/consul.d

1⃣️ 创建一个web服务

echo '{"service": {"name": "web", "tags": ["rails"], "port": 801}}' >/Users/mengfanxiao/Documents/third_software/spring-cloud/consul/bin/consul.d/web.json

2⃣️ 创建一个service2服务

echo '{"service": {"name": "service2", "tags": ["rails"], "port": 802}}' >/Users/mengfanxiao/Documents/third_software/spring-cloud/consul/bin/consul.d/service2.json

  • 先关闭之前的代理

微信图片_20220421230507.png

  • 启动代理

consul agent -dev -config-dir /Users/mengfanxiao/Documents/third_software/spring-cloud/consul/bin/consul.d/

微信图片_20220421230512.png

  • 通过DNS查询服务

服务的DNS名称是 NAME.service.consul 服务名称为service2、web

1⃣️ Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具

微信图片_20220421230516.png

2⃣️

dig @127.0.0.1 -p 8600 service2.service.consul

微信图片_20220421230520.png

  • Http查询

curl http://localhost:8500/v1/catalog/service/service2

微信图片_20220421230525.png

  • 查询健康

curl 'http://localhost:8500/v1/health/service/service2?passing'

微信图片_20220421230536.png

Consul Web界面

  • 加入 -ui 参数, 启动自有主机的界面

consul agent -dev -ui -config-dir /Users/mengfanxiao/Documents/third_software/spring-cloud/consul/bin/consul.d/

微信图片_20220421230545.png

  • 在浏览器访问 http://localhost:8500/ui

微信图片_20220421230549.png

Docker consul安装

consul 服务发现 集群 docker 版

下载镜像

docker pull consul

微信图片_20220421230554.png

consul 服务端

  • 服务端node1

docker run -d --name node1 -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -server -node=node1 -bootstrap-expect=2

  • 查看node1的ip

JOIN_IP="$(docker inspect -f '{{.NetworkSettings.IPAddress}}' node1)"

  • 服务端node2

docker run -d --name node2 -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -server -node=node2 -join $JOIN_IP

  • 服务端node3

docker run -d --name node3 -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -server -node=node3 -join $JOIN_IP

consul客户端

  • 客户端node4

docker run -d --name node4 -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -node=node4 -join $JOIN_IP

  • 客户端node11 带ui

docker run -d --name node11 -p 8400:8400 -p 8500:8500 -p 8600:53/udp -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -ui -node=node11 -client=0.0.0.0 -join $JOIN_IP

微信图片_20220421230559.png

  • 上述操作的执行情况

微信图片_20220421230603.png

  • 把节点加入集群

在创建docker容器时忘记加入-join $JOIN_IP这个参数了,那么就可以用以下方法加入集群

1⃣️

docker exec node20 consul join $JOIN_IPnode20 要改为 你需要加的那个容器节点名字

2⃣️ 或者进入该容器内部执行

consul join $JOIN_IP

  • 查看节点

docker exec node1 consul members

微信图片_20220421230608.png

参考文献

https://blog.csdn.net/fenglailea/article/details/79093848

https://blog.csdn.net/fenglailea/article/details/79098246

https://www.consul.io/docs/internals/architecture.html


原理介绍的比较详细的一篇文章

https://blog.csdn.net/jiangqingyao/article/details/92856466

相关文章
|
网络协议 算法 Java
04SpringCloud 之 Consul 简介
04SpringCloud 之 Consul 简介
303 0
ASP.NET Core微服务之基于Consul实现服务治理(1)
本篇主要基于一个最小化的集群搭建了一个Consul服务治理组件,并将ASP.NET Core API程序注册到了Consul,并尝试通过Consul进行服务发现(虽然没有模拟具体的服务消费)。本篇没有仔细讲述Consul的介绍、优点、缺点,因为本人也没有啥实际的经验,因此只能是站在其他园友的肩膀上做个小实验。
17948 134
|
缓存 中间件 开发工具
go-micro使用Consul做服务发现的方法和原理
go-micro使用Consul做服务发现的方法和原理
369 0
|
存储 监控 网络协议
Consul简介和安装
Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。
Consul简介和安装
|
存储 负载均衡 微服务
Consul 架构简介
Consul 架构简介
625 0
Consul 架构简介
|
存储 缓存 运维
Consul服务治理原理简介及使用过程(一)
Consul服务治理原理简介及使用过程
470 0
Consul服务治理原理简介及使用过程(一)
|
存储 开发框架 数据可视化
|
开发框架 负载均衡 数据可视化
ASP.NET Core微服务之基于Consul实现服务治理(3)
在去年的.NET Core微服务系列文章中,初步学习了一下Consul服务发现,总结了两篇文章。本次基于Docker部署的方式,以一个Demo示例来搭建一个Consul的示例集群,最后给出一个HA的架构示范,也会更加贴近于实际应用环境。
22318 0
ASP.NET Core微服务之基于Consul实现服务治理(2)
上一篇发布之后,很多人点赞和评论,不胜惶恐,这一篇把上一篇没有弄到的东西补一下,也算是给各位前来询问的朋友的一些回复吧。
14261 0
|
存储 安全 Go
Golang 语言微服务的服务注册与发现组件 Consul
Golang 语言微服务的服务注册与发现组件 Consul
198 0