在2010年的QCon北京大会上,InfoQ的编辑对人人网产品技术高级总监黄晶进行了采访,其中他谈到了关于人人网从校内到现在所做的架构上的转变,还谈到了人人网创建并使用的两个开源项目。
黄晶,清华大学计算机系硕士,曾在天人互动游戏公司、空中网、千橡互动任职,现任千橡互动集团人人网产品技术高级总监,负责人人网产品规划和研发。投身 Web2.0和SNS事业,秉承以用户价值为核心的理念,推崇以简约架构取得最大收益的技术路线,积极推动互联网开放平台和开源项目的发展和应用,带领人人网产品技术团队,实现人人网的稳健高速发展。
InfoQ:大家好,经常上SNS社区的人,都应该知道校内网,而现在校内已经改名叫做人人了。今天我们有幸请到了人人网的黄晶老师,来跟我们分享一下人人网在技术架构方面以及他们最近做了两个开源项目相关的一些经验和知识。
黄晶老师你好。
黄晶(以下简称黄):InfoQ的朋友们大家好。
InfoQ:大家都知道,原来人人网的名字叫校内,而现在叫人人,从最早的校内到现在的人人网,在这个不断进展的过程中,您在架构上做了哪些改进呢?
黄:因为校内的发展过程非常迅速,几年之内翻了好多倍,它的技术架构也随着这个需求也有很大的变化。
在开始的时候,校内是使用比较简单、比较典型的技术方案来实现的一个架构。然后,随着规模的扩大和一些特殊的应用的场景的需要,我们逐步地、越来越多地用到了自己开发的一些系统,以及自己开发的一些框架。比如说我们有一套非常完善、非常庞大而完整的中间层系统和架构,还有用户处理的系统,这些都完全是由我们自己开发的,而没有其它可以借鉴的一些产品。这样的系统可能我们在几年的积累下,已经逐步完善。像存储,以前用的是简单的数据,分布式存储。而对于WEB开发的框架我们也根据自己产品的需要,开发了一套自己特有的WEB开发框架,其中有一些系统,我们考虑是为更多人所用,大家一起来完善它,就考虑把一些系统开源化,让大家一块把这些做得更好。
InfoQ:应该说人人网的技术实力方面应该是非常强,而且对技术方面的投入也非常大的。
黄:我们在技术方面做了非常大的投入,我们公司的文化叫做极致文化,就是特别赞赏那种钻在技术里面,不考虑其它事情,想把技术做到极致的那种人。
InfoQ:您以及您带领的团队里会有很多很多的这种人?
黄:对,我们很多人都是那种每天钻在技术里面非常陶醉的那种人,我们觉得如果想把SNS这个事情做好的话,是需要很多这样的人。
InfoQ:都是非常快乐的程序员,我想问一下咱们现在的架构您觉得里面做的比较完美,比较满意的是什么地方?
黄:我觉得我们有一个比较独特的、自己开发的中间层系统,这个系统完成了大量的后端服务器需要处理的一些工作,包括缓存,包括一些复杂的业务处理,包括搜索也集成在里面。这些系统都放在我们这样一个中间层系统里面,这个中间层系统本身具有高可用性,可以灵活的拓展,增加服务,增加相对性的服务,可以用很少的代码量来完成里面的很多的分布式管理和内存方面的分配管理,这些都做了很长时间的积累,这个可能是我们比较大的技术方面的积累。
InfoQ:那咱们维护工作平时复不复杂?
黄:维护工作还是有一定复杂度,因为我们的业务是不能中断的,我们经常有很多的维护工作,即使是你的系统设计可以在高可用性下切换,你也必须在低负载的情况下去切换,那样风险比较低,我们很多的工作就是,除了开发之外,还经常半夜里要更新系统,要切换服务器各个方面的管理工作,其实还是比较辛苦。如果把这件事做成自动化有很大的风险,因为里面有很多会误判的情况下会有一些振荡,这个风险很大,我们还是半自动的一个过程。
InfoQ:对咱们的用户特别负责的态度。
黄:我们工程师很多都是夜猫子。
InfoQ:那您觉得现在的系统里面会对有一些方面还不是很满意,需要改进的地方呢?
黄:我觉得我们现在是有一些地方我们的系统还需要完善,比如说在某一些数据一致性方面,我们在不同的地方之间还是不能保持很高的数据一致性,这样对以后变成多个机房工作镜像同步关系的时候,可能会有一些阻碍。我们将来的发展方向应该是会拥有多个核心节点的机房,我们要解决这个问题,首先就要解决数据一致性性,也就是数据同步方面的一些问题,这需要一个比较好的分布式系统的设计去完成。
InfoQ:也就是说以后咱们人人网的服务器,不一定全部集中在北京,可能集中在全国各地,然后大家协同来做分布式的操作?
黄:因为考虑如果是一个地方,现在地震比较频繁,如果是地震或者是火灾的话,你的核心节点不能只依赖一个地区。
InfoQ:我刚才跟那个黄晶老师交流的时候,黄晶老师提到,最近在做两个开源项目,这两个开源项目您给我们简单介绍一下吧?
黄:这两个项目其实也是我们在业务的需求下催生的,一个开源项目是分布式的key-value存储系统。这个项目其实有很多类似的开源项目,包括这个Cassandra等等,那么我们也是在经过需求分析之后,觉得这些项目多少都无法完全适合我们的场景,所以对于我们这个项目,我们把它做成一个比较灵活的,他下面的存储是可以用文件系统,可以用MySQL,也可以用Cassandra这样的系统,上层的管理要满足我们的需要,待会我会讲一下这个开源项目,我们也有这个开源项目的介绍,我们也有这个团队的一个博客,utc.renren.COM,大家感兴趣的话可以去看一下。另外一个我们打算开源的项目,是我们的一个Web开发框架,这个开发框架是Rest风格,比较简洁,比较适用于互联网的产品,它可以大大的减少开发controller这个层面的代码量,然后可以非常方便的去配置一些像O-R Mapping这样的机制,然后与它相结合。我们还有另外一个在Model层面的,很分散的、分片的大型数据库集群,当访问数据库的时候,也有和它结合很好的另外一个组件,将来如果是能够做的非常通用的话,可配置的话,我们也会考虑到开源。它是类似于MySQL Proxy访问数据库中间层的一个组件,它会负责把这些请求分发到数据库集群中。这几个结合起来,做比较规定规模的Web应用,应该是比较适合的。所以我们把这个项目开源,也是希望更多的人能够来使用和完善它,能够让更多的人在这个方面少走一些弯路,我们这几年探索过来,经过非常大量的重构。
InfoQ:您希望把你们宝贵的经验,宝贵的知识和全国甚至全世界的程序员一起来分享。
黄:因为我们也用到了很多开源的项目,基本上在开源这个框架上面做起来的,所以我们觉得这是一个很好的事情,大家一起分享一起来完善一些东西。
InfoQ:我想知道咱们的key-value系统,是基于什么样的需求呢?人人网和FACEBOOK,在什么地方差别特别大,导致咱们觉得他们那种解决方案不适合人人网呢?
黄:对于分布式系统,有一个理论叫CAP理论,有的系统可能在C和P方面做的比较好,这CAP三个,一个是高可用性,一个是节点容错性,一个是一致性,很难做到三个同时满足的,必须有折中。有的时候,有些系统在不同的取舍方面会有一些区别,这个区别就导致可能有时并不是非常适合,我们自己也希望能够对一个系统做到足够熟悉,在需要的情况下,我们可以直接去改造它的核心部分。基于这些考虑,我们就根据自己的需求,同时去学习别人的思想,做了一个新的系统。
InfoQ:在CAP这三个中间,做了针对人人网的最好的平衡。
黄:对。
InfoQ:好的,感谢黄晶老师接受我们的采访。谢谢!
黄:谢谢。
分享到:
相关推荐
人人网技术架构的发展历程可以追溯到2006年,起初采用的是Resin Pro作为Web服务器,配合MySQL InnoDB的主从结构,以及单一的Storage+Squid架构。随着用户量的增长,架构在2007年开始升级,引入了LVS、Resin Web集群...
迷人的等角螺线_黄晶.caj
基于多模态轨迹预测的智能车轨迹规划研究_黄晶
应用文写作(新编课件) (9)黄晶 应用文是党政机关、企事业单位、社会团体或个人为解决工作、生活中的实际问题而撰写并经常使用的具有惯性体式和实用价值的文章总称。
这通常指的是使用Cisco IOS(Internetwork Operating System)软件进行网络设备配置和网络架构模拟的学习活动。Cisco IOS是Cisco路由器和交换机的核心操作系统,用于实现网络通信和管理功能。在计算机实验课上,学生...
水晶的种类繁多,从广义上看,包括了白晶、粉晶、黄晶、茶晶、紫晶、紫黄晶以及各种颜色的幽灵水晶、发晶、兔毛水晶、石榴石、碧玺、橄榄石、海蓝宝、月光石、玛瑙、玉髓、托帕石、黑曜石、孔雀石、黄玉、绿东陵、绿...
水晶,自古以来一直是纯洁与神秘的代名词,它的美和内在寓意吸引着无数寻求美感与精神寄托的人们。水晶不仅在艺术和珠宝设计领域占有一席之地,同时也在科技领域发挥着重要作用。在信息技术飞速发展的今天,我们对...
黄晶和何娇霞老师的绘本教学,通过分享阅读教学法展现了教育信息化的魔力;周广华、朱爱华和孙利芳老师的单元整体教学,利用“手眼口”结合的方式,破解教学难点,提高了学生的参与度。这些示范课充分证明,合理利用...
3. **黄晶与玻璃的区别**:黄晶与黄色玻璃的快速区分方法可以利用密度差异。 4. **查尔斯镜的应用**:查尔斯镜下变红的宝石可能是红宝石。 5. **宝石内部特征**:钻石的后刻面棱重影是通过放大观察可发现的特征。 ...
其电饭煲产品以其智能控制和独特的黄晶蜂窝胆设计,提供更均匀的加热效果。同时,美的电饭煲还具备24小时预约定时、超宽屏液晶显示等先进功能,提升了用户的使用体验。然而,智能电饭煲的缺点主要在于其内胆材料可能...
8. **人际关系的建立**:提及帮助过自己的人,如“要感谢的是我的校友兼同事余芳同学,室友兼同事黄晶同学”,这展示了团队精神和感恩心态。 9. **个人特色**:分享一些个人特点,如“弓长张,克服困难的克,成功的...
东南位和西北位可以摆放紫水晶洞、黄水晶洞、黄晶球或白水晶球,以及六帝钱或八帝钱。西南位摆放富贵竹以生旺文昌星,而东北位、正西位和西南位适合放大型常绿植物。正北位、正西位和西北位则适合摆放开花或结果的...
【文档概述】 这篇文档主要介绍了各种天然水晶的灵性功能,包括它们在精神层面和物理健康方面的益处。这些水晶被视为具有特殊的能量属性,能够影响佩戴者的情绪、思维、健康和运势。以下是对各类型水晶功能的详细...
第三,水晶类雨花石有烟晶、茶晶、黄晶等,其中以紫晶最为珍贵;第四,玉髓类雨花石如葡萄状、钟乳状的乳白色玉髓,血玉髓特别罕见;最后,化石类雨花石中尤以珊瑚化石为珍贵,它不仅具有观赏价值,也对科学研究有着...
黄晶在其实习期间观察到,企业办公用品管理流程中存在诸多不便之处,手工操作不仅繁琐而且容易出错,影响了工作效率。为了改进这种状况,毕业论文提出开发一个办公用品管理系统,其核心功能包括商品管理、员工管理、...
文章的作者黄晶和刘知青分别来自北京邮电大学和北邮-九鼎计算机围棋研究所,他们对这两种算法的优缺点及适用范围进行了深入探讨。极大极小算法的优点在于理论清晰,容易实现,在棋类游戏中,当规则确定且对抗双方均...