找回密码
 FreeOZ用户注册
查看: 2095|回复: 11
打印 上一主题 下一主题

Linkedin网站技术架构简介

[复制链接]
跳转到指定楼层
1#
发表于 14-5-2009 13:14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
在JavaOne 2008的会议上,著名社交网站LinkedIn的开发者做了2个关于LinkedIn网站的架构技术的演讲

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); th** 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程序
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 所有的操作都是异步的。

PPT分享:

   1. LinkedIn Communication Architecture http://www.slideshare.net/linked ... m?type=presentation
   2. LinkedIn - A Professional Network built with Java Technologies and Agile Practices http://www.slideshare.net/linked ... ure?type=powerpoint

原文地址: http://www.liyingfei.com/read.php/9.htm

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

2#
发表于 14-5-2009 13:36:15 | 只看该作者
从知名网站的发展史可以看出

最初的技术路线并不重要

你可以用任何技术写出明天的flickr,linkedin和ebay

如果有明天的话
回复  

使用道具 举报

3#
 楼主| 发表于 14-5-2009 13:38:09 | 只看该作者
用微软的技术是个例外,不是说技术达不到,而是规模扩大,费用承受不起。
回复  

使用道具 举报

4#
发表于 14-5-2009 13:51:42 | 只看该作者

回复 #3 flyspirit 的帖子

有可能

不过规模大了以后,数据可以迁移,应用可以重写

赢家通吃,大了机会就多了

明天的linkedin们,先用微软的架构也未尝不可
回复  

使用道具 举报

5#
 楼主| 发表于 14-5-2009 15:34:21 | 只看该作者
有不少网站大了并不一定赚钱,资源紧张的时候重写就比较伤筋动骨。
回复  

使用道具 举报

6#
发表于 14-5-2009 16:52:04 | 只看该作者

回复 #5 flyspirit 的帖子

大了不一定赚钱,没错

但是,大了却没有想赚钱的人给你钱的话,需要反思的就不只是技术问题了
回复  

使用道具 举报

7#
发表于 14-5-2009 18:19:42 | 只看该作者
tomcat这么牛啊
回复  

使用道具 举报

8#
发表于 14-5-2009 19:15:43 | 只看该作者

说系统支撑架构可能最强还是中国的ICP

腾讯、网易之流,我相信在这方面,他们是世界一流的,无他,
中国的用户真的多。

所以我一直对腾讯的服务架构很认可,无论如何,
你很难在别的公司找到这样的规模应用。
回复  

使用道具 举报

9#
发表于 14-5-2009 19:22:22 | 只看该作者

回复 #8 key 的帖子

是,才能都是bee出来的
回复  

使用道具 举报

10#
发表于 14-5-2009 19:33:17 | 只看该作者
LinkedIn的domain和QQ/网易是不同的

其实每家的情况不一样(现金,用户规模,投资者压力), 光比较规模没什么意义
回复  

使用道具 举报

11#
发表于 14-5-2009 19:35:54 | 只看该作者
回复  

使用道具 举报

12#
发表于 14-5-2009 19:51:42 | 只看该作者
我刚注册了一个账户
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 24-2-2025 04:46 , Processed in 0.038448 second(s), 31 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表