【SDCC讲师专访】阅文集团帅翔:从0到1落地分布式存储系统架构

本文主要是介绍【SDCC讲师专访】阅文集团帅翔:从0到1落地分布式存储系统架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编者按】每个人的成长曲线不同,有的人在研究生之时就已有相当知名的产品和框架,从而在接下来的工作中一路顺风顺水,有的人缺需要经历一个又一个的坑才能成长,不管是前者的聪明高效,还是后者的笨鸟先飞,他们都是在迈着脚步不断地向前。不妨,我们停下脚步看下一些同行,以激励自己更好地前行。

图片描述

2017年6月10-11日,SDCC 2017将在创新之都深圳火热开启。据悉,阅文集团内容平台中心存储系统架构师将在SDCC 2017·深圳站之互联网应用架构实战峰会带来题为《PB级去内存化分布式缓存系统Lest的架构设计与实践》的分享,更多峰会嘉宾和议题请点击这里。

以下为专访正文:


图片描述

【嘉宾】帅翔,毕业于上海大学计算机专业,目前就职于阅文集团内容中心,主要负责分布式文件系统的研发工作。关注分布式系统、数据存储、网络编程、Linux系统,机器学习等相关领域。

CSDN:请先和大家介绍下您和目前所从事的工作,以及关注哪些技术领域?

帅翔:目前就职于阅文内容中心,主要负责分布式存储系统的研发工作,目前我们正在研发一款分布式的缓存系统,主要用于解决当前基于redis的缓存系统需要占用大量内存的问题,这是一个有趣的项目。我当前主要关注分布式系统,数据存储,网络编程等相关技术领域,当前非常火热的机器学习,数据挖掘等领域也有所关注,大数据存储技术的发展是推动当前人工智能技术不断前进的动力之一。

CSDN:一路走来,在技术的路上有什么特别的学习趣事分享?同时,您也可以谈谈自己的学习方法等。

帅翔:应该说我是一个幸运的人,毕业后的第一份工作就能跟随业内前辈参与到分布式存储系统的研发当中。不得不说,分布式存储系统的研发是非常具有挑战性的,不仅要求研发人员需要跟进了解最新的研究成果,还需要有扎实的网络编程,操作系统,数据结构等基本功。从当初只会Hello World的应届小白,到如今实现第一个分布式的去内存化缓存系统,当中需要耐得住寂寞,不断的看书,看文章,当然更离不开前辈的鞭策和引导,哈哈。

CSDN:一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,能分享下你眼中的分布式系统是怎样的?

帅翔:分布式是一个概念,是分散的,低耦合的,灵活的,甚至是异步的,但是都有一个共同的目的,它的相对概念是集中式。从这个角度来讲,我们只要把原本集中的大功能体分解成小的能独立运转的行动单元,并且这些单元之间能相互配合,来完成某一功能。我们日常的生活中的有很多分布式系统,公共交通系统、分布式能源系统(电网系统)、军队系统,大到以我们人为单元的人类社会系统,小到小朋友喜欢的乐高积木,这些都是分布式系统,只是体现的形式不同罢了。以军队系统为例,一只训练有素的军队,能够统一协调,相互支援,动态扩充来完成特定的作战任务。而且这一切对人民来讲是透明的,他们只需要知道战争的结果。从分布式系统的角度来说,各个节点之间需要保证负载均衡,数据同步以及容灾。同时分布式系统可以灵活的扩展,和裁撤节点资源。从用户的角度来讲,分布式系统后面的一切操作都是透明的,他们只关心他们的操作是成功还是失败。

CSDN:分布式系统有哪些优势以及会面临怎样的挑战?

帅翔:在传统软件行业,如银行业,金融保险业,往往都使用一些稳定性高,高度集成的信息系统,但是这些系统往往兼容性差,不容易扩展,而且需要通过机器的质量来保证系统的可靠性,所以银行,金融保险都喜欢用高性能的,高质量的昂贵机器。而在很多互联网企业中,机器的成本总是一个难以忽略的因素,因此需要采用大量的廉价机器来提供服务,因此,对我们来说,机器是不可靠的,我们需要通过系统来保证可靠性。同时,互联网的服务请求有可能会呈现井喷性的增长,这样就需要互联网企业提供性能可扩展的服务,能过随着机器的增加而提高系统的吞吐量。

