蓝盟弱电工程,腾讯重型开源DCache,分布式NoSQL存储系统

发布者:上海IT外包 发布时间:2019/5/9 9:48:04来源:www.linemore.com

       当您在电子商务平台上销售商品或在社交网络上刷热门话题时,您显然会感受到网络当前数据流量的恐怖。成千上万的产品刚刚被盗,并在不到一秒的时间内售出;出轨消息一出现,即时读数和重复次数就可达数亿。作为最终用户,我们可以考虑服务系统如何在如此严峻的交通环境中生存。
  事实上,服务系统架构中有许多智能设计来处理这些问题。在这种情况下,系统通常建立缓存系统以减轻大规模访问请求和数据的影响并实现高性能访问要求。
  与此同时,随着微服务和云等技术的发展,对分布式架构的需求日益普遍。此外,Web上的当前数据类型不再是唯一的,并且传统的数据量正在增加。结构化存储解决方案没有跟上步伐,数据库中的SQL操作不再符合要求,因此出现NoSQL。
  通过集成这些技术解决方案,我们可以设计分布式NoSQL缓存系统。目前,有一些开源解决方案,如Memcached和Redis,它们为整个服务系统提供了易用性,可扩展性和性能。发挥重要作用。
  我听说腾讯最近开了一个分布式DCache NoSQL存储系统,它的典型应用场景是分布式缓存。根据官方介绍,DCache基于TARS微服务管理解决方案。支持数据结构k-v,k-k-row,list,set和zset。数据基于内存存储,并支持基于数据库的数据持久性。 DCache具有快速水平扩展的能力,并配备了Web操作和维护平台,以实现高效的操作和维护。
  我们第一次采访了DCache研发团队的成员Shan Baoyin。我希望能更好地了解该项目的研发背景和相关技术细节。
  DCache:https://www.oschina.net/p/dcache-nosql
  在当前的开源分布式缓存系统中,Memcached和Redis是非常常见的选项。腾讯为什么要为自己建立一个系统?
  山宝印介绍说,虽然Memcached和Redis的具有非常强大的功能,也有诸如难以操作和维护,缺乏集群解决方案,并不能满足微服务的趋势所带来的挑战问题。
  例如,当前的微服务是一个大趋势。每个人都在谈论做微服务,它可以解耦计算和存储以实现轻松的通信。微服务不需要管理生命的同步,但Redis作为系统的一个组件却不是。 “我们希望设计服务的体系结构时,数据层的逻辑层分开,但如果你使用Redis的缓存数据缓存和数据库之间是相同的。”性的问题,以及如何解决缓存失败问题,要求用户在业务逻辑中执行相关流程,增加复杂性和难度,并增加逻辑层与数据层之间的耦合。“另一方面,Shan Baoyin介绍说,面对海量数据和高性能访问要求,腾讯内部的几个团队开发了自己的缓存系统。但是,这些系统之间的协议并不统一,服务模式多样化而且不普遍。容错性和可扩展性也参差不齐,所以团队开始开发数据缓存,一个缓存系统通用,它希望能够解决业务难题,开发,运营和一般维护和监控。
  因此,你可以看到dcache的已经应用到多个内部腾讯的服务,包括QQ浏览器,应用宝,腾讯的地图,电脑管家腾讯手机管家与腾讯游戏。
  SQL,分布式和NoSQL补偿
  SQL是指数据库的结构化查询语言,它是数据库中的操作命令集。传统的关系数据库使用标准的SQL语句操作来处理数据。分布式是软件系统的架构模式。在分布式系统中,多个硬件或软件组件被分布在不同的计算机通过传递消息和外部表现为一个整体彼此通信,从而提供统一的服务。
  人们普遍认为SQL数据库和分布式数据库之间存在着天然的对立。山宝贤深有体会:“分布式系统,因为数据分散在不同的节点上,从而使加盟等表的SQL,交易等必须是全球性的锁保护操作较为复杂处理和。它会影响性能。“
  SQL也有NoSQL的补偿问题。 NoSQL指的是一种数据库,主要用于处理高性能的超大数据。其主要特点是数据结构简单,键值是主要的,数据不相关。做横向扩展。
  从字面上看,NoSQL似乎反对SQL。做NoSQL似乎意味着放弃SQL。但是,NoSQL不仅仅是SQL。它不仅仅是SQL,因此它可以包含SQL。
  “的NoSQL没有放弃SQL。事实上,代理层可以提高SQL和计算逻辑的分析来实现SQL操作,但是这会影响性能,所以它取决于应用和业务需求阶段”。
  单宝银简单分析了DCache“分布式NoSQL”的含义。在SQL处理方面,分布似乎有一个缺点。然而,分布式装置连接的计算机更便宜,可以使用计算能力来经济地处理请求并发访问高强度。此外,还有许多分布式架构。的优点,如避免由于在系统中的单点一般故障,实现高可用性。
  在另一方面,暴饮山也说:“数据缓存,因为主要目标是高性能的SQL操作是不是一个需要解决的主要问题,所以dcache的未实现SQL函数”。DCache的分布式策略和功能。
  粒度外部服务DCACHE是一组,一组是负责数据碎片的部分。至于每个组服务的数据则根据密钥数据的映射散列后的范围内确定。
  数据缓存分配通过散列算法中的数据项设置为0?4294967295(无符号整数)的范围内,然后均匀划分的0?4294967295在不同的组的范围内。例如,如果有两个组,哈希后的散列值被分配给组1中的范围为0?2147483647,和被分配到组2中从2,147,483,648的范围内,以4294967295。
  在组中,采用主动/备用架构。只有主节点接收读写请求,因此可以保证数据的一致性。当主机不可用时,将激活主动自动切换和待机,以确保服务持续可用。
  DCache架构
  我们怀疑DCache似乎非常依赖像etcd和TARS这样的中间件。它的主要特点和功能是什么?
  Shanbao Yin解释说DCache并不严重依赖于etcd。 “DCE只涉及路由器路由服务RouterServer。如果实施RouterServer的唯一一点也可以,和停机RouterServer不会影响读取和写入数据的访问,因为所有的服务都Proxy as Cache具有本地路由缓存。“关于采用焦油,他说:“因为TARS是一个开发框架非常好的服务,保护了底层网络的通信细节,包括命名服务,许多服务需要更多的功能。对于DCache,使用现有的TARS框架可以更好地服务它们,我们不必重新创建轮子。“
  至于数据缓存的功能,山宝印提出:“存储引擎数据缓存本身具有的高性能,并与数据库连接的用户兼容的,没有必要担心的一致性。数据库和缓存之间的数据,以及缓存失败引起的一系列问题。“
  具体来说,DCache的持久性与Redis不同。后者仅备份本地磁盘上的内存中的数据,这可确保在重新启动Redis后恢复数据。
  “Redis的的持续性主要是备份数据后数据缓存的后端有一个数据库,业务逻辑和数据背景可以是完全分开的,数据缓存本身将处理缓存和数据库之间的数据一致性。DCache将继续将数据放在后端数据库的缓存中。如果缓存中没有足够的存储空间,则将删除已转储数据库的冷数据。在数据查询的过程中,如果查询缓存失败,它将从数据库中读取并存储在缓存中,以保证接入点和数据在内存中的命中率缓存,以及数据库和缓存的渗透问题也将得到解决。
  此外,在后端数据库中保留数据的能力对于需要离线数据分析的业务场景也很方便。总之,您根本不必担心数据,只需在Cache中写入数据,而背痛由DCache处理。 “
  DCache特性
  此外,DCache的分布式集群,异地镜像和容灾容错在实际在线应用中具有很高的价值。
  使用它
  作为分布式存储系统,DCache应用场景不限于缓存。据单宝银,数据缓存可用于具有高的存储需求NOSQL性能场景和数据缓存具有自动删除后的去除能力和到期数据的功能。它还为需要存储来自接入点(例如热门项目)和临时数据(例如天气敏感聊天)的数据的场景提供了良好的支持。
  Shanbao Silver还提供DCache的性能数据:
  目前,有近100家企业,包括腾讯,包括QQ浏览器,应用宝,腾讯的地图,腾讯电脑管家,管家手机和腾讯游戏有机会获得数据缓存。这些服务的数量是可以想象的。 “除了提供简单的数据数据缓存是高效可靠的近百个企业的运作情况,并每天通话超过万亿次浮点运算的体积相兼容。这也解释了数据缓存在生产环境中的性能和稳定性。 “”
  除了系统本身数据的高性能,高可扩展性,高可用性和安全性设计外,Web可视化的高效运维平台已成为不可或缺的重要DCache容量。基于内存的NoSQL存储系统在运行和维护方面存在严重的过载,需要深入了解相关技术并在关键时刻做出正确的决策。
  DCache基于TARS的开发,因此操作和维护平台统一了模块中DCache服务和TARS的管理。 Shanbao Yin提供运营和维护平台,以提高效率,同时降低运营和维护的门槛,对服务和在线的实施。迁移,扩展,监控和配置都很容易进行。

 

上海IT外包服务网 链接:http://www.linemore.com

>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部