阅读更多

45顶
0踩

编程语言

 

强烈推荐:著名社交网站LinkedIn的Java架构技术

JavaOne 2008的会议上,著名社交网站LinkedIn的开发者做了2个关于LinkedIn

网站的架构技术的演讲,目前这两个演讲的PPT已经可以下载了。下载地址如下:

需要注册才可以下载,能下载PDF版本。

可以看一下LinkedIn网站的基本情况:

1。2千2百万用户
2。每个月4百万独立用户访问
3。每天4千万page view
4。每天2百万搜索流量
5。每天25万邀请发送
6。每天1百万的回答提交
7。每天2百万的email消息发送

这是一个世界顶尖级别流量的网站了,看看LinkedIn的系统架构:

    * 操作系统:Solaris (running on Sun x86 platform and Sparc)
    * 应用服务器:Tomcat and Jetty as application servers
    * 数据库:Oracle and MySQL as DBs
    * 没有ORM,直接用JDBC No ORM (such as Hibernate); they use straight JDBC
    * 用ActiveMQ在发送JMS. (It’s partitioned by type of messages. Backed by MySQL.)
    * 用lucene做搜索Lucene as a foundation for search
    * Spring做逻辑架构Spring as glue

下面是随着流量增加,LinkedIn的架构演化:

2003-2005
1。一个整体的web程序,
2。一个核心数据库,
3。在Cloud中缓存所有network图,Cloud是用来做缓存的独立server。
4。用lucene做搜索,也跑在Cloud中。

2006年
1。复制另外一个数据库,减少直接load核心数据库,另外一个server来管理非只读数据库的数据更新。
2。把搜索从Cloud中移出来,单独一个server跑搜索
3。增加Databus数据总线来更新数据,这是通过分布式更新的核心组件,任何组件都需要Databus

2008年
1。WebApp不再任何事情都它自己做,把业务逻辑分成很多部分,通过server群来做。WebApp仍然提供用户界面给用户,但是,通过server群来管理用户资料,小组等等。
2。每个服务有自己的域数据库
3。新的架构允许其他应用链接LinkedIn,比如增加的招聘和广告业务。

The Cloud
1。Cloud是整个架构最重要的部分,整个LinkedIn的网络图都缓存在Cloud里面
2。Cloud大小:22M nodes, 120M edges
3。需要12GB RAM
4。在生产环境要跑40个实例
5。从硬盘重建Cloud一个实例需要8个小时
6。Cloud通过databus实时更新
7。关闭时持久化到硬盘
8。缓存通过C++实现,用JNI调用,LinkedIn选择C++而不是Java有两个原因:
   1)尽可能的减少RAM的使用
   2)垃圾收集暂停会杀死整个系统,LinkedIn用了最新的GC程序,也就是就是说java的的垃圾搜集性能不太好
9。将所有东西放在缓存里面是一种限制,但是LinkedIn指出,分割业务图将更麻烦
10。Sun提供了2TB的RAM


Communication Architecture交流架构包括:

Communication Service

Communication Service是用来提供永久信息的,比如收件箱里面的消息和email
1。整个系统通过JMS异步通讯
2。客户端用JMS发送消息
3。消息通过路径服务器来到达相应的邮箱或者直接放到email进程中
4。消息发送:同时使用Pull主动寻求信息(如用户需要信息)和Push发送信息(如发email)
5。使用Spring和LinkedIn专业Spring插件完成,使用HTTP-RPC

Scaling Techniques
1。通过功能来划分:发送,接受,文档等。
2。通过类别来划分:用户信箱,访问者信箱等
3。等级划分:用户ID等级,Email等级等
4。所有的操作都是异步的。

 

推荐阅读:LinkedIn架构图:99%都是用Java写的

 

45
0
评论 共 29 条 请登录后发表评论
29 楼 shuaiji 2011-12-23 09:55
高手都是自己写ORM ,从来不用什么HIBERNATE
28 楼 itlangqun 2009-01-05 19:56
我没经验,看不懂啊
27 楼 kooen.chen 2008-09-13 23:05
小小网站吧,没什么值得探讨的吧!
26 楼 kingwang520 2008-07-16 17:25
引用
我也只喜欢 Spring不喜欢Hibernate。Spring提供了很多方便的功能,侵入性却很小。Hibernate只能做做小型程序差不多。


spring跟hibernate有互相可替代性???

好逗     

25 楼 myreligion 2008-07-07 13:55
才4千万PV而已,有必要搞得那么复杂嘛!

我们有个系统每天高的时候也有2000万PV,主业务数据表也有近2000万数据,都是基本的架构,做作分库,做作负载均衡也就完了,没必要搞得恁复杂!到4千万加点机器估计也就行了,楼主介绍的东西太过了~~~,而且“5。从硬盘重建Cloud一个实例需要8个小时”,要是Cloud机器挂掉了,重启下都要8小时,还不疯了!


