博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tair源码阅读1---ConfigServer
阅读量:4255 次
发布时间:2019-05-26

本文共 794 字,大约阅读时间需要 2 分钟。

ConfigServer里面涉及到的几个最重要的对象是,configServer,dataServer,table,group

1.对象介绍

(1)table,对照表

key通过hash之后,再取模可以得到value存放在哪个桶。这个桶是放在哪个dataServer的信息,可以由一个表来表示。

这个表就是对照表。

(2)configServer,配置服务器

功能主要有,①读取配置信息以及心跳得到dataServer的信息,进行对照表的生成。

②根据client的请求,传递对照表信息

③根据心跳得到dataServer的信息,然后控制数据在dataServer中的复制与迁移,以及重新建立对照表等。

(3)dataServer,数据服务器

数据实际存储的抽象,可以采用不同的存储引擎,在configServer的控制下,完成数据的保存、复制、迁移。

(4)group,组

通常,configServer有2个,互为主备。而dataServer通常有许多个,可以将dataServer维护为多个不同的group。

而对照表的新建与弃用,是以group为单位的。

2.代码结构

如图所示,这就是Tair中,ConfigServer模块下的代码。

其中,

①是入口,表示tair_config_server

②是整个模块的主要工作的线程,重要的函数都在这个thread的run里面

③是信息,分为group信息和server信息,作为②运行的一些处理判断

④就是与对照表table相关的,上面的一些是控制table行为的类,下面的是描述表的具体的类,

table_builder1和table_builer2都继承自table_builder,

table_builder1是采用负载均衡优先建立的对照表,table_builder2是采用优先考虑区分机房的逻辑建立的对照表。

3.主要流程

你可能感兴趣的文章
设置cmd命令窗口的起始位置
查看>>
写给四年前刚开始编程的自己
查看>>
谷歌面试题,你敢回答吗。
查看>>
Android 安全攻防(一):SEAndroid的编译
查看>>
Android 安全攻防(二): SEAndroid bionic
查看>>
cuda如何做软连接切换
查看>>
小飞机的一些设置解释
查看>>
目标检测里正负样本和数据增广
查看>>
python和C++的交互方式
查看>>
ubuntu快捷键
查看>>
npaint (31M)-图片去水印等
查看>>
学英语以及中文快速阅读的启迪,从“为什么全世界只有中日两个国家弹幕视频网站成为流行?”说开去
查看>>
什么是人工神经网络
查看>>
神经网络的发展历史
查看>>
TED演讲:Jeff Hawkins.大脑的工作原理是什么
查看>>
所谓的语义信息
查看>>
Predictive learning vs. representation learning
查看>>
android SDK工具下载
查看>>
Hibernateday02表的唯一外键
查看>>
Hibernateday06 SQLQuery 和NameQuery
查看>>