精编大规模网站架构 .ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精编大规模网站架构 .ppt

大规模网站架构 19楼—小濠 XH0507@VIP.QQ.COM 语言不是可伸缩性的关键,架构才是关键 网站架构的目标 高可用性(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 垂直分区 水平分区 DAL(数据访问层) 对应用透明的使用数据库的水平分区及垂直分区 DAL Proxy(实现1) DAL API(实现2) 两种实现方式 独立的DAL Proxy服务器 MySQL: Amoeba PostgreSQL: PL/Proxy (Skype) DAL API Java: Hibernate Shard,Ibatis Shard,HiveDB Python: Pyshards shard改变数据库设计 尽量避免join 数据冗余/反范式 数据冗余 for shard shard before comment(id,blog_id,content) shard after comment(id,blog_id,content,user_id) 数据分区策略 水平分区 2 * N(如定单,购买者与网店各一份) N / n (按日期或ID范围分区) hash(N) % n( 按hash分) 查找表 垂直分区 按功能分(论坛,博客) 消息队列(MessageQueue) 程序解耦 隔离 消息的可靠传输(物理存储中转消息) 消息总线 应用场景 耗时操作 邮件发送/短消息发送 日志 程序解耦(A挂了,但B继续可以使用) MQ产品 开源 RabbitMQ(Erlang) ActiveMQ(JAVA) 商业 IBM MQ WebLogic MQ 回顾CAP及BASE 负载均衡 DNS负载均衡 反向代理负载均衡 直接路由 failover DNS负载均衡 简单 缺少灵活性(DNS缓存) 反向代理负载均衡 负载均衡软件 nginx HAProxy apache httpd LVS(网络第四层工作) F5(硬件,四层/七层) Linux Virtual Server(LVS) 网络地址转换(NAT):VS-NAT IP隧道方式:VS-TUN 直接路由方式:VS-DR 其它工作模式 Virtual Server via NAT(VS-NAT) 用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP 地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量经过转换器。 Virtual Server via IP Tunneling (VS-TUN) 用IP隧道技术实现虚拟服务器。这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法。为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。 集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等. Virtual Server via Direct Routing(VS-DR) 用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。 高可用性 使用双机热备 故障时切换至备份机 工具(Linux-HA) heartbeat 缓存 让数据更靠近用户 本地缓存 节点有状态,状态更新需要同步至其它服务器 可以使用组播方式通知数据改变 需要通知的服务器过多会存在性能问题 比远程缓存更高性能 慎用,不具备可伸缩性 Share Nothing Architecture

文档评论(0)

cnsg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档