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. C++实现双向循环链表

    本次博文是关于利用C++模板的方式实现的双向循环链表以及双向循环链表的基本操作,在之前的博文C++语言实现双向链表中,已经给大家分析了双向循环链表的结构,并以图示的方式给大家解释了双向循环链表的基本操 ...

  2. 11-Json提取器使用

    1.使用json提取关键信息 有时候接口返回数据为json数据或者直接为一个列表,可使用这个更简单快捷 json数据: 这样的,数据有在result里面以列表形式存在,也有在列表外的,可在json提取 ...

  3. virtual box设置网络,使用nat网络和仅主机(Host Only)网络进行连接

    virtual box设置网络,使用nat网络和仅主机(Host Only)网络进行连接 前言 作为程序员难免要在本机电脑安装虚拟机,最近在用virtual box安装虚拟机的时候遇到了点问题. 对于 ...

  4. [转] [知乎] 浅谈Roguelike

    浅谈Roguelike 从柏林诠释说起 在2008年召开的国际Roguelike开发会议上,众多的Roguelike开发者与爱好者共同制定了<柏林诠释>,规定了Roguelike游戏需要具 ...

  5. Python爬取抖音高颜值小视频

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 有趣的python PS:如有需要Python学习资料的小伙伴可以加 ...

  6. B - How many integers can you find 杭电1976

     Now you get a number N, and a M-integers set, you should find out how many integers which are small ...

  7. SpringBoot集成MyBatis底层原理及简易实现

    MyBatis是可以说是目前最主流的Spring持久层框架了,本文主要探讨SpringBoot集成MyBatis的底层原理.完整代码可移步Github. 如何使用MyBatis 一般情况下,我们在Sp ...

  8. [GO] mac安装GO 初次尝试

    其实试了好多方法,我用的是下面这种方法,简单快捷! 安装homebrew 在终端输入命令 ruby -e "$(curl -fsSL https://raw.githubuserconten ...

  9. Springboot:员工管理之公共页面提取 高亮显示(十(5))

    把顶部和左侧的公共代码分别放到header.html和left.html中 顶部代码:resources\templates\header.html 主内容展示: <!DOCTYPE html& ...

  10. C# 反射(一)

    刚工作没多久,需要对以往的知识进行复习和巩固.先讲讲最近在公司常用到的反射机制. 反射(Reflection):提供了封装程序集.模块和类型的对象(Type 类型).可以使用反射动态创建类型的实例,将 ...