24 楼 davidcen 2008-07-05 19:00
8。缓存通过C++实现,用JNI调用,LinkedIn选择C++而不是Java有两个原因:
   1)尽可能的减少RAM的使用
   2)垃圾收集暂停会杀死整个系统,LinkedIn用了最新的GC程序,也就是就是说java的的垃圾搜集性能不太好
9。将所有东西放在缓存里面是一种限制,但是LinkedIn指出,分割业务图将更麻烦

系统庞大到一定程度之后,着重考虑的就是性能问题,开发效率问题,倾向工厂化生产的趋势,代码产品要够简单,以遵循已经优化的策略,架构上呈现扁平化才能提高数据的加工效率.仅仅使用jdbc可以减少调优的方案,尤其是如此庞大的系统,使用orm那绝对要再头疼一次,结果肯定也是可以的,但是会很繁杂,花钱也会更多.这也说明了技术上长江后浪推前浪,不过还是姜是老的辣,沉淀的会更多.而从成本考虑,这个网站玩java估计成本会比php要高很多,不过谁让他有2kw有钱人用户呢,还是烧得起.

引用
再次证明了,java不适合做大型互联网程序,用户一多竟然要耗费12G多的RAM!


抨击一门语言是否要需要解决所有问题,如同使用低级语言来写网页一样可笑.
23 楼 kaituozhe6666 2008-07-05 16:04
22 楼 xo_tobacoo 2008-06-19 08:51
直接用JDBC No ORM (such as Hibernate); they use straight JDBC
-------这个应该非常关键吧!这么大的系统!无论用其他什么技术都是无比复杂的事。
21 楼 Wallian_hua 2008-06-18 11:00
是为了打造JAVA制做互联网应用的颠峰???
20 楼 neaton 2008-06-16 18:18
网速太慢,哪位有空传一下,coosuu@gmail.com
19 楼 ganyu21 2008-06-15 13:12
hibernate再加一个分布式二级cache,暴强无比!
18 楼 ganyu21 2008-06-15 13:11
12G怎么了?不就是多了几根内存条吗?总比用C的开发费用小很多吧,可维护性也好很多吧
17 楼 wym0291 2008-06-15 01:06
引用
再次证明了,java不适合做大型互联网程序,用户一多竟然要耗费12G多的RAM!用这么多内存,GC起来确实很可怕,不死才怪!另外,我也只喜欢Spring不喜欢Hibernate。Spring提供了很多方便的功能,侵入性却很小。Hibernate只能做做小型程序差不多。


.....相当经典的java盲人评论.....完全不懂GC的调优....
16 楼 vdgame 2008-06-08 16:48
引用
试试能不能直接下载

不能直接下载,但是放到迅雷里可以
15 楼 fxbird 2008-06-08 14:04
试试能不能直接下载:
http://s3.amazonaws.com/ppt-download/linkedinjavaone2008techsessioncomm-1211223608637383-9.pdf?Signature=bq3zR1KBX72YUJBtcR1J3zPFt9Y%3D&Expires=1212911935&AWSAccessKeyId=1Z5T9H8PQ39V6F79V8G2

http://s3.amazonaws.com/ppt-download/linkedinbofjavaone2008-1210975769299886-8.pdf?Signature=7mtRpPrZrBbz%2BgOjJcsJNOhyOOI%3D&Expires=1212911913&AWSAccessKeyId=1Z5T9H8PQ39V6F79V8G2
14 楼 fight_bird 2008-06-08 12:09
太复杂了,大型网站的架构一定要这么复杂吗?应该简化一点。
13 楼 galaxystar 2008-06-07 18:42
大型网站,复杂的业务,上亿PV的,谁会用ORM。搞笑
12 楼 runjia1987 2008-06-07 12:38
不用ORM,  仔细揣摩中。。。。。
11 楼 ahuaxuan 2008-06-07 10:29
引用

再次证明了,java不适合做大型互联网程序,用户一多竟然要耗费12G多的RAM!

结论太搞笑了,而且用户一多需要12g得内存也很正常得,2200w得用户信息随便放在什么地方都很占内存,而且人家也没有说这12g内存是放在什么地方的,一般都会放在memcached中或者其他什么地方,我还没有见过把这么多应用放在app中的呢
10 楼 allenny 2008-06-07 02:06
引用
再次证明了,java不适合做大型互联网程序


