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

javaweb系统调优方案的更多相关文章

  1. linux内存基础知识和相关调优方案

    内存是计算机中重要的部件之中的一个.它是与CPU进行沟通的桥梁. 计算机中全部程序的执行都是在内存中进行的.因此内存的性能对计算机的影响很大.内存作用是用于临时存放CPU中的运算数据,以及与硬盘等外部 ...

  2. Linux低延迟服务器系统调优

    最近做了一些系统和网络调优相关的测试,达到了期望的效果,有些感悟.同时,我也发现知乎上对Linux服务器低延迟技术的讨论比较欠缺(满嘴高并发现象):或者对现今cpu + 网卡的低延迟潜力认识不足(动辄 ...

  3. Linux系统调优1

    Linux在进行系统调优的时候,首先要考虑整个操作系统的结构,然后针对各个部分进行优化,下面展示一个Linux系统的各个组成部分: 有上图可以看出,我们可以调整的有应用程序,库文件,内核,驱动,还有硬 ...

  4. Oracle 系统调优

    一:前言 一:调整初始化参数 1: Oracle 初始化参数分类 2:主要系统调优参数介绍 二:系统全局区 sga 优化 1:调整内存分配 2:调整日志缓冲区 1:查询当前oracle 实例的日志缓冲 ...

  5. Sybase数据库应用系统调优的五大领域

    Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源:慧聪it网 本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例,涉及了数 ...

  6. fuse3 编译相关简要记录 与 fuse3 系统调优;

    下面是在使用fuse3 编译bbfs 过程中一些参数,用于备忘: FUSE_CFLAGS="-I/usr/local/include/fuse3" FUSE_LIBS=" ...

  7. 大数据集群Linux CentOS 7.6 系统调优篇

    大数据集群Linux CentOS 7.6 系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设置主机hosts文件 1>.修改主机名 [root@node100 ...

  8. Linux系统调优——CPU(一)

    (1).系统调优思路 性能优化就是找到系统处理中的瓶颈以及去除这些的过程,性能优化其实是对OS 各子系统达到一种平衡的定义.具体步骤如下: 1. 系统的运行状况:  CPU -> MEM  -& ...

  9. Linux系统调优相关工具

    一.系统调优概述 系统的运行状况: CPU -> MEM -> DISK*-> NETWORK -> 应用程序调优 分析是否有瓶颈(依据当前应用需求) 调优(把错误的调正确) ...

随机推荐

  1. WordPress文章阅读量统计和显示(非插件, 刷新页面不累加)

    本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. WordPress文章阅读 ...

  2. idea打包报错Cleaning up unclosed ZipFile for archive D:\m2\commons-beanutils\commons-beanutils\1.9.2\...

    关于idea的打包报错:Cleaning up unclosed ZipFile for archive D:\m2\commons-beanutils\commons-beanutils\1.9.2 ...

  3. 判断一组checkbox/redio是否被选中,为其添加样式

    业务场景:当一行中有一个CheckBox被选中,则为此行添加class. <script type="text/javascript"> $(function(){ $ ...

  4. iOS 头条一面 面试题

    1.如何高效的切圆角? 切圆角共有以下三种方案: cornerRadius + masksToBounds:适用于单个视图或视图不在列表上且量级较小的情况,会导致离屏渲染. CAShapeLayer+ ...

  5. lambda表达式,及lambda简化过程

    lambda表达式(jdk8特性) 1.为什么要用lambda表达式 原因:因为我们有时候需要用到很多类,但是,这些类我们只用一次或者两次,所以我们用匿名内部类,但是匿名内部类多了还是很麻烦,所以用l ...

  6. AJ学IOS(03)UI之纯代码实现UI——图片查看器

    AJ分享,必须精品 先看效果 主要实现类似看新闻的一个界面,不用拖拽,纯代码手工写. 首先分析app可以很容易知道他这里有两个UILabel一个UIImageView还有两个UIButton 定义UI ...

  7. L17 AlexNet VGG NiN GoogLeNet

    深度卷积神经网络(AlexNet) LeNet: 在大的真实数据集上的表现并不尽如⼈意. 1.神经网络计算复杂. 2.还没有⼤量深⼊研究参数初始化和⾮凸优化算法等诸多领域. 机器学习的特征提取:手工定 ...

  8. 【WPF学习】第六十七章 创建自定义面板

    前面两个章节分别介绍了两个自定义控件:自定义的ColorPicker和FlipPanel控件.接下来介绍派生自定义面板以及构建自定义绘图控件. 创建自定义面板是一种特殊但较常见的自定义控件开发子集.前 ...

  9. [php] 简单的实现一个错误接管类

    自己弄的一个错误接管类: <?php //---------------------------------- // Leephp 错误接管类 // 2017-07-06 // Pengchon ...

  10. 微信小程序基本知识

    逻辑实现 1 使用动态数据展示列表(可以考虑使用wx:for属性配合动态数组渲染全部列表项,以减少WXML页面的代码量) eg:  <view class='listGroup' wx:for= ...