怎么搭建一个tair缓存服务器

怎么搭建一个tair缓存服务器,第1张

能啊,不过不知你要怎么做。

一般来说,对企业级用户才需要这些功能。主要就是避开上网高峰期,利用夜间来把网页等内容缓存下来,到了白天再用,再打开时可以看到网页是前一天或当天凌晨的。不过,不要紧,一点“刷新”就好了,因为大部分内容都下来了,改动也就很少,浏览网页的速度也就很快了。

方法我知道有两种,都是基于系统服务器的:1 WINDOWS系统下可以装一个ISA2000之类的软件,它可以提供防火墙、NAT、缓存三大功能。这个软件一时半会说不清楚,你可以自己下一个下来慢慢来,并不是很难。2 LINUX系统下也可以实现,在安装了一个叫squid的服务后,这个功能就可以再通过配置来实现,不过配置全是用命令,有点困难了。

最后,建议用ISA来做,或者找些专用的小软件之类的。顺便问一下,你该不是在开网吧,自学吧。

Tair是由阿里巴巴自主研发的高性能高可用的分布式Key/Value结构数据存储系统,在阿里内部有着大规模的应用。

作为一个分布式系统,Tair由一个中心控制节点(config server)和一系列的服务节点(data server)组成,

Tair主要有下面三种存储引擎:

根据CAP理论,在分布式存储系统中,最多只能实现一致性、可靠性和分区容错性三点中的两点。而由于网络硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡。

Tair 选择了一致性,同时采用复制技术来提高可靠性,并且为了提高效率做了一些优化。事实上在没有错误发生的时候,tair 提供的是一种强一致性,但是在有data server发生故障的时候,客户有可能在一定时间窗口内读不到最新的数据,甚至发生最新数据丢失的情况。

Tair中的每个数据都包含版本号,版本号在每次更新后都会递增。这个特性可以帮助防止数据的并发更新导致的问题。version 机制是乐观锁常用的实现方式。

tair 的存储引擎可以是 MDB、LDB 或 RDB。它们使用缓存、内存或 SSD 硬盘(LDB) 来提升性能。

configserver 不是传统的中心节点,挂了对集群的服务无影响

Tair 使用一致性哈希作为负载均衡策略。

当有某台data server故障不可用的时候, config server会发现这个情况, config server负责重新计算一张新的桶在data server上的分布表, 将原来由故障机器服务的桶的访问重新指派到其它的data server中。这个时候, 可能会发生数据的迁移。比如原来由data server A负责的桶,在新表中需要由 B负责。而B上并没有该桶的数据, 那么就将数据迁移到B上来。同时config server会发现哪些桶的备份数目减少了, 然后根据负载情况在负载较低的data server上增加这些桶的备份。当系统增加data server的时候, config server根据负载,协调data server将他们控制的部分桶迁移到新的data server上。迁移完成后调整路由。当然系统中可能出现减少了某些data server 同时增加另外的一些data server。处理原理同上。 每次路由的变更,config server都会将新的配置信息推给data server。在客户端访问data server的时候, 会发送客户端缓存的路由表的版本号。如果data server发现客户端的版本号过旧,则会通知客户端去config server取一次新的路由表。如果客户端访问某台data server 发生了不可达的情况(该 data server可能宕机了),客户端会主动去config server取新的路由表。

当迁移发生的时候, 我们举个例子, 假设data server A 要把桶 3,4,5 迁移给data server B。因为迁移完成前,客户端的路由表没有变化,客户端对 3, 4, 5 的访问请求都会路由到A。现在假设 3还没迁移, 4 正在迁移中, 5已经迁移完成。那么如果是对3的访问, 则没什么特别, 跟以前一样。如果是对5的访问, 则A会把该请求转发给B,并且将B的返回结果返回给客户,如果是对4的访问,在A处理,同时如果是对4的修改操作会记录修改log。当桶4迁移完成的时候,还要把log发送到B,在B上应用这些log。最终A B上对于桶4来说, 数据完全一致才是真正的迁移完成。当然如果是因为某data server宕机而引发的迁移, 客户端会收到一张中间临时状态的分配表。这张表中,把宕机的data server所负责的桶临时指派给有其备份data server来处理。 这个时候服务是可用的,但是负载可能不均衡。当迁移完成之后,才能重新达到一个新的负载均衡的状态。

https://yq.aliyun.com/articles/52059

https://www.cnblogs.com/jiangxiulian/p/8027739.html

目前支持MDB,RDB和LDB三款产品,可适合于各种常见的存储场景.

其中MDB属于内存型产品,支持kv和类hashMap结构,性能最优,但不支持持久化存储

RDB支持List.Set.Zset等复杂的数据结构,性能次之,可提供缓存和持久化存储两种模式

LDB属于持久化产品,支持kv和类hashmap结构,性能较前两者稍低,但持久化可靠性最高.

各种引擎简介

底层封装MDB引擎是memcache 的引擎,了解mdb的特性就能大致了解tair的mdb产品的特性。另外rdb是redis引擎,ldb是google levelDB的引擎  其中的每一种的特性都可参考每一种框架都特性。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/502429.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-16
下一篇2023-06-16

发表评论

登录后才能评论

评论列表(0条)

    保存