- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大规模网站架构
邱百超
badqiu(a)
• PHP
– facebook,yahoo
• Java
– taobao,163
• Python
– google
• .NET
– MySpace
语言不是可伸缩性的关键,架构才是关键
网站架构的目标
• 高可用性(High Availability)
• 可伸缩性(Scalability)
• 高性能(High Performance)
事务
传统的事务(ACID)
• 原子性(Atomicity )
• 一致性(Consistency )
• 隔离性(Isolation )
• 持久性(Durability)
CAP原则
• Consistency 一致性
• Availability 可用性
• Partition Tolerance分区耐受性
• 在任意时刻,只有两项能同时成立
• 不要浪费精力可能突破上面限制
可用性
一致性 分区耐
受性
新的事务策略-BASE策略
• 避免分布式事务
– 基本可用(Basically Available )
– 软状态(Soft state )
– 选择最终一致(Eventually consistent )
数据库读写分离
MySQL Proxy(数据库读写分离)
• load balancing
• failover
• query analysis
• R/W Splitting
数据库Shard
• 水平分区
• 垂直分区
Sharding vs Partition
Sharding Partition
存储依赖 可跨越DB 可跨越表空间,不同的物
可跨越物理机器 理属性
不能跨DB存储
存储方式 分布式 集中式
扩展性 Scale Out(横向扩展,增加便宜设备) Scale Up(升级设备)
可用性 无单点 存在单点(DB数据本身)
价格 低廉 适中,甚至昂贵
应用场景 web 2.0网站 多数传统应用
垂直分区
user
App DAL
blog
水平分区
user 33%
App DAL
user 33%
文档评论(0)