优酷土豆的Redis服务平台化之路.docVIP

  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文档。上传文档
查看更多
word格式精心整理版 范文范例 学习指导 1 Redis架构的方案经历阶段 1.1.?客户端分片 ? 客户端分片: 优点 不依赖于第三方中间件,实现方法和代码自己掌控,可随时调整 这种分片机制的性能比代理式更好(少了一个中间分发环节) 可控的分发请求,分发压力落在客户端,无服务器压力增加 缺点 不能平滑的水平扩展节点,扩容/缩容时,必须手动调整分片程序 出现故障,不能自动转移,运维性很差 客户端得自己维护一套路由算法 升级复杂 1.2.?Twemproxy Twemproxy: 优点 运维成本低。业务方不用关心后端Redis实例,跟操作Redis一样 Proxy 的逻辑和存储的逻辑是隔离的 缺点 代理层多了一次转发,性能有所损耗 进行扩容/缩容时候,部分数据可能会失效,需要手动进行迁移,对运维要求较高,而且难以做到平滑的扩缩容 出现故障,不能自动转移,运维性很差 升级复杂 1.3.?Redis Cluster ?Redis Cluster: 优点 无中心节点 数据按照Slot存储分布在多个Redis实例上 平滑的进行扩容/缩容节点 自动故障转移(节点之间通过Gossip协议交换状态信息,进行投票机制完成Slave到Master角色的提升) 降低运维成本,提高了系统的可扩展性和高可用性 缺点 严重依赖外部Redis-Trib 缺乏监控管理 需要依赖Smart Client(连接维护, 缓存路由表, MultiOp和Pipeline支持) Failover节点的检测过慢,不如“中心节点ZooKeeper”及时 Gossip消息的开销 无法根据统计区分冷热数据 Slave“冷备”,不能缓解读压力 ? 1.4.?Proxy+Redis Cluster Smart Client vs Proxy: 优点 Smart Client: a.?相比于使用代理,减少了一层网络传输的消耗,效率较高。 b.?不依赖于第三方中间件,实现方法和代码自己掌控,可随时调整。 Proxy: a.?提供一套HTTP Restful接口,隔离底层存储。对客户端完全透明,跨语言调用。 b.?升级维护较为容易,维护Redis Cluster,只需要平滑升级Proxy。 c.?层次化存储,底层存储做冷热异构存储。 d.?权限控制,Proxy可以通过秘钥控制白名单,把一些不合法的请求都过滤掉。并且也可以控制用户请求的超大Value进行控制,和过滤。 e.?安全性,可以屏蔽掉一些危险命令,比如Keys、Save、Flush All等。 f.?容量控制,根据不同用户容量申请进行容量限制。 g.?资源逻辑隔离,根据不同用户的Key加上前缀,来进行资源隔离。 h.?监控埋点,对于不同的接口进行埋点监控等信息。 缺点 Smart Client: a.?客户端的不成熟,影响应用的稳定性,提高开发难度。 b.?MultiOp和Pipeline支持有限。 c.?连接维护,Smart客户端对连接到集群中每个结点Socket的维护。 Proxy: a. ?代理层多了一次转发,性能有所损耗。 b.进行扩容/缩容时候对运维要求较高,而且难以做到平滑的扩缩容。 ? 2 为什么选择Nginx开发Proxy 1.单Master多Work模式,每个Work跟Redis一样都是单进程单线程模式,并且都是基 于Epoll事件驱动的模式。 2.Nginx采用了异步非阻塞的方式来处理请求,高效的异步框架。 3.内存占用少,有自己的一套内存池管理方式,。将大量小内存的申请聚集到一块,能够比Malloc 更快。减少内存碎片,防止内存泄漏。减少内存管理复杂度。 4. ?为了提高Nginx的访问速度,Nginx使用了自己的一套连接池。 5. ?最重要的是支持自定义模块开发。 6. ?业界内,对于Nginx,Redis的口碑可称得上两大神器。性能也就不用说了。 3 Proxy+Redis Cluster介绍 3.1??Proxy+Redis Cluster架构方案介绍 1.?用户在ACL平台申请集群资源,如果申请成功返回秘钥信息。 2.?用户请求接口必须包含申请的秘钥信息,请求至LVS服务器。 3.?LVS根据负载均衡策略将请求转发至Nginx Proxy。 4.?Nginx Proxy首先会获取秘钥信息,然后根据秘钥信息去ACL服务上获取集群的种子信息。(种子信息是集群内任意几台IP:PORT节点) 然后把秘钥信息和对应的集群种子信息缓存起来。并且第一次访问会根据种子IP:PORT获取集群Slot对应节点的Mapping路由信息,进行缓存起来。最后根据Key计算SlotId,从缓存路由找到节点信息。 5.?把相应的K/V信息发送到对应的Redis节点上。 6.?Ng

文档评论(0)

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

本人从事教育还有多年,在这和大家互相交流学习

1亿VIP精品文档

相关文档