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缓存,然后由异步程序操作数据库。)

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

  • 相关阅读:
    NetSuite Batch Process Status
    NetSuite generated bank files and the Bank Reconciliation process
    Global Search file content in Gitlab repositories, search across repositories, search across all files
    FedEx Package Rate Integration with NetSuite direct integrate by WebServices
    git Merge branches
    git tag and NetSuite deployment tracking
    API 读写cookie的方法
    C# 生成缩略图
    解决jquery操作checkbox全选全不选无法勾选问题
    JS读取写入删除Cookie方法
  • 原文地址:https://www.cnblogs.com/tuolei/p/6374659.html
Copyright © 2011-2022 走看看