zoukankan      html  css  js  c++  java
  • javaweb系统调优方案

    1. java代码优化

      java代码优化6大原则 : https://blog.csdn.net/bunny1024/article/details/72803708

      java代码优化: https://www.cnblogs.com/xrq730/p/4865416.html

    2. 业务优化

      公司后台是一个手机app后台, 全天平均每秒并发50~60, 个别时间点可达到5000+, 我采用以下措施

      (a). 尽量减少对服务器请求次数,  单次请求, 返回尽量多的信息.

        比如有个拉取banner广告接口,根据banner展示的位置不同, 会走不同的查询sql, 相当于多个接口集成到一个接口上, 造成接口

      访问压力大, 大量占用服务器资源.

        改进 : 一次查询, 返回所有banner广告信息, 使用gzip压缩json数据

      (b). 尽量避免高并发时间点, 将请求散布到尽可能大的时间范围内

        安卓端每天有一部分信息需要在特定时间点更新, 该点为服务器配置, 会造成每天配置的点访问压力瞬时加大, 单台tomcat优化后每秒并发量在500-800,

      加配置浪费硬件配置. 不加配置, 造成服务器压力过大, 部分请求会失败或者超时, 严重影响用户体验.

        改进 :

        1. 调整访问方式为用户随机和代码随机, 具体做法是

          用户随机 - 每天手机第一次亮屏并且用户切回到主桌面, 满足2个条件则发送请求. 将原来过0点的瞬时请求, 转化到0点过后的任意时间点, 

          大大降低瞬时点的并发量

          代码随机 - 服务端配置更新时间精确到某一分钟, 用一个随机函数确定请求时间点(秒), 可以将请求由原来的某一秒散布到一分钟以内

      (c). 更改运营策略, 错峰访问

        结合nginx访问日志, 确定全天高并发时间点和高访问量接口, 具体参见我的nginx日志分析: 

          高并发点采用b方法,

          对于高频访问数据, 要预先加载到缓存中, 次要一些的请求放到全天请求不高的时间段, 比如加载广告资源,

        可以预先用定时任务加载缓存中, 而app静默更新下载之类的, 不太紧急的接口, 可以放到并发量不高的时间段去访问

    3. tomcat/jvm 优化

      tomcat调优 : https://www.cnblogs.com/hcl1991/p/10838245.html

    4. nginx优化

      参考nginx调优: https://www.cnblogs.com/hcl1991/p/10838912.html

    5. mysql优化

      参考: https://www.cnblogs.com/hcl1991/p/10839809.html

    参考:

      aliyun如何处理网站高并发流量问题: https://yq.aliyun.com/articles/696140?spm=a2c4e.11155472.0.0.18bf2c5d5oy2Ui

  • 相关阅读:
    最长公共子序列
    最长重复子串—后缀数组
    最长递增子序列
    最长重复子串(转)
    最长递增子序列(转)
    最长不重复子串(转)
    连续子数组最大和(转)
    alert 与 console.log
    一个null,让浏览器SB
    javascript实现简单的动画功能
  • 原文地址:https://www.cnblogs.com/hcl1991/p/10837000.html
Copyright © 2011-2022 走看看