公告:网址大全导航目录www.btv85.com为各位站长提供免费收录网站的服务,VIP会员每天提交网站30、文章30免审核,快审服务(10元/站),可自助充值发布。

点击这里在线咨询客服 点击这里在线咨询客服
新站提交
  • 网站:223084
  • 待审:0
  • 小程序:16453
  • 文章:25726
  • 会员:223

今天BTV导航网的小编为你讲一下解析豆瓣的网站建设技术架构相关的内容。

2015127101627413.png (869×581)

豆瓣整个基础架构可以粗略的分为在线和离线两大块。在线的部分和大部分网站类似:前面用LVS做HA,用Nginx做反向代理,形成负载均衡的一层;应用层主要是做运算,将运算结果返回给前面的用户,DAE平台是这两年建起来的,现在大部分豆瓣的应用基本都跑在DAE上面了;应用后面的基础服务也跟其他网站差不多,MySQL、memcached、redis、beanstalkd,不一样的是NoSQL的选择——BeansDB,这是我们在几年前开源的KV数据库,也是国内比较早开源的KV数据库。


豆瓣的技术架构与主要组件

豆瓣作为一个早期就选择以Python为主要编程语言的公司,网站所使用到的技术很多都与Python相关,包括主要框架quixote、自行实现的DPark等等。在其它技术的选择上,并没有太大不同:nginx、MySQL、memcached、BeansDB、redis……都是知名开源项目。在这些开源项目之上,豆瓣根据自己产品的特性,针对性地做了配置与部署设置。

除了使用开源项目,豆瓣也根据自身需要自主研发或实现了一些产品,比较有特色的如DAE、DPark等等。

DAE全名Douban Application Engine,顾名思义它是一个类似于GAE、SAE的内部PaaS系统。使用这样的PaaS有很多好处,比如第三方库数量丰富并且支持多个版本并存、资源配置灵活等等,能够为工程师省去很多不必要的工作。

BeansDB是DAE中非常重要的一个组件,设计思想源于亚马逊的Dynamo,但是简化了Dynamo的一些复杂之处。BeansDB主要应用于小型文本和中型的图片、音频,它们的共同特点在于写次数特别少,这也正是BeansDB所擅长的领域。
DPark类似于Spark,是豆瓣用Python实现Map-Reduce类似框架。虽然Python的性能低于基于JVM的Clojure,但这样做避免了程序员程序员进入不熟悉的领域,而且豆瓣使用开源项目的原则是:如果无法完全掌握,宁可不用。“此外将Spark移植到Python上也很简单,基本上是一对一的翻译。

BeansDB项目可以说是一个简化版的AWS DynamoDB,该项目在2008年启动,2009年开源,第⼀版使⽤tokyo cabinet作为存储引擎,2010年使⽤bitcask存储格式重写了存储引擎,性能更好。BeansDB对key做哈希运算找到节点来实现分布和冗余, 一个写操作会写好几个节点,而现在的配置是写三份读一份。BeansDB主要的特点是支持海量KV数据库——相比Redis这种支持几十个G到几百个G的内存KV数据库,BeansDB可以支持到上百T的数据。另外BeansDB最大的好处就是运维很简单,性能、可用性、扩容都很好,也实现了最终一致性。
2015127101646178.png (667×479)

BeansDB中间的Proxy是用Go语言写的,也是一个开源的组件。整体来说BeansDB的设计结构比较简单,相比Redis那种有多种value 类型的方式,BeansDB的Value比较简单一些。

在豆瓣内部建立了两个不同的BeansDB集群,一个是doubandb,一个是doubanfs,分别针对不同的场景。doubandb主要存储小型文本数据,如影评、用户个人介绍、帖子内容等,这样的好处是可以大大降低我们对MySQL的性能依赖,算是给MySQL减负;doubanfs主要存放图片和音频等中型数据。

DAE可以说是基于很多以前积累的、旧的组件做起来的。我们做的这种对内的PaaS,相比对外的PaaS而言做了很多简化,尤其是安全方面如应用间隔离、权限管理方面,我们都不用像公有云那样花大量精力去做,所以工作量其实还好。DAE现在在计划开源,当然它现在只支持Python应用。以后我们也许会让DAE支持Go语言。

上面是在线的部分,对高可用性和低时延有较大要求。离线部分则包括数据挖掘、数据分析等,技术组件分别是海量分布式文件系统MooseFS,这个文件系统的结构类似HDFS,用C语言编写,其好处在于FUSE模块实现的比较好,用文件系统就可以直接进行操作,而不需要专门的命令,可以支持的数据量也很大。另外就是自己开发的分布式计算平台DPark。

