Tair源码阅读1---ConfigServer

来源:互联网 发布:剑灵金币怎么买在淘宝 编辑:程序博客网 时间:2024/05/22 16:39

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.主要流程

0 0
原创粉丝点击