阅读心得16:《豆瓣的基础架构》

本周阅读了老师推荐阅读的公众号:架构师中的推文《豆瓣的基础架构》,感想如下:

       豆瓣,从最早的一个类似于读书论坛开始,越做越大,到现在已经建立起来了一个完整的评论社区型社交网站。

豆瓣(douban)是一个社区网站。网站由杨勃(网名“阿北”) 创立于2005年3月6日。该网站以书影音起家,提供关于书籍电影音乐等作品的信息,无论描述还是评论都由用户提供(User-generated content,UGC),是Web 2.0网站中具有特色的一个网站。网站还提供书影音推荐、线下同城活动、小组话题交流等多种服务功能,它更像一个集品味系统(读书、电影、音乐)、表达系统(我读、我看、我听)和交流系统(同城、小组、友邻)于一体的创新网络服务,一直致力于帮助都市人群发现生活中有用的事物。

豆瓣的活跃人数是多少呢,查阅晚上的资料可知:

2012年8月,豆瓣宣布其月度覆盖独立用户数(Unique Visitors)已超过1亿,日均PV为1.6亿。 [1]  2013年第二、三季度的豆瓣月度覆盖独立用户数均达2亿,较去年同期增长一倍。到现在为止,活跃在豆瓣上的用户已超过3亿。

那么又是一个破亿级别的平台,通过阅读本片文章, 我了解,他的架构。

首先,豆瓣的定位,是专业的读书评论,电影评论,音乐评论网站,由于其公正公开的评论内容,其已成为业内标杆。

豆瓣所使用的主要计算平台是自己开发的分布式计算平台DPark。

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

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

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

扫描二维码关注公众号,回复: 6551918 查看本文章

在网上查阅了相关资料得知,该类型的数据非常适合存储评论等,使用这样的设计可使得豆瓣平台的性能发挥到最大化。

文中提到:豆瓣开发工程师使用的开发语言一般都是Python、C和Go。

最后的go语言我只是听过,并没有认真的了解。相信在大四上学期我一定会有所涉猎。

对我而言,我现在的主要目标是去学习,试着去理解软件架构中的知识,通过这两年的学习,我越发越清晰,软件不只是简简单单的写代码、改bug,之所以能称得上是软件工程,他必须符合工程所有的要求。从需求分析开始,从设计架构,设计软件的功能模块,软件测试、最后才是软件代码编写。在以后的学习中我会更加努力,学习软件架构。涉略相关知识,提上自己的能力,开拓自己的眼界。

本学期的课程已结束,我认为我自己收获了很多,在软件杯开发过程中,虽然没有进复赛,但是在开发过程中我们认真探讨了遇到的问题,努力学习知识,提高自己的编程水平,,将大问题分解为小问题,小问题解决。真的是老师所说的分而治之的原则。

文章地址:

https://mp.weixin.qq.com/s?__biz=MzA5NDI5MTgwMg==&mid=200664136&idx=1&sn=3e1949d70fd4ab1d5229492fc7d52f36&scene=21#wechat_redirect

猜你喜欢

转载自www.cnblogs.com/ljl1998/p/11056270.html