产品概览
Tair 是快速访问内存 (MDB)/持久性 (LDB) 存储服务。
Tair采用高性能、高可用的分布式集群架构,可以满足企业对读写性能和可扩展容量的高要求。
系统架构
Tair 集群具有三个必要的模块:ConfigServer、DataServer 和客户端。
通常,一个 Tair 集群包括两个 ConfigServer 和多个 DataServer。
两个 ConfigServer 充当主服务器和备用服务器。 DataServer 和 ConfigServer 之间的心跳检查用于检查集群中活跃的和可用的 DataServer,以建立集群中数据的分布(比较表)。
DataServers 按照 ConfigServer 的指示存储、复制和迁移数据。当客户端启动时,它从 ConfigServer 获取数据分布信息。客户端根据这些数据分布信息,与对应的DataServer进行交互,执行用户的请求。
在架构上,ConfigServer 的作用类似于传统应用系统中的中心节点。整个集群服务依赖于ConfigServer。
事实上,Tair 的 ConfigServers 是非常轻量级的。当一个工作的 ConfigServer 遇到停机时间时,另一个 ConfigServer 会在几秒钟内自动接管。
即使两个 ConfigServer 同时停机,只要 DataServer 没有变化,Tair 也可以正常运行。
用户只需要将应用程序连接到 ConfigServers,不需要知道内部节点的详细信息。
ConfigServer
两个 ConfigServers 作为主服务器和备用服务器。
集群的实时和可用 DataServer 节点信息是使用 ConfigServer 和 DataServer 之间的心跳检查确定的。
ConfigServer根据DataServer节点信息构建数据分布表,展示数据在集群中的分布情况。
ConfigServer 提供数据分发表查询服务。
ConfigServer 调度数据服务器之间的数据迁移和复制。
DataServers 数据服务器
DataServers 提供存储引擎。
DataServers 接收客户端发起的操作,例如 put/get/remove。
DataServers 迁移和复制数据。
DataServers 提供访问统计信息。
Clients 客户端
客户端提供用于访问 Tair 集群的 API。
客户端更新和缓存数据分发表。
客户端提供LocalCache,防止过热的数据访问影响Tair集群服务。
客户端控制流量。
产品特点
分布式架构
-
分布式集群架构用于提供自动灾难恢复和故障转移。
-
支持负载均衡,数据分布均匀。
-
系统存储空间和吞吐量性能可以弹性伸缩,解决数据量和QPS性能限制。
-
功能齐全且用户友好的访问
-
数据结构丰富。 支持单级键值结构和二级索引结构。
-
支持各种用途。 还支持计数器模式。
-
支持数据过期和版本控制。
用途
数据库缓存
随着业务量的增加,对数据库系统的并发请求越来越多,数据库系统的负载越来越重。当数据库系统过载时,响应速度会变慢,在极端情况下甚至会导致服务中断。
为了解决这个问题,Tair MDB 可以与数据库产品一起部署,以提供高吞吐量和低延迟的存储。
MDB 响应速度快,一般毫秒级完成请求。而且,MDB 支持更高的 QPS 速率,可以处理比数据库更多的并发请求。
通过观察业务,用户可以将热点数据存储在MDB中,显着减轻数据库的负载。这不仅降低了数据库成本,还提高了系统可用性。
临时数据存储
社交网站、电商网站、游戏、广告等应用需要维护大量的临时数据。
在 MDB 中存储临时数据可以减少内存管理开销和应用程序负载。在分布式环境中,MDB可以作为统一的全局存储,可以防止单点故障造成的数据丢失,解决多个应用之间同步的问题。
一个常见的例子是使用 MDB 作为会话管理器。如果网站采用分布式部署,并且流量很大,同一用户的不同请求可能会发送到不同的Web服务器。
在这种情况下,MDB 可以作为全局存储解决方案来保存会话数据、用户令牌、权限信息等数据。
数据存储
推荐和广告业务通常需要离线计算大量数据。 LDB 支持持久存储并提供卓越的性能。
支持在线服务,允许用户定期将离线数据导入LDB进行在线服务。
经过计算,列表业务可以将最终列表存储在LDB中,直接展示给前端应用程序。
这样,LDB 就满足了存储和高速访问的需求。
黑名单/白名单
安全应用程序有许多黑名单/白名单方案。这些黑名单/白名单场景的特点是命中率低、访问量大、数据丢失导致业务损失。
LDB 支持数据持久化和高访问量,因此在这些场景中被广泛使用。
分布式锁
分布式锁通常用于防止多线程并发导致的数据不一致和逻辑混乱。分布式锁可以使用 Tair 的版本特性或计算功能来实现。
得益于LBS的持久化,即使服务宕机,锁也不会丢失,可以正常释放。
贡献
源代码可通过 GPL 版本 2 获得。
我们正在积极寻找贡献者,因此如果您有任何想法、错误报告或补丁,您想贡献,请不要犹豫。
参考资料
https://github.com/alibaba/tair