各个大公司系统架构汇总:google,amazon,linkedin,淘宝,新浪微博,百度(注:相关文献百度文库可搜索)
来源:互联网 发布:索尼z1刷windows系统 编辑:程序博客网 时间:2024/06/06 20:58
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。所有的操作都是异步的。
新浪微博架构设计:
人人网feed设计 http://news.csdn.net/a/20100726/277273.html
新浪微博设计 http://www.slideshare.net/iso1600/cache-4842490
新浪杨卫华:谈微博Cache设计 http://john521.iteye.com/blog/779695
微博架构与平台安全演讲稿 http://timyang.net/architecture/weibo/
web缓存 http://www.slideshare.net/jeffz/web-2026379
微博后台架构浅析 http://hi.baidu.com/leolance/blog/item/79870ba9d7d2c4134b36d6ab.html
LRU缓存算法实例分析 http://www.cnblogs.com/onlytiancai/archive/2009/07/22/wawa_lru.html
赵振平:项目成败取决于数据库架构设计 http://tech.chinaunix.net/a2011/0416/1178/000001178961.shtml
常用缓存算法简介 http://www.blogjava.net/DL88250/archive/2011/01/21/343327.html
基于LRU淘汰的高性能缓存简单实现 http://www.cnblogs.com/yiway/archive/2011/07/15/High_Performance_Cache.html
用Twitter的cursor方式进行Web数据分页 http://timyang.net/web/pagination/
关于outbox缓存,最近200条记录总是被缓存而不删除(HOT CACHE),以及历史记录的LRU缓存(ARCHIVE CAC
- 各个大公司系统架构汇总:google,amazon,linkedin,淘宝,新浪微博,百度(注:相关文献百度文库可搜索)
- 百度知识搜索部--文库
- “百度文库”发微
- 百度文库
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 国内各大互联网公司相关技术博客3.0版 (集合腾讯、阿里、百度、搜狐、新浪、网易、360等共29个)
- [搜索]Lucene仿百度文库文件检索系统
- google 百度 等 搜索
- 百度&google搜索 语法
- 平均背景法
- [Salesforce] 关于Trigger 的使用(防止死循环)
- 编写高效的Android代码
- TCP协议三次握手过程分析
- mysql自动断开连接的问题(从数据库端处理方案)
- 各个大公司系统架构汇总:google,amazon,linkedin,淘宝,新浪微博,百度(注:相关文献百度文库可搜索)
- MVC学习纪要
- 利用堆实现优先级队列博文
- 实习第51天
- HDU 1384 Intervals
- C#如何运行CMD命令?
- JAVA JNI介绍
- 一天一总结
- Linux内核学习和研究及嵌入式(ARM)学习和研究的开放文档