文档章节

Consol

gamal_zf
 gamal_zf
发布于 2017/08/09 19:21
字数 820
阅读 8
收藏 0

1. 简介

2. 术语

  •  Agent: agent是一直运行在Consul集群中每个成员上的守护进程。通过运行 consul agent 来启动。agent可以运行在client或者server模式。
  • Client: 一个Client是一个转发所有RPC到server的代理。这个client是相对无状态的。client唯一执行的后台活动是加入LAN gossip池。这有一个最低的资源开销并且仅消耗少量的网络带宽。
  • Server: 一个server是一个有一组扩展功能的代理,这些功能包括参与Raft选举,维护集群状态,响应RPC查询,与其他数据中心交互WAN gossip和转发查询给leader或者远程数据中心。
  • DataCenter: 虽然数据中心的定义是显而易见的,但是有一些细微的细节必须考虑。例如,在EC2中,多个可用区域被认为组成一个数据中心?我们定义数据中心为一个私有的,低延迟和高带宽的一个网络环境。这不包括访问公共网络,但是对于我们而言,同一个EC2中的多个可用区域可以被认为是一个数据中心的一部分。
  • Gossip: Consul建立在Serf的基础之上,它提供了一个用于多播目的的完整的gossip协议。Serf提供成员关系,故障检测和事件广播。更多的信息在gossip文档中描述。这足以知道gossip使用基于UDP的随机的点到点通信。
  • LAN Gossip: 它包含所有位于同一个局域网或者数据中心的所有节点。
  • WAN Gossip: 它只包含Server。这些server主要分布在不同的数据中心并且通常通过因特网或者广域网通信。
  • RPC: 远程过程调用。这是一个允许client请求server的请求/响应机制。

3. Consol架构

  • 每个数据中心,client和server是混合的。一般建议有3-5台server
  • 同一个数据中心的所有节点都必须加入gossip协议。这意味着gossip协议包含一个给定数据中心的所有节点。
  • 每个数据中心的server都是Raft节点集合的一部分。这意味着它们一起工作并选出一个leader,一个有额外工作的server。leader负责处理所有的查询和事务。作为一致性协议的一部分,事务也必须被复制到所有其他的节点。因为这一要求,当一个非leader得server收到一个RPC请求时,它将请求转发给集群leader。
  • server节点也作为WAN gossip Pool的一部分。这个Pool不同于LAN Pool,因为它是为了优化互联网更高的延迟,并且它只包含其他Consul server节点。这个Pool的目的是为了允许数据中心能够以low-touch的方式发现彼此。这使得一个新的数据中心可以很容易的加入现存的WAN gossip。因为server都运行在这个pool中,它也支持跨数据中心请求。当一个server收到来自另一个数据中心的请求时,它随即转发给正确数据中想一个server。该server再转发给本地leader。

© 著作权归作者所有

共有 人打赏支持
gamal_zf
粉丝 1
博文 23
码字总数 7074
作品 0
深圳
高级程序员
私信 提问
framework7 ajax post提交

var $$ = window.Dom7;//do get request$$.get('path-to-file.php', {id:3}, function (data) {consol.log(data);} //do post request$$.post('path-to-file.php', {id:3}, function (data) ......

GIFCOOL
2016/12/28
66
0
为什么我用subprocess.Popen ,打开一个cmd后,这个cmd的consol在python的sonsol里面?

为什么我用subprocess.Popen ,打开一个cmd后,这个cmd的consol在python的sonsol里面? http://www.youneirong.com/archives/170.html 比如说subprocess.Popen(“ping 127.0.0.1″) ping自己......

Wanger
2012/09/25
1K
2
intellij的设置key map里面有方块乱码,请问是什么问题?

我在网上查了一些解决办法,包括解决jre的字体什么的.导入ubuntu的字体库,都无法解决.至于那个什么consol yahei的解决方案.那个字体实在太难看.我没用

呆萌
2013/03/18
932
3
extjs中loadecxeption,求助,找了快一个星期了,大家帮帮忙,帮我看一下

store里面发送请求,获取后台的json数据,通过consol打印数据可以看到正常取值,但是页面加载数据的时候就是进入到loadexception里面,不能读取数据。json数据: js代码:...

MAX
2015/10/02
173
4
windows批处理文件中常用的命令

dos consol 下help,可以看到dos支持的命令集合 要查看某一个具体的命令,可以这么做 help + 命令 比如help copy ================== rename 改名,文件必须在当前目录底下 cd ../libs/armea...

jacksonke
2014/06/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

添加并发

<!-- 认购线程池,支持最大并发送10 最大排队队列为一万--> <task:executor id="investBuyPool" pool-size="1-10" queue-capacity="10000"/> 方法添加注解@Async("investBuyPool")......

一夜
18分钟前
2
0
Gensim?

Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训...

火力全開
31分钟前
3
0
图片验证码

图片验证码,线上登录是最常见的场景,也有发送手机验证码之前进行图片验证码的验证。 图片验证码很大程度上防止机器人撞库登录或频繁发起短信验证码从而使系统暂时性"瘫痪"。 以下是项目中用...

貔貅叔
34分钟前
4
0
科班出身程序员和培训出来的程序员区别在哪?

科班出身只是代表你要从事的职业和你的专业是一致的,代表着你具备了得天独厚的优势,至于是不是优势看你上班好不好学,平时逃课没,上班是认真听还是玩手机。一般而言科班出来的理论性比较强...

java菜分享
35分钟前
4
0
java框架学习日志-8(AOP简介)

小王被委托开发一款游戏,程序分为启动页面,登陆页面,战斗页面等。小王就采用了面向对象编程思想(OOP),把整个程序分解成下图 这种就是传统的自上而下的编程,或者说纵向的编程,负责启动...

白话
35分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部