1.大型网站架构的演化

大型互联网系统的特点
高并发,发流量:面对大量并发用户
高可用:7 * 24 小时不间断服务
海量数据:需要存储,管理海量数据
用户分布广泛,网络情况复杂:运营商通信可能困难,网络地域网络情况不同,国际网络延迟
安全问题:被攻击,信息泄露
渐进式发展:网站都是从无到有,从小到大发展起来的,不要刻意为了 大型网站架构而设计大型网站架构,所有的系统升级都是为了业务,业务一定,追求稳定,只有业务需要发生改变,才做出改变

  1. 初始阶段网络架构:应用程序、文件、数据库存在一台服务器上
  2. 应用服务和数据服务分离:应用程序、文件、数据库 存在不同服务器上
  3. 增加缓存:网站内容访问遵循 二八定律,因此,将经常访问的数据放在缓存里,增加缓存
  4. 搭建应用程序集群:将应用程序 搭建成集群结构的,就是将应用程序原封不动拷贝到多个服务器上,使用 负载均衡服务器 调节
  5. 数据库读写分离:缓存存在 不命中、缓存过期的情况,那么用户多了,数据库就有压力,因此,使用 数据库主从 进行读写分离
  6. 使用反向代理和CDN
    反向代理的使用:将一些静态的页面或者资源放在反向代理服务器(一般是中心机房)上,用户访问的时候就不用转发请求到 应用程序服务器,直接将静态资源返回给用户
    CDN:由于用户一般是先和运营商交互,因此,企业可以将一些不经常改变的静态资源放在运营商服务器上,这样就不要再请求 企业服务器了
  7. 分布式文件系统和分布式数据库系统
    分布式文件系统:单一服务器无法满足需求
    分布式数据库系统:
    一般情况,数据库拆分的依据是不同的业务,也就是说,不同的业务才会拆分数据库。
    只有当数据单表太大,才使用分布式数据库
  8. 使用 NoSql和搜索引擎
    当对数据存储和数据检索的需求复杂时,
    需要使用非关系型数据库
    非数据库查询技术,例如搜索引擎
  9. 业务拆分:将不同业务拆分(例如:购物、商铺、订单……),分别放在不同服务器,通过使用 消息队列转发消息
  10. 分布式服务:将业务拆分独立部署,同时,将相同的业务,或者是相同的代码块拿出来复用,复用的业务再装入到一个服务器中,让这个复用的服务器来与数据库、缓存、搜索引擎等等来交互

云计算:
大型网站,例如阿里、华为、腾讯 等等公司的技术相对成熟,无论是安全性还是稳定性,他们已经做好了一些架构,普通的小型网站只需要付钱,使用他们做好的架构即可,如果想有更高的性能,只需要付更多的钱。

网站架构设计的问题:
网站都是从无到有,从小到大做起的
驱动网站发展的动力,是 业务,而不是为了更新的技术,不是为了使用更新的技术
小型网站不要追求大网站的解决方案,适合自己才是最好的
不要为了技术而技术,技术是为了业务而产生的,业务的提出也产生了更好的技术
不要一味用技术来解决所有问题,问题不一定都是技术不够新而产生的,例如 安全问题,可能是业务的问题,不要一味使用新框架来解决

发布了20 篇原创文章 · 获赞 1 · 访问量 1460

猜你喜欢

转载自blog.csdn.net/weixin_44587666/article/details/89496386
今日推荐