腾讯沉重的开源DCache,分布式NoSQL存储系统

电脑杂谈  发布时间:2020-05-07 05:03:14  来源:网络整理

分布式存储 开源_开源 分布式 文件系统_开源的分布式文件系统

当您在电子商务平台上投放产品或在社交网络上刷热门话题时,您可以清楚地感受到当前网络数据流量的恐怖. 数以千计的产品刚刚被抢夺并在一秒钟之内售罄. 一旦有大明星出轨的消息出现,即时阅读和转发的数量就可以达到数亿. 作为最终用户,我们可能会考虑服务系统在如此严峻的交通环境中如何生存.

实际上,服务系统的体系结构中有许多巧妙的设计可以解决此类问题,其中,通常,系统将设置一个缓存系统来减轻海量访问请求和数据的影响,以实现更高的性能. 性能访问需求.

同时,随着微服务和云等技术的发展,对分布式体系结构的需求变得越来越普遍,如今Web上的数据类型不再单一,数据量越来越大. 也爆炸了传统的结构化存储解决方案无法跟上,并且的SQL操作不再满足要求,因此出现了NoSQL.

结合这些技术解决方案,我们可以设计一个分布式NoSQL缓存系统. 当前,有一些针对此类系统的功能更强大的开源解决方案,例如Memcached和Redis,它们对于整个服务系统都是可用的并可扩展的. 性和表现起着至关重要的作用.

听说腾讯最近开放了分布式NoSQL存储系统DCache,其典型的应用场景是分布式缓存. 根据官方介绍,DCache基于TARS微服务治理解决方案. 它支持k-v,k-k行,列表,集合和zset的多个数据结构. 数据基于内存存储. 它还支持后续以实现数据持久性. DCache具有快速的横向扩展能力,并配备了Web运维平台,可以实现高效的运维.

我们首次采访了DCache研发团队成员Shan Baoyin,希望进一步了解该项目的研发背景和相关技术细节.

DCache:

在当前的开源分布式缓存系统中,Memcached和Redis是非常常见的选择. 为何这次腾讯要建立自己的系统?

开源 分布式 文件系统_分布式存储 开源_开源的分布式文件系统

单宝银介绍,尽管Memcached和Redis都具有非常强大的功能,但仍然存在诸如操作和维护困难,缺乏集群解决方案以及无法应付微服务趋势带来的挑战等问题.

例如,当前的微服务是一个主要趋势. 每个人都在谈论微服务,微服务可以使计算和存储脱钩,并实现轻量级的通信. 微服务不需要管理相同的生命周期,但Redis作为系统组件则不需要. “我们在设计服务体系结构时希望将逻辑层和数据层分开. 但是,如果将Redis用作缓存,则缓存和DB之间的数据是一致的. 性问题以及如何解决缓存问题错过,要求用户在业务逻辑中进行相关处理,这增加了一定的复杂度和难度,并且还增加了逻辑层与数据层之间的耦合. ”

另一方面,单宝银表示,最初,面对海量数据和高性能访问需求,腾讯内部的各个团队实际上都在开发自己的缓存系统. 但是,这些系统之间的协议并不统一,服务模型是多种多样的,没有通用的容错性和可扩展性,该团队便着手开发通用缓存系统DCache,以期解决业务,开发,整个操作分布式存储 开源,维护和监视.

因此,您还可以看到DCache已在腾讯内部的许多企业中使用,包括QQ浏览器,应用程序宝藏,腾讯地图,腾讯计算机管家,移动管家和腾讯游戏.

SQL,分布式和NoSQL的权衡

SQL是指的结构化查询语言. 它是的操作命令集. 传统的关系都使用标准的SQL语句来处理数据. 分布式是软件系统的体系结构模型. 在分布式系统中,多个硬件或软件组件分布在不同的计算机上,并通过消息传递相互通信. 外观整体上提供统一的服务.

普遍认为,SQL与分布式SQL之间存在天生的对立. 单宝银的理解是: “分布式系统,因为数据分散在不同的节点中,例如SQL联合表,事务等. 操作需要全局锁保护,这将使处理更加复杂并影响性能. ”

SQL还与NoSQL有一个权衡问题. NoSQL是一种,主要用于海量数据的高性能处理. 它的主要功能之一是简单的数据结构(主要是键值)和之间的非数据. 相关,易于水平扩展.

开源 分布式 文件系统_分布式存储 开源_开源的分布式文件系统

从字面上看,NoSQL似乎与SQL相反. 使用NoSQL似乎意味着放弃SQL. 但是,NoSQL应该是NotOnlySQL. 它不仅是SQL,还可以包含SQL功能.

” NoSQL不一定非要放弃SQL. 实际上,可以在代理层添加SQL分析和计算逻辑来实现SQL操作,但这会影响性能,因此它仍然取决于应用程序场景和业务需求. ”

单宝银为我们分析了DCache“分布式NoSQL”的重要性. 在SQL处理方面,分布式似乎有缺点,但是分布式意味着可以连接更便宜的计算机,充分利用计算能力,以及以低成本方式处理高强度并发访问请求. 此外,还有许多分布式体系结构. 诸如避免由系统单点引起的整体故障并实现高可用性等优势.

