版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大规模网站架构邱百超badqiu(a)PHPfacebook,yahoo Javataobao,163 Pythongoogle.NETMySpace语言不是可伸缩性的关键,架构才是关键网站架构的目标高可用性(High Availability)可伸缩性(Scalability)高性能(High Performance)事务传统的事务(ACID)原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)CAP原则Consistency 一致性 Availability 可用性Partition Tolerance分区耐受性在任意时刻,
2、只有两项能同时成立不要浪费精力可能突破上面限制可用性一致性 分区耐受性新的事务策略-BASE策略避免分布式事务基本可用(Basically Available)软状态(Soft state)选择最终一致(Eventually consistent)数据库读写分离MySQL Proxy(数据库读写分离)load balancingfailoverquery analysisR/W Splitting数据库Shard水平分区垂直分区Sharding vs PartitionShardingPartition存储依赖可跨越DB可跨越物理机器可跨越表空间,不同的物理属性不能跨DB存储存储方式分布式集中
3、式扩展性Scale Out(横向扩展,增加便宜设备)Scale Up(升级设备)可用性无单点存在单点(DB数据本身)价格低廉适中,甚至昂贵应用场景web 2.0网站多数传统应用垂直分区userblogAppDAL水平分区user 33%user 33%AppDALuser 34%水平分区DAL(数据访问层)对应用透明的使用数据库的水平分区及垂直分区DAL Proxy(实现1)应用DAL 服务器useruserDAL API(实现2)应用DALuseruser两种实现方式独立的DAL Proxy服务器MySQL: AmoebaPostgreSQL: PL/Proxy (Skype)DAL API
4、Java: Hibernate Shard,Ibatis Shard,HiveDBPython: Pyshardsshard改变数据库设计尽量避免join数据冗余/反范式数据冗余 for shardshard beforecomment(id,blog_id,content)shard aftercomment(id,blog_id,content,user_id)数据分区策略水平分区2 * N(如定单,购买者与网店各一份)N / n (按日期或ID范围分区)hash(N) % n( 按hash分)查找表垂直分区按功能分(论坛,博客)消息队列(MessageQueue)程序解耦隔离消息的可靠传
5、输(物理存储中转消息)ACBMQMQ消息总线应用场景耗时操作邮件发送/短消息发送日志程序解耦(A挂了,但B继续可以使用)MQ产品开源RabbitMQ(Erlang)ActiveMQ(JAVA)商业IBM MQWebLogic MQ回顾CAP及BASE可用性一致性 分区容忍性负载均衡DNS负载均衡反向代理负载均衡直接路由failoverDNS负载均衡简单缺少灵活性(DNS缓存)D:pythonDjango-1.1.1nslookup Server: Address: 0Non-authoritative answer:Name: Addresses: 4, 12, 0, 1Aliases: 反向
6、代理负载均衡负载均衡软件nginxHAProxyapache httpdLVS(网络第四层工作)F5(硬件,四层/七层)Linux Virtual Server(LVS)网络地址转换(NAT):VS-NATIP隧道方式:VS-TUN直接路由方式:VS-DR其它工作模式Virtual Server via NAT(VS-NAT)用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP 地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流
7、量经过转换器。Virtual Server via IP Tunneling (VS-TUN)用IP隧道技术实现虚拟服务器。这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法。为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。 集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等Virtual Server via Direct Routing(VS-DR)用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接
8、送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。高可用性使用双机热备故障时切换至备份机工具(Linux-HA)heartbeat缓存让数据更靠近用户DataBaseMemchchedApp CachePage Cache/StaticBrowse CacheThreeParty CDN本地缓存节点有状态,状态更新需要同步至其它服务器可以使用组播方式通知数据改变需要通知的服务器过多会存在性能问题比远程缓存更高性能慎用,不具备可伸缩性Share Nothing Architecture无共享架构数据缓存(memchched)动态内容缓存浏览器缓存数据缓存分布式memchch
9、ed基本满足大部分性能要求动态内容缓存页面片段缓存静态化内容反向代理缓存squid 巨无霸Varnish反向代理缓存Varnish 缓存tomcatNginx负载均衡静态资源分离img,js,css使用单独的服务器处理请求apache httpdtomcat浏览器静态资源静态资源动态请求动态请求动态请示动态请示现实网站图片存储分析http:/img3.http:/b9.http:/http:/t3.图片服务器的域名不同多台机器保存相同的图片(img3,img2子域名)同一页面不同图片随机生成不同的子域名进行负载均衡CDN ?Content Delivery Network浏览器优化节省带宽:j
10、s,css的静态gzip压缩http header: Content-Encoding: gzip浏览器缓存http header: Etag,Last-Modified小图片,css,js合并js混淆工具JSA(推荐)/js压缩多个js合并为一个可以与ant集成Sessioncookie(强烈推荐)集中式session memcached(推荐)session复制(过多服务器复制存在性能问题)分布式文件系统MogileFSAutomatic file replicationNo single point of failure自动化总结CAP原则BASE策略异步(MessageQueue)数据库数据的水平切分及垂直切分数据库读写分离避免分布式事务反范式的数据库设计负载均衡DNS负载均衡反向代理负载均衡LVS缓存数据库缓存服务器缓存/页面缓存/数据缓存/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年福建省厦门大学物理科学与技术学院行政秘书招聘笔试备考题库及答案解析
- 2027年汉中洋县实验学校教师招聘笔试备考试题及答案解析
- 2026福建龙岩二幼(东城园区)招聘炊事员1人笔试模拟试题及答案解析
- 2026年合肥蜀山区公立幼儿园食堂工作人员岗位招聘考试模拟试题及答案解析
- 单县过年超市活动方案策划(3篇)
- 大棚加固横梁施工方案(3篇)
- lng工厂应急预案范文(3篇)
- 工厂应急水塔施工方案(3篇)
- 施工应急预案如何实施(3篇)
- 对公营销费用方案(3篇)
- 对于产品质量投诉的整改回复函7篇
- 智能硬件开发团队测试验证与质量控制手册
- 2026年县级国有粮食储备公司招聘笔试试题(含答案)
- 2.1《各种各样的工具》教学设计2026-2027学年科学五年级上册新教科版
- 2026幼小衔接比大小、填符号口算专项训练(可打印)
- 中老年肌少症筛查与诊疗临床指南(2026版)
- 人教版英语中考高频词汇例句版
- 关于补充耕地实施方案
- 第20课-从“战时共产主义”到“斯大林模式”-初中-历史-教学设计
- 财政非税收入培训课件
- 铁道车辆构造与检修教学课件-单元二-铁道车辆检修基本知识
评论
0/150
提交评论