大型网站技术架构,阅读笔记一. 架构概述

* 大型网站架构演变

       高可用、高性能、易扩展、可伸缩且安全的网站。
       大型网站软件系统的特点:
       1 高并发,大流量 : google 日均pv 35亿,ip访问 3亿
       2 高可用: 7×24小时不能宕机
       3 海量数据:百度收录网页数百亿,facebook每周上传照片10亿。
       4 用户分布广泛,网络情况复杂:国内运营商网络互通难,国外电缆故障。
       5 需求快速变更,发布频繁:快速适应市场,发布频率要求极高。
       6 渐进式发展: 大型的互联网网站都是一个小网站开始。

* 大型网站架构模式

       1 分层: 如网站软件系统分为 应用层、服务层、数据层
       2 分割: 不同功能和服务分割开,包装成高内聚低耦合的模块单元。
       3 分布式:
                      大量机器协同工作, 分布式带来的问题
                       1 调用通过网络。
                       2 过多的服务器, 关键节点的宕机, 带来大量应用不可用。
                       3 数据一致性困难,分布式事务难以保证。
                       4 网站拓扑复杂。难以维护。
                      分布式方案: 分布式应用和服务 、分布式静态资源、分布式数据和存储、分布式计算、分
                      布式配置、分布式锁、分布式文件系统。
       4 集群:
                 分布式将模块独立部署, 集群让某个模块能支撑更大的并发请求,并且通过失效转移带来高可
                 用。
       5 缓存:
                将数据存放在离计算最近的位置以加快处理速度。
                        1 CDN: 内容分发网络, 部署离用户终端最近的网络服务商,缓存静态资源。
                        2 反向代理: 部署在网站前端, 访问首先到达反向代理服务器,缓存静态资源。
                        3 本地缓存: 应用服务器本地缓存。
                        4 分布式缓存:  大量分布式缓存集群,  应用服务器通过网络访问缓存数据。
               缓存使用前提:数据访问热点不均衡,数据有效期不能太短。
       6 异步:
                解耦合, 单一服务器使用内存队列, 分布式系统,使用分布式消息队列。 提高可用性, 削峰
                填谷,加快响应速度,提升用户体验。
       7 冗余:
                保证数据冗余, 即使故障,亦可恢复。 冷备、热备、灾备。
       8 自动化:
                自动化代码管理、自动化测试、自动化安全检测、自动化部署、自动化监控、自动化报警、自
                动化失效转移等。
       9 安全
               通信安全, 数据安全等


* 大型网站的核心架构要素

       架构: 最高层次的规划,难以改变的决定。
       1 性能: 响应时间、TPS、系统性能计数器。
                   浏览器缓存、页面压缩、合理页面布局、CDN、服务器本地缓存、分布式缓存、异步、集
                   群、多线程、NOSQL数据库。
       2 可用性:  数据冗余, 应用服务器进行集群(会话不能保存在应用服务器上)
       3 伸缩性:  是否可以用多台服务器构建集群,是否容易向集群中添加新的服务器。
                           1 应用服务器集群: 不保存数据,通过合适的负载均衡设备。
                           2 缓存服务器集群: 通过合适的缓存路由算法, 保证不需要重新从数据库加载数据。
                           3 关系型数据库:  支持数据复制、主从热备, 一般对大规模集群伸缩性支持不好, 一
                           般在数据库外实现。
                           4 NOSQL数据库: 天生非常好的伸缩性。
       4 扩展性: 新的业务产品,是否对现有产品无影响。 是否高内聚低耦合。
                           1 事件驱动架构:  分布式消息队列。
                           2 分布式服务: 将业务和可复用服务分离。 可复用服务多版本服务, 不强制要求应用
                           同步变更。
                           3 开发平台接口: 对外部开发者,提供开发平台接口。
       5 安全性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值