Facebook技术架构
来源:互联网 发布:php closure类 编辑:程序博客网 时间:2024/04/28 00:21
MySQL,Multifeed (a custom distributed system which takes the tens of thousands of updates from friends and picks the most relevant), Thrift, Memcached,Operations.
Much of Facebook’s interactive features are powered by AJAX,
Horizontal scalability enabled via load balancing (to pick a web server to handle the request, other purposes: to protect DoD)
to separate “write” databases from “read” to enhance the scalability of its application architecture:“Page Routing” but most of us in the industry call “Layer 7 Switching” or “Application Switching”
Modern applications must be deployed and delivered collaboratively with infrastructure if they are to scale and support growth in an operationally and financially efficient manner.
Facebook message:
Layered
Service/API Driven
Distributed
Separate Application Logic
Stateless (State is kept in a database ties, caching tier or other services)
Scalable Component Services
Full Stack Ops(all kinds of tools)
Celled (A cell consists ofZooKeeper controllers, an application server cluster, and ametadata store. ) ZooKeeper. ZooKeeper is used for high availability, sharding, failover, and services discovery.
Real-time analytics System
HBase - 20 Billion Events/Day
Hbase + Scribe + Ptail + Puma
php(frontend) + java(backend)
Thrift
Software: http://royal.pingdom.com/2010/
PHP+Linux+MySQL(primarily as a key-value persistent storage)
Haystack, a highly scalable object store used to serve Facebook’s immense amount of photos, or Scribe, a logging system that can operate at the scale of Facebook
Memcached between web servers and MySQL
HipHop converted PHP into C++ Code
Haystack is Facebook’s high-performance photo storage/retrieval system (strictly speaking, Haystack is an object store
BigPipe is a dynamic web page serving system that Facebook has developed.
Facebook uses Cassandra for its Inbox search
Scribe is a flexible logging system that Facebook uses for a multitude of purposes internally.
Facebook uses Hadoop & Hive for data analysis
Thrift is an internally developed cross-language framework that ties all of these different languages (PHP, Erlang, Java and C++) together, making it possible for them to talk to each other.
Varnish is an HTTP accelerator which can act as a load balancer and also cache content which can then be served lightning-fast.
Gradual releases and dark launches
XHProf->Profiling
like many other big sites, Facebook uses a CDN to help serve static content
You can get the code right, you can get the products right, but you need to get the culture right first. If you don't get the culture right then your company won't scale.
Overall architecture has 4 main components: Load Balancer, Web Servers (written in PHP), Services (fast, complicated, search, ad, scribe), Memcached (fast, simple), Databases (slow, persistent).
There are no product owners at Facebook
http://highscalability.com/
http://www.infoq.com/
参考:http://www.infoq.com/presentations/Facebook-Software-Stack
- facebook技术架构
- Facebook技术架构
- Facebook图片存储架构技术全解析
- Facebook图片存储架构技术全解析
- Facebook图片存储架构技术全解析
- facebook图片存储架构技术全解析
- Facebook图片存储架构技术全解析
- Facebook技术架构以及相关漏洞资料
- Facebook大数据技术架构的演进路线
- Facebook 架构学习
- Facebook 架构学习
- Facebook 架构学习
- Facebook 架构学习
- Facebook架构简述
- Facebook 的系统架构
- Facebook 的系统架构
- Facebook的服务器架构
- Facebook 的系统架构
- 字符串的最长公共子序列问题
- Struts1.x 常用标签及属性
- C/C++程序员必须熟练应用的开源项目 -- 转
- ibatis dynamic的用法
- Nagios+pnp4nagios+rrdtool 安装配置nagios(一)
- Facebook技术架构
- 设计模式(五)适配器模式Adapter(结构型)
- <转>根据泛型生成数组 与数组 List相互转换的方法
- c++ 按行读取txt文本
- Python中的值转字符串
- 盒子大跃进年代到来 细数单双核四核的优缺!
- Windows 程序设计 第二十一章 DLL中共享内存数据
- SlidingMenu
- sql函数大全