consul

agent--- An agent is the long running daemon on every member of the Consul cluster。agent能以client和server模式运行,可以简称为客户端和服务器。

client---是一个将所有的RPC转发到服务器的代理。客户端唯一的交互就是参与LAN的八卦池 (LAN gossip pool)。

server---参与Raft仲裁,维护集群状态,响应RPC查询,与其他数据中心交换WAN信息,以及将查询转发给Leader或remote datacenters.

datacenter---数据中心定义为专用,低延迟和高带宽的网络环境。保存数据。

Consensus---Consul使用共识协议 来提供一致性(由CAP定义)。共识协议基于 “Raft:寻找可理解的共识算法”

LAN Gossip--- 指包含全部位于同一局域网或数据中心的节点的LAN gossip pool。

WAN Gossip---Refers to the WAN gossip pool which contains only servers. 这些服务器主要位于不同的数据中心,通常通过互联网或广域网进行通信。

RPC---远程过程调用。这是一个请求/响应机制,允许客户端发出服务器请求。


在每个数据中心内,我们都有客户端和服务器的混合体。预计有三到五台服务器。这在故障情况下的可用性和性能之间取得了平衡,因为随着更多机器的添加,共识逐渐变慢。但是,客户数量没有限制,而且可以轻松扩展到数千或数万个客户。

数据中心内的所有节点都参与到八卦协议中。这意味着有一个八卦池包含给定数据中心的所有节点。这有几个目的:首先,不需要为客户端配置服务器的地址; 发现是自动完成的。其次,检测节点故障的工作不是放在服务器上,而是分布式的。这使得故障检测比天真的心跳方案更具可扩展性。第三,它被用作消息层来通知重要事件,例如领导者选举发生。

每个数据中心中的服务器都是单个Raft对等设备的一部分。这意味着他们一起选择一个单独的领导者,一个具有额外职责的选定服务器(Leader)。当非Leader的服务器收到RPC请求时,它会将其转发给集群Leader,Leader处理后会将结果Replication到各个节点上。

服务器节点也作为WAN八卦池的一部分运行。此池与LAN池不同,因为它针对互联网的更高延迟进行了优化,并且预计仅包含其他Consul服务器节点。这个池的目的是让数据中心以低触摸的方式发现彼此。在线添加新数据中心就像加入现有的WAN八卦池一样简单。因为这些服务器都在这个池中运行,所以它也支持跨数据中心的请求。当服务器收到对不同数据中心的请求时,会将其转发到正确数据中心中的随机服务器。该服务器可能会转发给当地领导。

通常,数据不会在不同的Consul数据中心之间复制。当对另一个数据中心中的资源发出请求时,本地Consul服务器将RPC请求转发给该资源的远程Consul服务器并返回结果。如果远程数据中心不可用,那么这些资源也将不可用,但这不会影响本地数据中心。在某些特殊情况下,可以复制有限的数据子集,例如Consul的内置 ACL复制功能或外部工具(如consul-replicate)

共识协议:consul是通过raft来保持强一致性。通过raft选举出Leader,日志条目的复制来保证数据一致。

只有Consul服务器节点参与Raft并且是对等设置的一部分。所有client都将请求转发给server 这种设计的部分原因是,随着更多成员被添加到对等设置中,法定数量的大小也会增加。这会引起性能问题,因为您可能会等待数百台机器同意进入而不是少数几台机器。

不理解: LAN和WAN的八卦协议中的故障检测功能

Gossip协议:

领事使用两个不同的八卦池。我们将每个池分别称为LAN或WAN池。Consul运营的每个数据中心都有一个包含数据中心所有成员(包括客户端和服务器)的LAN八卦池。LAN池用于几个目的。成员资格信息允许客户自动发现服务器,从而减少所需的配置数量。分布式故障检测允许整个集群共享故障检测工作,而不是集中在几台服务器上。最后,八卦游戏池允许可靠和快速的事件广播,比如领袖选举。

WAN池是全球唯一的,因为无论数据中心如何,所有服务器都应该参与WAN池。WAN池提供的成员资格信息允许服务器执行跨数据中心请求。集成的故障检测功能使Consul能够正常处理丢失连接的整个数据中心,或仅处理远程数据中心内的单个服务器。

信号量(分布式锁)是基于session机制的。

       Consul提供的合约,发生如下任一情况,session都会被销毁:

       •节点销毁

       •任何的健康检查,注销

       •任何健康检查都要进入Critical状态

       •会话被显式销毁

       •TTL到期,如果适用

当session失效后,会被销毁,不能再使用。如果使用release,任何与该session相关的锁都会被释放,并且持有该锁的key的ModifyIndex也会递增。如果使用了Delete,持有该锁的KEY将会被删除。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 由于文章太长,简书放不下,完整文档见Consul文档。 一、安装 Consul Consul 的安装很简单,安装 ...
    FlySheep_ly阅读 10,037评论 1 13
  • https://deepzz.com/post/the-consul-of-discovery-and-confi...
    deepzz阅读 16,506评论 7 17
  • 上一篇提到,项目用的分布式服务发现与注册组件是consul,这篇文章主要来讲下consul组件在项目中的应用以及相...
    aoho阅读 11,273评论 1 13
  • [转] 1. 什么是consul? 是一个服务管理软件。支持多数据中心下,分布式高可用的,服务发现和配置共享。co...
    baboon阅读 3,030评论 0 7
  • 今天又没压抑住心魔。 可能是太闲了,学习之余还是要玩会游戏来放松,并且转移下注意力。 149.7 day0
    Little_L阅读 67评论 0 0