zoukankan      html  css  js  c++  java
  • 高并发

    一、判断大型网站的标准:
    1.pv(page views)网页的浏览量:一个网站所有的页面,在24小时内被访问的总的次数。千万级别,百万级别,
    2、uv值(unique vistor)独立访客:一个网站,在24小时内,有多少个用户来访问我们的网站。达到10万
    3、独立ip(重点内容):一个网站,在24小时内,有多少个ip来访问我们的网站。
    uv值约等于独立ip.如果要考虑局域网,uv值略大于独立ip
    二、大型网站带来的一些问题
    1、大的并发。
    并发量:在同一时间点(1秒内),有多少个用户同时访问我们的网站。对同一个网址,同时刷新浏览器。达到500,就非常大了。
    假如并发量是500,pv值是多少。500*3600*10=18000000
    2、大流量。
    网站需要的大的带宽。10G.
    3、大的存储。
    网站中的数据库,表的容量成海量趋势,GT级别,如何快速的查找出想要的数据。
    三、大并发的解决方案:
    1、负载均衡器:
    硬件:f5-bigip 性能比较好,立竿见影,价格昂贵,一般适合于大型网站公司,网游公司。
    软件:
    lvs(linux virtual server)linux虚拟服务,加入到linux的内核中。
    nginx:可以做web服务器(apache),还可以做负载均衡。
    3、集群:
    主要是解决计算机单点故障,在一个集群中的计算机,只有一台计算机工作,其他计算机处于休眠状态,监视正在工作的计算机,当正在工作的计算机出现问题,则休眠的计算机立刻接替工作。
    扩展:
    单点故障(英语:single point of failure,缩写SPOF)是指系统中一点失效,就会让整个系统无法运作的部件,换句话说,单点故障即会整体故障。
    四、大流量解决方案:
    1、防止我们的网站资源被盗链:可以采用一些非技术手段防止被盗链,在图片上添加水印
    2、减少http请求:主要手段就是合并js文件,css文件,背景图片的文件。将浏览器需要的样式文件或者js文件,合并成一个样式文件或js文件。比如通过背景图片举个例子,就是将一些icons图标将其弄在一个大的背景图上,通过位置截取某icons图标。
    3、启用压缩:减少数据传输的数据量,常见的压缩格式是:gzip,deflate.
    4、通过浏览器缓存数据内容:在网站中有一些资源,比如js文件,css文件,一些图片文件,更新的频率比较少。通过个设置http的cache-control expires属性来进行设置缓存,可以设置缓存的文件类型,设置缓存的缓存周期
    5、可以把比较占用流量的一些资源,单独组建一个服务器:比如图片服务器,视频服务器等。
    五、大存储解决方案:
    1、缓存技术:
    通过缓存技术,达到不查询数据库或者少查询数据库的目的。
    计算机的访问速度,内存》硬盘文件》数据库
    缓存技术主要有:
    磁盘缓存(页面静态化),把一个查询数据库的页面变成一个不查询数据库的页面
    内存缓存:把经常查询的数据保存到内存里面,下次查询数据时候直接在 内存里面查询。
    (memcache/redis/mysql的memory引擎)
    2、在设计表的时候,要满足3范式:
    第一范式是:原子性,字段不能再分割了。只要是关系型数据库就自动满足第一范式:
    数据库的分类:
    关系型数据库:有行和 列的概念,二维表格。常见的关系型数据库:mysql,sql server,oracle,db2
    非关系型数据库(nosql)面向集合和 文档的,没有行和列的概念常见的有redis/mongodb等
    第二范式:在一个表中不能有完全相同的记录。可以通过设置一个主键
    第三范式:表中的字段不能冗余存储
    3、要给表添加适当的索引:索引非常重要的,可以提高查询速度:
    常见索引有:主键索引,唯一索引,普通索引,全文索引
    4、要创建适当的存储过程,函数,触发器等。
    5、读写分离(主从服务器)
    6、分表技术(垂直分割和水平分割)
    7、分区技术:把一个表的数据内容,在不同的区域存储
    8、升级mysql服务器(添加配置:加大内容,64位)
    9**、要对sql语句进行调优**:select * from tablename 该语句不要使用,要按需查询。需要哪个字段的数据,就查询哪个字段的数据
    10、对配置文件进行优化配置
    比如配置mysql数据库的并发量:在mysql配置文件my.ini中找到 max_connections=100这个值可以调控mysql的并发量。

  • 相关阅读:
    掌握 ActionResult
    EF 的 霸气配置
    MVC 3 数据验证 Model Validation 详解
    Entity Framework 插入数据 解决主键非自增问题
    线程池(C#)
    socket 基础学习
    oracle创建job方法
    C# 任意类型数据转JSON格式
    JDBC(连接数据库的四个主要步骤)
    oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)
  • 原文地址:https://www.cnblogs.com/xieqijiang/p/10949901.html
Copyright © 2011-2022 走看看