博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大型网站技术架构:核心原理与案例分析笔记
阅读量:5318 次
发布时间:2019-06-14

本文共 1343 字,大约阅读时间需要 4 分钟。

1.大型网站软件系统的特点:

  •   高并发,大流量
  •   高可用
  •        海量数据
  •   用户分布广泛,网络情况复杂
  •   安全环境恶劣
  •   需求快速变更,发布频繁
  •   渐进式发展  

2.大型网站演变架构

  1)初步应用:数据(数据库,文件服务器)和应用程序跑在单一服务器上

  2)数据与应用分离:数据库服务器,文件服务器,应用程序服务器

  3)缓存改善性能:(应用程序(带有本地缓存)-->外接分布式缓存)-->数据库服务器以及文件服务器对接

  4)应用程序集群:使用负载均衡策略来进行请求分布

      负载均衡调度器--->(多个饮用程序分布式部署)--->外接分布式缓存--->数据库服务器以及文件服务器对接

  5)数据库读写分离:当单一数据库IO量达到极限时候,需要对数据库进行集群

      将数据库服务器进行分布式

        数据库服务器(主库(写数据库)--->多个从库用于数据select)

  6)CDN加速

    在负载均衡前面添加一层反向代理服务器和Cdn加速器,将一些缓存数据尽早返回给服务器,让页面反应速度加快

    Cdn加速器-->反向代理->负载均衡调度器--->(多个饮用程序分布式部署)--->外接分布式缓存--->数据库服务器以及文件服务器对接

  7)分布式数据库以及分布式文件服务器

    当数据库中数据量非常大的时候,可以将这个不同业务的数据放在不同的物理机上。

    当文件数据量比较大时候,单一文件服务器不能承载时候,可以将单一文件服务器改为分布式文件服务器

  8)NOSQL和搜索引擎

    当大数据量大文件量的时候,必定会涉及到文件数据的搜索,此时需要的是NOSQL以及搜索引擎服务器给其提供搜索服务,减轻数据源管理的麻烦

  9)业务拆分:

    将一个巨大的应用分为不同的业务模块进行开发,将每一个不同模块的应用进行分布在不同的服务器中进行使用,不同模块与模块之间采用消息队列进行通信

3.架构模式:

  1.单一应用(初期应用):应用层,服务层,数据层整合在一起;

  2.数据分层:将应用分为:应用层,服务层,数据层

  3.分割:根据业务进行模块分割,将一个大应用分割成一个一个的小模块进行开发

  4.分布式部署:

    分布式应用和服务

    分布式静态资源

    分布式数据和存储

    分布式计算

  5.集群:单一服务器不能承担该任务时候,需要对其进行集群部署

  6.缓存:

     CDN

     反向代理

     本地缓存

     分布式缓存

  7.异步调用

    当数据量巨大时候,可以采用异步调用策略进行调度。

    其实现原理相当于是和生产者和消费者模式差不多采用消息队列实现的异步

  8冗余:

    对数据进行冷热备份

  9.自动化

    自动化运维方面,自动化监控

  10安全化:

    通过验证码机制以及防止SQL注入问题

4.TPS,HPS,QPS

  TPS:每秒事物数

  HPS:每秒的HTTP请求数

  QPS:每秒的查询数

转载于:https://www.cnblogs.com/lonecloud/p/7447410.html

你可能感兴趣的文章
Objective-C中的@property和@synthesize用法
查看>>
一位面试者提到直接调用vuex中mutations方法
查看>>
动态加载vs静态加载
查看>>
(7)关于margin的一些想法2.0
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
一些有意思的算法代码[转载]
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
mysqlslap 压力测试工具
查看>>
DWR与Spring结合
查看>>
[转]Eclipse下导入外部jar包的3种方式
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
连续数字或英文字符文本强制换行
查看>>
DevExpress Carousel 设置水平滑动列表
查看>>
python总结--目录(转)
查看>>
成都同学聚会
查看>>