KV存储高可用原理与部署方法.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

本文由简悦SimpRead转码,原文地址

在第05讲秒杀系统领域建模部分,我曾提到秒杀场次信息是聚合根,它聚合了秒杀商品信息和秒杀专

题信息。假如我们要从关系型数据库中提取场次详情,意味着需要三张表:活动专题表、活动场次

表、活动商品表。

这会出现什么问题呢?一旦遇到高并况,数据库就会承受很高的甚至。

那有没有办法解决这个问题,提高数据的高性能和高可用?有!那就是使用KV,这也是本讲

的。

什么是KV

KV是Key-Value的缩写,KV也叫键值对。简单来说,它是利用Key做索引来实现数据的存

储、修改、查询和删除功能。

常用的高性能KV主要有Redis、Memcached、etcd、Zookeeper等,其中Redis和

Memcached主要用来缓存业务数据,etcd和Zookeeper主要用来元数据。

业务数据比较好理解,就是业务系统业务逻辑处理的数据。比如我们要在API服务中将活动信息快速读

取出来,就需要用Redis做缓存,降低耗时,提升数据的吞吐能力。

那什么是元数据呢?在分布式系统中,元数据就是系统的基本信息,包括系统名称、服务名称、服务配

置、节点IP等。比如秒杀系统中,秒杀服务调用商品和的时候,就需要从服务

里获取这两个系统的元数据。

以上是对KV的基本介绍,一般在秒杀系统中,我们会利用Redis和etcd实现多级缓存和漏斗模型

中的部分功能,比如缓存活动信息、秒杀API服务节点信息、利用分布式锁和消息队列将请求串行

化等。

所以,接下来我就为你着重介绍下KV中Redis和etcd的高可用原理及其部署方法。

Redis高可用原理及部署方法

Redis的高可用原理

你可能会问了,既然Redis和Memcached都可以缓存业务数据,那为什么会选择Redis而不是

Memcached呢?

其实Memcached在性能上要稍微比Redis好,但在易用性和可用性上,Redis要大大超过

Memcached。

先说易用性。Redis有五种数据类型:list、set、string、hash、zset。这表示在使用Redis数据

的时候将会更灵活,能节省很多开发成本。而Memcached支持的数据类型比较简单,只有string,无

法满足复杂业务场景的需求。

另外,Redis还支持原子操作和事务,可以确保操作数据时的准确性,使用非常简单。比如在秒杀中扣

减和归还库存,就可以用Redis的原子操作和事务来保障库存数据的准确性。

在可用性方面呢,Redis支持Master-Slave模式的数据备份,而Memcached不支持;在故障转移方

面,Redis的可用性也比Memcached高。

还有,Memcached是纯内存的,后里面的信息就丢失了,而Redis则可以通过命令将内存中

的数据保存到磁盘上,让数据持久化。

换句话说,即使Redis节点因为宕机导致内存中的数据丢失,它也可以从磁盘恢复数据到内存,这就大大

降低了因宕机导致缓存的风险。应用到秒杀系统里就是,假如秒杀活动进行中,缓存活动信息的

Redis挂了,由于数据做了持久化,就避免了大量请求直接到DB。

那Redis是如何做到高可用的呢?

它主要通过支持主从模式、哨兵模式、集群模式这三种模式,来满足不同业务特点和可用等级的需求。

其中,主从模式部署最简单,用得也最多,集群模式比较复杂,但可用性最高。具体怎么部署呢?

Redis的部署方法

主从模式

主从模式比较简单,可部署多个节点,其中一个作为Master节点,剩下的作为Slave节点。它的示意

图如下:

在主从模式里,客户端同时连接Master节点和Slave节点,写操作通过Master节点执行,并将结果

同步给Slave节点,读操作通过Slave节点执行。假如Master节点挂了,不影响读操作,我们可以通

过手动修改配置将某个Slave节点提升为

文档评论(0)

wx5620 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档