2021-01-05 09:23:00 阅读(152)
豆瓣的整个基础设施大致可以分为在线和离线两部分。在线部分类似于大多数网站:LVS作为HA,Nginx作为反向代理,形成负载平衡层;应用层主要用于计算,并将计算结果返回给以前的用户。DAE平台是在过去两年建立的,现在大多数豆瓣应用程序基本上都在DAE上运行;应用程序背后的基本服务与其他网站相似,MySQL、memcached、redis、beanstalkd,不同的是NoSQL的选择——BeansDB,这是我们几年前开源的KV数据库,也是国内较早开源的KV数据库。豆瓣的技术结构和主要部件豆瓣作为一家早期选择Python作为主要编程语言的公司,网站使用的许多技术都与Python有关,包括主要框架quixote、DPark等自行实现。其它技术的选择没有太大区别:nginx、MySQL、memcached、BeansDB、redis...都是知名的开源项目。其它技术的选择没有太大区别:nginx、MySQL、memcached、BeansDB、redis...都是知名的开源项目。在这些开源项目中,豆瓣根据自身产品的特点进行了有针对性的配置和部署。除了使用开源项目外,豆瓣还根据自己的需要独立开发或实现了一些产品,如DAE、DPark等等。顾名思义,DAE全名Doubanaplicationengine,类似GAE、SAE内部PaaS系统。使用这种PaaS有很多好处,比如第三方库数量丰富,支持多个版本并存,资源配置灵活,可以为工程师节省很多不必要的工作。BeansDB是DAE中非常重要的组成部分,其设计理念起源于亚马逊的Dynamo,但简化了Dynamo的一些复杂性。BeansDB主要用于小文本、中型图片和音频,其共同特点是写作次数特别少,这也是BeansDB擅长的领域。DPark类似于Spark,是豆瓣用Python实现Map-Reduce的类似框架。虽然Python的性能低于基于JVM的Clojure,但它避免了程序员进入不熟悉的领域,豆瓣使用开源项目的原则是:如果你不能完全掌握它,你宁愿不使用它。"另外,将Spark移植到Python上也很简单,基本上是一对一的翻译。BeansDB项目可以说是AWSDynamoDB的简化版,该项目于2008年启动,2009年开源,排名第一⼀版使⽤作为存储引擎,tokyocabinet于2010年使用⽤bitcask存储格式重写存储引擎,性能更好。BeansDB为key做哈希运算,找到节点来实现分布和冗余,一个写作操作会写几个节点,而现在的配置是写三份读一份。BeansDB的主要特点是支持大量KV数据库——BeansDB可以支持数百T数据,而Redis是一个支持数十G到数百G的内存KV数据库。此外,BeansDB最大的优点是操作和维护非常简单,具有良好的性能、可用性和扩展性,并实现了最终的一致性。BeansDB中间的Proxy是用Go语言写的,也是一个开源组件。总的来说,BeansDB的设计结构比较简单,BeansDB的Value比Redis的Value简单。在豆瓣内部建立了两个不同的BeansDB集群,一个是doubandb,另一个是doubanfs,针对不同的场景。doubandb主要存储小型文本数据,如影评、用户个人介绍、帖子内容等,可以大大降低我们对MySQL的性能依赖,减轻MySQL的负担;doubanfs主要存储图片和音频等中型数据。可以说,DAE是基于许多以前积累的、旧的组件。与外部PaaS相比,我们所做的内部PaaS做了很多简化,特别是在安全方面,如应用间隔离和权限管理。我们不必像公共云那样花费大量精力,所以工作量实际上是好的。DAE现在计划开源,当然现在只支持Python应用。在未来,我们可能会让DAE支持Go语言。以上是在线部分,对高可用性和低延迟有很大的要求。离线部分包括数据挖掘、数据分析等。技术组件是大量分布式文件系统Mosefs。该文件系统的结构与HDFS相似,用C语言编写。其优点是FUSE模块实现良好,可直接用文件系统操作,无需特殊命令,可支持大量数据。此外,DPark是自己开发的分布式计算平台。顾名思义,DPark是SparkPython的实现,但现在与Spark越来越不同了。与Hadoop相比,Spark可以使用内存作为缓存加速分布式计算,DPark继承了这一优势,对大规模数据的迭代计算非常有用。在豆瓣的应用场景中,由于我们的许多离线计算都是推荐的算法计算,因此该计算涉及到大量的迭代算法。如果每个计算结果都进入磁盘,然后在下一轮计算中加载,则性能非常差,因此DPark可以大大提高性能。另外,由于DPark的编写采用了函数语言的特点,所以可以写得很简洁:
以上就是关于豆瓣在数据库和集群方面的架设中的亮点的相关介绍,更多豆瓣在数据库和集群方面的架设中的亮点相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对豆瓣在数据库和集群方面的架设中的亮点有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一