DPark顾名思义是Spark的Python实现,不过现在已经跟Spark越来越不一样了。和 Hadoop 相比,Spark可以使用内存做为缓存加速分布式计算,DPark继承了这个优点,这对于大规模数据的迭代计算非常有用。在豆瓣的应用场景下,因为我们的离线计算很多是推荐算法计算,这种计算涉及大量的迭代算法,如果每次计算的结果都入磁盘再在下一轮计算加载,那性能是很差的,所以DPark能够大幅提升性能。另外,因为DPark的编写使用了函数式语言的特点,所以可以写的非常简洁:
2015127101701907.png (761×469)

通过对解析豆瓣的网站建设技术架构的详细介绍,希望对你有所帮助,我们提供了更多和解析豆瓣的网站建设技术架构类似的相关内容推荐,可以你更全面的帮助你解决问题。我们BTV85网址导航还提供网址收录服务,你可以注册提交你的网站信息,帮你引导搜索引擎蜘蛛,同时还有网站SEO优化交流微信群,里面很多SEO高手和大咖,加友链,可以免费进群。

解析豆瓣的网站建设技术架构同类内容推荐:
  • 弹壳特攻队公会玩法攻略解析

    弹壳特攻队公会系统即将上线,大家可以选择感兴趣的公会加入,和志同道合的小伙伴一起游戏。下面为大家带来最新 2023-08-04

  • 第七史诗丽希阵容组合解析

    第七史诗丽希阵容怎么搭配?丽希拥有单体高输出,就业配队广,可阵地可高速核爆。下面为大家带来第七史诗丽希阵容 2023-08-04

  • 隐秘的档案谁是我的孩子攻略解析

    隐秘的档案谁是我的孩子是一个恐怖关卡,床上和床下各有一个孩子,大家需要找出奇怪之处,做出选择。以下是隐秘的 2023-08-04

  • 第七史诗小泡芙装备组合解析

    第七史诗小泡芙定位为半肉半输出,面板类型为低速承伤,技能倍率拥有防御力加成。下面为大家带来第七史诗小泡芙 2023-08-03

  • 超级达人正义的光攻略解析

    超级达人正义的光是一个脑洞找茬关卡,图中有一个男人,大家需要找到家暴证据,惩罚家暴男。以下是btv85导航网带 2023-08-03

  • 幻塔拘兽玩法攻略解析

    幻塔拘兽是最新上线的休闲玩法,当玩家等级达到60级后,大世界中有概率出现可被捕捉的异兽,大家可以抓捕并养殖。 2023-08-03

  • 超级达人贵妇谜案攻略解析

    超级达人贵妇谜案是一个剧情关卡,一个女人在自家卧室不幸身亡,大家需要还原故事场景找出真相。btv85导航网为 2023-08-03

  • 戏怨第二章相思意攻略解析

    戏怨第二章相思意怎么过?这一章的难度有所上升,大家需要注意场景中的线索,联系线索进行解密。以下是详细的戏怨 2023-07-03

  • 长安幻想醉山打书攻略解析

    长安幻想醉山即土系熊猫,定位是嘲讽+轻微守尸的作用,吸收伤害也是一个亮眼表现。接下来为大家带来长安幻想醉 2023-06-27

  • 长安幻想稻神打书攻略解析

    长安幻想稻神是辅助系妖灵,技能可以选定一只主人的妖灵,在回合末将其召唤上场,自身退场。下面为大家带来详细的 2023-06-25

  •   admin

    注册时间:

    网站:0 个   小程序:0 个  文章:0 篇

    • 223084

      网站

    • 16453

      小程序

    • 25726

      文章

    • 223

      会员

    赶快注册账号,推广您的网站吧!
    热门网站
    最新入驻小程序

    小朋友猜谜语2021-05-24

    小朋友猜谜语是一款学习教育类的

    球比分2021-05-24

    球比分是一款体育运动类的小程序

    匠人名片2021-05-24

    匠人名片是一款交友社交类的小程

    知晴2021-05-24

    知晴是一款生活服务类的小程序应

    优惠券查询工具2021-05-24

    优惠券查询工具是一款其他工具类

    成语词典汉字拼音故事大全字典2021-05-24

    成语词典汉字拼音故事大全字典是