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

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

微信图片_20220421230252.jpg


  • 图中有两个数据中心,分别为Datacenter1和Datacenter2 Consul非常好的支持多个数据中心,每个数据中心内,有客户端和服务器端,服务器一般为3~5个,这样可以在稳定和性能上达到平衡,因为更多的机器会使数据同步很慢。不过客户端是没有限制的,可以有成千上万个。
  • 数据中心内的所有节点都会加入到Gossip协议。这就意味着有一个Gossip池,其中包含这个数据中心所有的节点。
  • 客户端不需要去配置服务器地址信息,发现工作会自动完成。
  • 检测故障节点的工作不是放在服务器端,而是分布式的;这使得失败检测相对于本地化的心跳机制而言,更具可拓展性。
  • 在选择leader这种重要的事情发生的时候,数据中心被用作消息层来做消息广播。
  • 每个数据中心内的服务器都是单个Raft中节点集的一部分。这意味着他们一起工作,选择一个单一的领导者——一个具有额外职责的选定的服务器。leader负责处理所有查询和事务。事务也必须作为同步协议的一部分复制到节点集中的所有节点。由于这个要求,当非leader服务器接收到RPC请求时,就会将请求其转发给集群leader。
  • 服务器端节点同时也作为WAN Gossip池的一部分,WAN池和LAN池不同的是,它针对网络高延迟做了优化,而且只包含其他Consul服务器的节点。这个池的目的是允许数据中心以最少的消耗方式发现对方。启动新的数据中心与加入现有的WAN Gossip一样简单。因为这些服务器都在这个池中运行,它还支持跨数据中心请求。当服务器收到对不同数据中心的请求时,它会将其转发到正确数据中心中的随机服务器。那个服务器可能会转发给本地的leader。
  • 这样会使数据中心的耦合非常低。但是由于故障检测,连接缓存和复用,跨数据中心请求相对快速可靠。
  • 总的来说,数据不会在不同的数据中心之间做复制备份。当收到一个请求处于别的数据中心的资源时,本地的Consul服务器会发一个RPC请求到远端的Consul服务器,然后返回结果。如果远端数据中心处于不可用状态,那么这么资源也会不可用,但这不影响本地的数据中心。在一些特殊的情况下,有限的数据集会被跨数据中心复制备份,比如说Consul内置的ACL复制能力,或者像consul-replicate这样的外部工具。

consul环境搭建

consul 安装

下载页面

https://www.consul.io/downloads.html

微信图片_20220421230258.png

mac 下载版本

https://releases.hashicorp.com/consul/1.7.3/consul_1.7.3_darwin_amd64.zip

创建文件夹存放consul可执行文件

/Users/mengfanxiao/Documents/third_software/spring-cloud/consul/bin

微信图片_20220421230303.png

配置环境变量

sudo vim /etc/paths.d/user_mengfanxiao

微信图片_20220421230307.png

source /etc/profile

启动参数说明

  • -dev 开发者模式 该节点的启动不能用于生产环境,因为该模式下不会持久化任何状态 该启动模式仅仅是为了快速便捷的启动单节点consul
  • -ui 启动自有主机的界面
  • -bootstrap-expect 1 集群节点,表示等待多少个节点再启动,这里是1个,一个就启动
  • -bind=127.0.0.1 绑定IP ,本机IP地址,内网IP
  • -advertise-wan=10.23.123.12 绑定外网ip
  • -node=node1 节点名称,如果没有,默认是主机名
  • -server 设置为服务端
  • -data-dir /tmp/consul 数据存储目录为 /tmp/consul
  • -datacenter=dc1 数据中心


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