Tair

本文介绍了Tair分布式系统,它类似redis哨兵模式,有统一API,封装集群操作。Tair有四种引擎,可方便使用KV数据库。其架构由客户端、控制中心节点、数据节点和可选的InvalidServer组成,还分别阐述了各部分的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.jianshu.com/p/ccb17daed766

简单介绍

简单而言,类似于redis的哨兵模式。

统一的API。无论底层使用何种引擎,上层的API是一样的。
Tair有四种引擎:mdb, rdb, kdb和ldb。分别基于四种开源的key/value数据库:memcached, Redis, Kyoto Cabinet和leveldb。Tair可以让你更方便地使用这些KV数据库。比如Redis没有提供sharding操作,如果有多个Redis Server,你需要自己写代码实现sharding,Tair帮你封装了这些。

在这里插入图片描述

Tair将集群操作封装起来,解放了开发者。淘宝内部在使用Tair时,一般都是双机房双集群容错,利用invalid server保证两个集群间的一致性,这些对于开发者都是透明的。
在这里插入图片描述

架构

tair 作为一个分布式系统, 一个集群是由客户端(Client)、控制中心节点(config server)和一系列的数据节点(data server),再加一个可选的InvalidServer(用多独立集群的一致性)组成。

config server 负责管理所有的data server, 维护data server的状态信息,有主备两台config server;data server 对外提供各种数据服务, 并以心跳的形式将自身状况汇报给config server,所有的 data server 地位都是等价的,数据在集群中保留的份数可配置。

ConfigServer的功能

负责管理所有的data server, 维护data server的状态信息。

通过维护和dataserver心跳来获知集群中存活节点的信息
根据存活节点的信息来构建数据在集群中的分布表。
提供数据分布表的查询服务。
调度dataserver之间的数据迁移、复制。

DataServer的功能

对外提供各种数据服务, 并以心跳的形式将自身状况汇报给config server。

提供存储引擎
接受client的put/get/remove等操作
执行数据迁移,复制等
插件:在接受请求的时候处理一些自定义功能
访问统计

InvalidServer的功能

接收来自client的invalid/hide等请求后,对属于同一组的集群(双机房独立集群部署方式)做delete/hide操作,保证同一组集群的一致。
集群断网之后的,脏数据清理。
访问统计。

client的功能

在应用端提供访问Tair集群的接口。
更新并缓存数据分布表和invalidserver地址等。
LocalCache,避免过热数据访问影响tair集群服务。
流控

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值