Tair——概述

2018-05-02  本文已影响91人  jiangmo

Tair是提供快速访问的内存(MDB引擎)/持久化(LDB引擎)存储服务,基于高性能、高可用的分布式集群架构,满足读写性能要求高及容量可弹性伸缩的业务需求。

系统架构

一个 Tair 集群主要包括3个必选模块:ConfigServer、Dataserver和 Client.

通常情况下,一个 Tair 集群中包含2台 Configserver 及多台 DataServer。其中两台 Configserver 互为主备。通过和 Dataserver 之间的心跳检测获取集群中存活可用的 Dataserver,构建数据在集群中的分布信息(对照表)。Dataserver 负责数据的存储,并按照 Configserver 的指示完成数据的复制和迁移工作。Client 在启动的时候,从 Configserver 获取数据分布信息,根据数据分布信息,和相应的 Dataserver 进行交互,完成用户的请求。

从架构上看,Configserver 的角色类似于传统应用系统的中心节点,整个集群服务依赖于 Configserver 的正常工作。而实际上,Tair 的 Configserver 是非常轻量级的,当正在工作的 Configserver 宕机的时候,另一台会在秒级别时间内自动接管。而且,即使出现两台 ConfigServer 同时宕机的恶劣情况,只要 DataServer 没有新的变化,Tair 依然服务正常。应用在使用时只需要连接 Configserver,而不需要知道内部节点的情况。

ConfigServers

DataServers

Clients

产品功能

分布式架构

丰富易用的接口

应用场景

数据库缓存

随着业务量上升,数据库收到的并发请求数会不断增加,随之而来的问题就是数据库系统的负载升高,响应延迟下降,严重的时候,甚至有可能因此而导致服务中断。为了解决这类问题,可以将Tair MDB产品与数据库产品搭配使用,组成高吞吐、低延迟的存储解决方案。 MDB响应速度快,通常在几毫秒内即可完成请求。另一方面,MDB可支持更高的QPS,处理比数据库更多的并发请求。用户通过业务观察,将热点数据放置在MDB中,可以极大缓解数据库的负载,不仅可以节省数据库成本,而且提高了系统的可用性。

临时数据存储

应用程序需要维护大量临时数据,例如社交网络、电子商务、游戏、广告等,将临时数据存储在MDB中,可以降低内存管理的开销,改进应用程序工作负载。在分布式环境中,可以将MDB作为全局统一存储,避免单点故障造成的数据丢失,同时解决多个应用程序之间的同步问题。 常用的例子是将MDB作为session manager使用,如果网站采用分布式部署,且访问量很高,那么同一个用户的不同请求可能会发送到不同的web服务器上,这时可以用MDB作为全局存储,用于保存Session数据、用户的Token、权限信息等数据。

数据存储

黑白名单

安全类应用有较多黑白名单场景,该类黑白名单场景具有命中率低,访问量大,数据丢失业务有损等特性。LDB 支持数据持久化功能,同时也支持高访问量,因此被广泛应用于此类场景。

分布式锁

为防止因多线程并发造成的数据不一致或逻辑混乱,分布式锁是比较常见的处理方式。利用 Tair 的 version 特性或者计数功能可以实现分布式锁。由于 LDB 具有持久化功能,当服务有出现宕机的情况,也不会因此出现锁丢失或者锁不可释放的情况。

Ref:https://github.com/alibaba/tair/wiki/%E4%B8%AD%E6%96%87%E4%B8%BB%E9%A1%B5

上一篇下一篇

猜你喜欢

热点阅读