你倒是给介绍一种适合大型互联网程序的来看看。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 著名社交网站LinkedIn的Java架构技术.doc

    介绍著名社交网站LinkedIn的Java架构技术

  • java开发社交网站_(转)强烈推荐:著名社交网站LinkedIn的Java架构技术

    强烈推荐:著名社交网站LinkedIn的Java架构技术在JavaOne 2008的会议上,著名社交网站LinkedIn的开发者做了2个关于LinkedIn网站的架构技术的演讲,目前这两个演讲的PPT已经可以下载了。下载地址如下:LinkedIn - A ...

  • java 社交平台 架构_(转)强烈推荐:著名社交网站LinkedIn的Java架构技术 - 第4页...

    http://www.infoq.com/cn/interviews/MySpace-Architecture-Dan-Farino-cn#MySpace首席系统架构师Dan Farino谈论了超大线上社区的系统架构,以及构建这样一个系统所面临的各种挑战。由于MySpace几乎完全基于.NET ...

  • java 社交平台 架构_[转贴] 著名社交网站LinkedIn的Java架构技术

    在JavaOne 2008的会议上,著名社交网站LinkedIn的开发者作了2个关于LinkedIn网站的架构技术的演讲,目前这两个演讲的PPT已经能够下载了。下载地址以下:java须要注册才能够下载,能下载PDF版本。nodeLinkIn开发者...

  • 著名社交网站LinkedIn的Java架构技术

    在JavaOne 2008的会议上,著名社交网站LinkedIn的开发者做了2个关于LinkedIn 网站的架构技术的演讲,目前这两个演讲的PPT已经可以下载了。下载地址如下: LinkedIn - A Professional Social Network Built...

  • 社交网站LinkedIn的Java架构技术

    强烈推荐:著名社交网站LinkedIn的Java架构技术在JavaOne 2008的会议上,著名社交网站LinkedIn的开发者做了2个关于LinkedIn网站的架构技术的演讲,目前这两个演讲的PPT已经可以下载了。下载地址如下:LinkedIn - A ...

  • linkedin 架构_投票:您如何使用LinkedIn?

    linkedin 架构Business social network LinkedIn announced that they’ve turned on their OpenSocial-powered web applications platform. The site is keeping the focus strictly on business and productivity ...

  • SNS网站LinkedIn的Java架构技术

    在JavaOne 2008的会议上,著名社交网站LinkedIn的开发者做了2个关于LinkedIn网站的架构技术的演讲可以看一下LinkedIn网站的基本情况:1.2千2百万用户2.每个月4百万独立用户访问3.每天4千万page view4.每天2百万搜索...

  • 系统架构演进路线及战术分析(微博、LinkedIn)

    微博,是基于用户关系的社交媒体平台,用户可以通过PC、手机等多种移动终端接入,以文字、图片、视频等多媒体形式,实现信息的即时分享、传播互动。微博基于公开平台架构,提供简单、前所未有的方式使用户能够公开...

  • 云计算:从基础架构原理到最佳实践之:云计算大数据分析与处理

    笔者认为,《云计算:从基础架构原理到最佳实践之:云计算大数据分析与处理》一书可以作为云计算从基础原理到最佳实践的一本专业技术书籍,系统阐述了云计算大数据分析与处理的技术原理、方法论、核心组件,并且以...

  • [net毕业设计]ASP.NET基于BS结构的实验室预约模型系统(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

  • 中医诊所系统,WPF.zip

    中医诊所系统,WPF.zip

  • [net毕业设计]ASP.NET淘宝店主交易管理系统的设计与实现(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

  • 1-全国各省、297个地级市公路里程面板数据1999-2021年-社科数据.zip

    全国各省、297个地级市公路里程面板数据1999-2021年涵盖了中国各地区公路建设的详细情况,是衡量地区基础设施水平的重要指标。这些数据不仅包括了全国31个省份的公路里程,还深入到了297个地级市的层面,提供了从1999年至2021年的连续年份数据。这些数据来源于各省统计年鉴、经济社会发展统计数据库、地级市统计年鉴以及地级市发展统计公报,确保了数据的准确性和权威性。通过这些数据,可以观察到中国公路交通建设的发展不平衡性,沿海地区和长江中下游地区公路交通密度较高,而西部地区相对较低。这些面板数据为研究中国城市化进程、区域经济发展以及交通基础设施建设提供了宝贵的信息资源。

  • 技术处工作事项延期完成申请单.docx

    技术处工作事项延期完成申请单.docx

  • 数据库详细设计说明书中文最新版本

    本文为图书馆管理课程设计SQL Server功能规范说明书。本说明书将: 描述数据库设计的目的; 说明数据库设计中的主要组成部分; 说明数据库设计中各功能的实现。 本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象直接的关系);在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备份策略,为数据库管理员维护数据库安全稳定地运行提供参考;有需要的朋友可以下载看看

  • WebSocketError(解决方案).md

    项目中常见的问题,记录一下解决方案

  • octopart(样本).csv

    octopart数据格式样例

  • [net毕业设计]ASP.NET通用作业批改系统设计(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

Global site tag (gtag.js) - Google Analytics