在这些条件的限制下,分布式系统在互联网生态中的优势不言而喻,组织灵活,扩展方便,容错性强,而且可以利用廉价机器,降低成本,保证企业的竞争力。然而凡是分布式系统也并非十全十美,它仍然逃不出CAP的宿命,就看你是选择Availability还是选择Consistency。保证可用性,就是更佳考虑用户的感受,需要在用户可以忍受的一定时间内返回结果,可以成功,也可以失败,至少让用户知道你还活着,但它往往需要在一致性上做出妥协,因为分布式节点之间的沟通也需要时间,如果在短时间内就要返回结果,那么节点之间的一致性就很难得到保证;相反如果要保证一致性,就需要在可用性上做出让步,那就需要等分布式节点之间沟通完成之后,才能向用户返回结果,而期间可能会花费大量的时间,让用户等地不耐烦。选择可用性的有亚马逊家的Dynamo、FaceBook家的Cassandra等。保证一致性的有Google家的BigTable,以及MongoDB等。当然还有一些折衷的选择方案,如最终一致性,它既考虑了用户感受可以在短时间内返回结果,又可以保证数据的最终状态,在一些实时性要求不苛刻的系统中已经得到广泛应用。如DNS系统就是一个很好的例子。

CSDN:分布式系统的架构体系很庞大,包括传统的基于对象的体系结构、SOA,也包括最近比较火的RESTful风格架构、微服务、容器技术、Serverless架构等,这一块您研究比较深的是?有哪些心得和体会可分享?

帅翔:其实SOA、RESTful、微服务、Serverless之类的架构,从架构来说,都差不多,早期使用SOA,以及后来的微服务还是无服务,都是为了从远程获取服务,只是方法和粒度上发生了变化,表现的越来越轻量,更加倾向于分布式,去中心化。不能说微服务,无服务这是都是新出来的技术概念,就很高端,每个架构都有合适它的业务,如果业务在发展的初期一些很简单的集中式架构就能很好的满足需求,随着业务的不断增长,可能需要SOA这些RPC框架来提供分布式服务,再到后期,可以抽取其中的核心服务,构成微服务,有针对性的来提高性能,加强系统的稳定性,由于服务之间是独立存在的,方便升级维护。

图片描述

服务架构的发展

我们现在主要通过Restful框架来提供接口服务,目前看来,稳定性,效率,都还不错,接口开发方便,而且各个接口服务之间相互独立,互不影响,有效的强化了业务系统的稳定性。

CSDN:分布式监控方面常用的技术,也包括Nagios、Zabbix、Consul、ZooKeeper等,在监控方面有什么心得?

帅翔:在分布式系统中,如果保证各个节点之间协同工作非常重要,Zookeeper、Chubby等就是在系统中充当这样一个统筹全局的角色,保证系统中的各个节点有条不紊的完成任务。在我们的分布式缓存系统Lest中也有一个类似的角色——Lax,Lest可以根据key来Lax获取当前的最新ID,它用于保证各Lest节点间版本的一致性。Lax本身也是分布式的,因此它的性能和可靠性可以得到保证。Lax强调的是一致性,因此严格意义上来说,它是一个CP系统。不过我们通过NWR策略来改善了它的可用性。

CSDN:本次在SDCC 2017·深圳站上分享的主要内容是?给受众会带来什么?

帅翔:本次SDCC大会上,我将会跟大家分享我们团队最近研发的一个有趣的分布式缓存系统。如今市面上比较流行的缓存系统,如Redis等都是基于内存的,因此在做全量缓存时需要耗费大量内存。我们在保证基本性能需求的情况下,开发了一款去内存的分布式缓存系统,毕竟目前内存比磁盘要贵的多。


图片描述

SDCC 2017•深圳站将于2017年6月10-11日登陆深圳,拥有互联网应用架构实战峰会大数据技术实战峰会两大峰会,秉承干货实料的内容原则,汇聚业内顶尖架构师和数据技术专家,共话架构、大数据热点话题,深度解析技术难点和落地思考,带你高台起步,走近技术圈的浮生万象。八折抢票通道现已开启,详情点击注册参会。

这篇关于【SDCC讲师专访】阅文集团帅翔:从0到1落地分布式存储系统架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/429109

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

开源分布式数据库中间件

转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代。如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷。 MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到“云”端

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

【系统架构设计师】黑板架构详解

黑板架构(Blackboard Architecture)是一种软件架构模式,它模仿了多个专家系统协作解决问题的场景。在这种架构中,“黑板”作为一个中央知识库,存储了问题的当前状态以及所有的解决方案和部分解决方案。黑板架构特别适合于解决那些没有确定算法、需要多个知识源(或称为“专家”)共同作用才能解决的复杂问题。 一、黑板架构的组成 黑板架构主要由以下几个部分组成: 黑板(Blackboa

laravel框架实现redis分布式集群原理

在app/config/database.php中配置如下: 'redis' => array('cluster' => true,'default' => array('host' => '172.21.107.247','port' => 6379,),'redis1' => array('host' => '172.21.107.248','port' => 6379,),) 其中cl

基于MySQL实现的分布式锁

概述 在单机时代,虽然不需要分布式锁,但也面临过类似的问题,只不过在单机的情况下,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制,即当某个线程获取到这个资源后,就立即对这个资源进行加锁,当使用完资源之后,再解锁,其它线程就可以接着使用了。例如,在JAVA中,甚至专门提供了一些处理锁机制的一些API(synchronize/Lock等)。 但是到了分布式系统的时代,这种