zoukankan      html  css  js  c++  java
  • .net 网站应对压力的一些方案总结

    开年比较空,抽时间写个博文,总结下自己工作里的一些应对网站访问压力的技术方案。

    自己项目现在大概一天50W的pv。已从前端到后端的顺序总结下自己用的一些方案。

    一. 前端页面:

    1.首先减少资源的大小,能用小图,就用小图。引用第三方js用mini 压缩版的js。

    2.用CDN减少服务器访问的压力,将图片,css,js文件放到CDN上。用户从cdn缓存获取资源的速度远快与访问服务器获取的速度。(还有网络关系,cdn网络快)

    3.耗时长的js可以异步请求后加载。

    二.服务器负载均衡:

    负载均衡解决方案有很多,不差钱有不差钱的,屌丝有屌丝的方案。我用的是nginx负载均衡。

    准备一台专用的nginx负载均衡服务器,用它来负载均衡,转发给5台业务服务器。(开发需要单台调试时,用hosts指向单台)

    三.服务器缓存

    因为是分布式架构,服务器缓存主要用了memcached和redis(各配置2台,一台主服务,一台备用)。memcached和redis都有各自的.net版本,用起来也不复杂。

    具体选择看业务需求,我基本上70%用memcached,需要长时间缓存的用redis。

    memcached对于中文支持不好,要存中文数据,先将中文base64编码在存入,读取时候做base64解码。

    四.数据库

    我主要使用sqlserver,少量项目用mysql。50W访问量单台sqlserver服务器完全可以支持的住。尽量减少事务,业务需要用消息队列后补处理。

    大任务网站不处理,用其他程序处理(响应要求高的修改操作,先修改redis缓存,然后由异步程序操作数据库。)

    操作时候记录日志,数据库崩溃或网站崩溃可以读日志文件回补数据操作。(一般服务器挂了不会很久,超过一天不能恢复日子基本没法活了。。真这样在看具体情况找解决方案)

  • 相关阅读:
    android wifi Direct Audio TX/RX延迟分析
    linux C语言结构体对齐
    android wifi SWOL低功耗模式
    android firmware 利用UDP socket发送Magic Packet--python版本
    android tcp协议主要函数
    android firmware 利用UDP socket发送Magic Packet--c语言版本
    linux tcp协议重传定时器
    linux tcp协议状态机
    /normalize.css 比cssreset更实用
    关于无法net start mysql无法启动数据库的解决办法
  • 原文地址:https://www.cnblogs.com/tuolei/p/6374659.html
Copyright © 2011-2022 走看看