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

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

须要注册才能够下载,能下载PDF版本。node

LinkIn开发者透露LinkedIn 99%都是用java写的,除了缓存经过C++实现。web

下面是详细架构图:

 数据库

能够看一下LinkedIn网站的基本状况:     一、2千2百万用户     二、每月4百万独立用户访问     三、天天4千万page view     四、天天2百万搜索流量     五、天天25万邀请发送     六、天天1百万的回答提交     七、天天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的架构演化:cookie

2003-2005     一、一个总体的web程序,     二、一个核心数据库,     三、在Cloud中缓存全部network图,Cloud是用来作缓存的独立server。     四、用lucene作搜索,也跑在Cloud中。网络

2006年    一、复制另一个数据库,减小直接load核心数据库,另一个server来管理非只读数据库的数据更新     二、把搜索从Cloud中移出来,单独一个server跑搜索     三、增长Databus数据总线来更新数据,这是经过分布式更新的核心组件,任何组件都须要Databussession

2008年     一、WebApp再也不任何事情都它本身作,把业务逻辑分红不少部分,经过server群来作。WebApp仍然提供用户界面给用户,可是,经过server群来管理用户资料,小组等等。     二、每一个服务有本身的域数据库     三、新的架构容许其余应用连接LinkedIn,好比增长的招聘和广告业务。架构

The Cloud    一、Cloud是整个架构最重要的部分,整个LinkedIn的网络图都缓存在Cloud里面     二、Cloud大小:22M nodes, 120M edges     三、须要12GB RAM     四、在生产环境要跑40个实例     五、从硬盘重建Cloud一个实例须要8个小时     六、Cloud经过databus实时更新     七、关闭时持久化到硬盘     八、缓存经过C++实现,用JNI调用,LinkedIn选择C++而不是Java有两个缘由:        1)尽量的减小RAM的使用        2)垃圾收集暂停会杀死整个系统,LinkedIn用了最新的GC程序,也就是就是说java的的垃圾搜集性能不太好     九、将全部东西放在缓存里面是一种限制,可是LinkedIn指出,分割业务图将更麻烦     十、Sun提供了2TB的RAM

Communication Architecture交流架构包括:

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

Scaling Techniques     一、经过功能来划分:发送,接受,文档等。     二、经过类别来划分:用户信箱,访问者信箱等     三、等级划分:用户ID等级,Email等级等     四、全部的操做都是异步的。

转自 http://www.wokaoo.com/2008/06/%E8%91%97%E5%90%8D%E7%A4%BE%E4%BA%A4%E7%BD%91%E7%AB%99lin

你可能感兴趣的:(java,社交平台,架构)