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