阅读更多

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、手机等多种移动终端接入,以文字、图片、视频等多媒体形式,实现信息的即时分享、传播互动。微博基于公开平台架构,提供简单、前所未有的方式使用户能够公开...

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

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

  • node-v14.17.3-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • c语言UDP传输系统源码.rar

    c语言UDP传输系统源码.rar

  • node-v16.2.0-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • 基于matlab多目标遗传算法matlab程序.rar

    基于matlab多目标遗传算法matlab程序.rar

  • MCSkinn (我的世界)皮肤制作工具

    软件可以给需要制作自己喜爱的MC皮肤的玩家来自己制作皮肤,快来下载吧!

  • 数据可视化-Pyecharts绘制饼图

    数据可视化-Pyecharts绘制饼图

  • 操作系统基础知识.zip

    操作系统是计算机系统中至关重要的组成部分,它作为计算机硬件与软件之间的桥梁,负责管理和控制计算机的硬件和软件资源,确保它们得到合理的分配和使用。操作系统不仅影响计算机的性能,还决定了用户界面的友好程度以及计算机系统的安全性和稳定性。因此,深入理解和掌握操作系统的知识对于计算机专业人士来说至关重要。

  • 欧母龙PLC例程源码小车控制程序

    欧母龙PLC例程源码小车控制程序提取方式是百度网盘分享地址

  • 么么哒.mp3

    么么哒.mp3

Global site tag (gtag.js) - Google Analytics