另一方面,单宝银也说: “由于DCache的主要目标是高性能,因此SQL操作不是要解决的主要问题,因此DCache不实现SQL的功能. ”

DCache分布式策略和功能

DCache的确定.

DCache将通过哈希算法将数据的密钥映射到0到4294967295的范围(unsignedint),然后将0到4294967295的范围均匀地划分为不同的组. 例如,有两个组,散列后的key值在0到2147483647的范围内分配给group1,在2147483648到4294967295的范围内分配给group2.

在一个组中,采用主备架构,只有主节点可以接收读写请求,因此可以保证数据的一致性,当主机不可用时,将触发主备自动切换为确保该服务持续可用.

分布式存储 开源_开源 分布式 文件系统_开源的分布式文件系统

DCache架构

我们怀疑DCache似乎严重依赖于诸如etcd和TARS之类的中间件,那么它的核心特性和功能在哪里?

单宝银解释说,DCache并不严重依赖于etcd,“ etcd仅涉及对路由服务RouterServer的选择. 如果将RouterServer部署在单点,则它也是可用的,并且RouterServer的停机时间不会影响由于所有的Proxy and Cache服务都具有本地路由缓存,因此对数据具有读写访问权限,“他对TARS的采用表示: ”由于TARS是一个非常好的服务开发框架,因此它屏蔽了底层网络通信的详细信息,并附带了其自己的名称. 服务以及服务所需的许多其他功能,对于DCache,使用现有的TARS框架可以更好地实现服务,我们不需要重复进行. ”

关于DCache本身的功能,单宝银介绍: “ DCache自己的存储引擎具有高性能分布式存储 开源,并支持后续的DB. 对于用户而言,无需关心DB和缓存之间的数据一致性. 缓存未命中引起的问题. “

具体来说,DCache持久性与Redis不同. 后者只是为了备份本地磁盘上的内存中的数据,以确保Redis重新启动后进行数据恢复.

“ Redis持久性主要用于数据备份. 在DCache后端具有之后,业务逻辑和后台数据可以完全分开. DCache本身将处理缓存和DB之间的数据一致性问题.

p>

DCache将连续将缓存中的数据降落到后端DB. 如果缓存中没有足够的存储空间,则将消除已登陆的冷数据. 在数据查询过程中,如果查询缓存未命中,将从中读取并再次存储在缓存中,以确保缓存中数据的热度和命中率. 同时也解决了和缓存的渗透问题.

分布式存储 开源_开源 分布式 文件系统_开源的分布式文件系统

此外,对于某些需要脱机数据分析的业务场景,将数据持久保存到后端的功能也很方便. 简而言之,您根本不需要关心数据,只需将数据写入Cache,后端登陆就由DCache处理. “

DCache功能

此外,DCache的分布式群集,异地映像部署和容灾能力将在实际的应用程序中提供非常高的价值.

一个使用它的地方

作为分布式存储系统,DCache的应用场景不仅限于缓存. 单宝银介绍说,DCache可用于具有高性能NoSQL存储要求的方案,并且由于DCache具有容量消除和自动到期清除功能,因此数据功能还可以为需要存储热数据的方案提供良好的支持(例如热门文章). )和临时数据(例如对时间敏感的聊天记录).

山宝银还提供了DCache性能数据:

目前,腾讯内部的近100家企业(包括QQ浏览器,应用程序宝藏,腾讯地图,腾讯计算机管家,移动管家和腾讯游戏)都已连接到DCache. 这些业务的数量是可以想象的. Baoyin补充说: “除了提供的简单数据外,DCache还支持近100家企业高效可靠地运作,平均每日通话量超过一万亿次,这也从侧面说明了DCache在生产环境中的性能. 和稳定性.

除了系统本身的高性能,高可扩展性,高可用性和数据安全性设计之外,用于Web可视化的高效O&M平台已成为DCache不可或缺的重要功能. 基于内存的NoSQL存储系统将在操作和维护方面产生巨大的额外开销. 它要求在关键时刻对相关技术和决定性决策有深入的了解.

DCache是​​基于TARS开发的,因此运维平台将DCache和TARS的服务管理集成到一个模块中. 单宝银介绍,运维平台将大大提高效率,降低运维门槛. 部署,上线,迁移,容量扩展,监视和配置等操作可以轻松实现.

腾讯背景的高级工程师单宝银,专注于分布式NoSQL存储领域的技术研发,参与腾讯多个自主开发存储系统的开发,在分布式系统,高可用性方有更多优势和高性能的服务. 丰富的经验.

自成立以来,小米鼠网一直专注于软件项目,人才招聘,软件商城等,始终秉承“服务,易用产品”的经营理念,“为客户提供高水平的服务”. 优质的服务和满足客户的需求. ““需求,共同创造双赢”是公司的目标,为中国公司提供国际,,个性化的软件项目解决方案. 我们公司拥有一流的项目经理团队,并具有出色的软件项目设计和实施能力. 为全国不同行业的客户提供优质的产品和服务,赢得了客户的广泛好评.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-201367-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...