- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
百分点开源Cois多语言客户端
百分点开源Codis多语言客户端java,c++和python都可以使用了 开源伴随着互联网的兴起影响着越来越多的人,它让程序员可以站在巨人的肩膀上,帮助企业更快速地进行研发。百分点作为大数据领域的践行者和引领者,也正在从开源受益者成为开源贡献者。 开发背景Codis 作为分布式 Redis 解决方案,在百分点已经有4.8T的Codis内存空间用来存储推荐引擎、CookieMapping和用户画像的数据。在实际应用中,Codis集群为 线上业务提供了稳定、低延迟以及高吞吐的Key-Value存储服务,并支持在线业务长期稳定运行。 百分点在很多业务场景都在使用Codis。作为内存KV服务从早期的memcached到Redis-Sentinel,再到现在的Codis云,很多产品和应用都需要使用不同的语言对KV服务完成调用,如Python、C++、 Java等。但遗憾的是,目前Codis官方只提供了Java的客户端,对多语言应用造成不便,所以百分点研发团队开发了C++和Python两种语言的客户端来满足大部分业务代码的需求。同时,也对Java的客户端做了修改,来防止多个业务使用同一个Codis集群带来的key冲突问题。 我们已经将代码分享在开源社区,帮助更多的人、更方便地使用Codis。 C++ Python 为什么选择Codis? 选型影响着技术发展的方向,在选用Codis之前,我们曾对下面的组件做过对比和评测: Twemproxy:是一种代理分片机制,由Twitter开源。Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回。这个方案顺理成章地解决了单个Redis实例承载能力的问题。当然,Twemproxy本身也是单点,需要用Keepalived做高可用方案。 优点:这些年来,Twemproxy是应用范围最广、稳定性最高、最久经考验的分布式中间件。 缺点:Twemproxy最大的痛点在于其使用了ketama一致性hash算法,无法平滑地扩容/缩容,甚至连修改配置都需要重启服务;Twemproxy另一个痛点是,运维不友好,甚至没有控制面板,对Redis集群的扩容/缩容都很难操作,或者说,Twemproxy更像服务器端静态sharding。有时为了应对业务量突增导致的扩容需求,甚至被迫新开一个基于Twemproxy的Redis集群。 Redis-Cluster:Redis-Cluster在Redis3.0中推出,是与Codis同期发布的产品,支持Redis分布式集群部署模式,采用无中心分布式架构,所有的Redis节点彼此互联(PING-PONG机制),内部使用二进制协议,优化传输速度和带宽,节点的fail是通过集群中超过半数的节点检测失效时才生效。客户端与Redis节点直连,不需要中间proxy层,也不需要连接集群所有节点,只需连接集群中任何一个可用节点即可,减少了代理层,大大提高了性能。Redis-Cluster把所有的物理节点映射到[0-16383]slot上,Cluster 负责维护node-slot-key之间的关系。目前Jedis已经支持Redis-Cluster。 优点:部署简单,all-in-the-box,没有像Codis那么多概念、组件和依赖。 缺点:因其是无中心化设计,导致程序难以编写;Cluster的数据存储模块和分布式的逻辑模块是耦合在一起的,整个集群高度耦合,很难对Redis集群进行无痛的升级;不支持multi-key的操作,也不支持pipeline;其对协议进行了较大的修改,对客户端不太友好,目前很多客户端中的程序已经写好,让业务方去更换Redis Client是不太现实的。虽然Redis-Cluster从方案选型上面比较占据优势,但稳定性方面还有待验证。 Codis:是用Go语言编写的具有高性能的Redis集群解决方案,在很多公司已被广泛的使用,支持绝大多数的Redis命令,完全兼容Twemproxy。 优点:Codis无疑是为解决Twemproxy缺点而出的解决方案,因此综合方面会优于Twemproxy很多。Codis引入了Group的概念,每个Group包括1个Redis Master及多个Redis Slave,这样做的好处是如果Master有问题,则运维人员可通过Dashboard“自助式”切换到Slave,而不需要小心翼翼地修改配置文件;还可以轻松的升级、扩容和缩容;Dashboard页面还可以支持监控和集群管理。 项目描述 Codis-Client是为Codis写的Java、C++和Python的客户端,其中Java的客户端是基于Jodis开发的。 (1)Codis-Client用循环和连接池的
您可能关注的文档
最近下载
- GB T 27875-2011_港口重大件装卸作业技术要求_高清版_可检索.pdf
- 商品混凝土采购组织供应、运输、售后服务方案.docx VIP
- 大豆籽粒贮藏蛋白7S和11S组分的QTL定位.pdf
- YOLOv5(PyTorch)目标检测:原理与源码解析课件PPT模板.pptx VIP
- 辛弃疾《西江月》通用课件(页).pptx VIP
- 工程技术液压工程师岗面试题库参考答案和答题要点.docx VIP
- TCFLP 0026-2020-散装液体化学品罐式车辆装卸安全作业规范.pdf VIP
- 2025年高等学校英语应用能力考试A级试卷及答案.pdf VIP
- 疾控中心培训课件:《公安系统职业性相关传染病防治知识及职业暴露预防》.pptx VIP
- MSA测量系统分析自动表格.pdf VIP
文档评论(0)