首页 > 编程语言 >JAVA中的高并发,解决高并发的方案

JAVA中的高并发,解决高并发的方案

时间:2023-09-15 10:35:31浏览次数:45  
标签:方案 缓存 JAVA 请求 1.2 并发 服务器 页面

java高并发,如何解决,什么方式解决
一、什么是高并发
二、高并发的解决方法有两种
三、追加
一、什么是高并发
1.1 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。

1.2 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。

1.2.1 响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。

1.2.2 吞吐量:单位时间内处理的请求数量。

1.2.3 QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。

1.2.4 并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。

二、高并发的解决方法有两种
一种是使用Redis缓存、另一种是使用Nginx生成静态页面还有就是从最基础的地方优化我们写代码减少不必要的资源浪费:

使用Redis缓存原因:
首先缓存技术是在用户请求时将数据保存在缓存中,下次请求时会检测缓存中是否有数据存在,防止多次请求服务器,导致服务器性能降低,严重导致服务器崩溃,这只是我自己的理解,详细的资料还是需要在网上收集;

Nginx生成页面静态化:
简单的说,我们如果访问一个链接 ,服务器对应的模块会处理这个请求,转到对应的jsp界面,最后生成我们想要看到的数据。这其中的缺点是显而易见的:因为每次请求服务器都会进行处理,如 果有太多的高并发请求,那么就会加重应用服务器的压力,弄不好就把服务器 搞down 掉了。那么如何去避免呢?如果我们把对 test.do 请求后的结果保存成一个 html 文件,然后每次用户都去访问 ,这样应用服务器的压力不就减少了?
那么静态页面从哪里来呢?总不能让我们每个页面都手动处理吧?这里就牵涉到我们要讲解的内容了,静态页面生成方案… 我们需要的是自动的生成静态页面,当用户访问 ,会自动生成 test.html ,然后显示给用户。

三、追加
多线程处理50W数据方案

1:批处理方式每3000条处理一批数据
2:所有数据查询丢到for循环外处理
3:使用 PreparedStatement ps = con.prepareStatement(sql);
通过addBatch()的方式,将数据缓存在对象里面,通过最后执行executeBatch();方法提交,因此速度会快很多!
4:开始多线程Thread处理不影响其它主线程运行
5:通过JDBC进行数据入库操作
6:插入Redis等缓存中进行同步数据库

标签:方案,缓存,JAVA,请求,1.2,并发,服务器,页面
From: https://www.cnblogs.com/dsj8966/p/17704289.html

相关文章

  • Java高并发策略 java架构设计高并发策略和设计
    Java高并发策略java架构设计高并发策略和设计最近在面试被问到这个问题,整理下按照不同的层级说明展示层cdn静态文件加速例如HTML、CSS、JS、图片这些静态资源非常适合放到CDN上进行缓存。CDN服务商的节点是全国各地的,你的一份静态文件会被缓存到各个节点,用户访问时,会......
  • 「Java开发指南」在MyEclipse中的Spring开发(二)
    在上文中(点击这里回顾>>),我们主要介绍了一些Spring的基本概念、Spring项目配置及向导,本章节将继续介绍如何管理多个项目,Spring配置编辑器等,欢迎持续关注~MyEclipsev2023.1.2离线版下载MyEclipse技术交流群:742336981欢迎一起进群讨论4.管理多个Beans和项目除了使用bean配置文......
  • 25届实习秋招-Java面试-JVM虚拟机面试题整理-牛客网
    JVMJVM概述:是什么-规范,有什么作用(多态,越界)Java为什么可以跨平台移植Java怎么做编译?与C语言的编译有什么区别?比较:jvmjrejdk整体的架构:内存结构内存结构/内存模型--即为运行时数据区:JVM了解过哪些版本,1.8和1.7内存结构不同的地方堆中方法区(永久代实现)改为了......
  • 25届实习秋招-Java面试-JUC多线程面试题整理-牛客网
    JUC介绍一下JUC下的锁(如何使用及应用场景)线程什么是进程:特征什么是线程:资源为什么多线程,什么使用用单线程,什么时候多线程,什么条件下多线程快。进程和线程的对比:进程如何通信,每种通信存放的介质。||线程的通信,几种方式。join进程和线程的区别,在JVM层面的体现一......
  • 25届实习/秋招-java面试-JavaSe面试题整理-牛客网
    JavaSe变量和运算符:基本数据类型介绍java中浮点数精度怎么解决,有了解过实现吗,为什么有精度问题BigDecimal,如何判断BigDecimal是否相等。如何进行计算、怎么四舍五入基本类型几种,分别占用空间int和Integer区别--包装类,int有几个字节。包装类常量池怎么判断相等的......
  • Java静态导入
    今天在看开源项目的时候发现了这样一句代码importstaticcom.abin.mallchat.common.common.service.frequencycontrol.FrequencyControlStrategyFactory.TOTAL_COUNT_WITH_IN_FIX_TIME_FREQUENCY_CONTROLLER;我虽然工作了有三年时间了,但是这样的代码还是第一次看见,看见的第一......
  • 商业综合体AI+视频安防监控与智能监管解决方案
    商业综合体AI+视频安防监控与智能监管解决方案原创2023-09-1416:22·TSINGSEE青犀视频一、方案背景商业综合体需要具备更好的品质和环境才能吸引更多客流,如何有效地进行内部管理、外部引流,是综合体管理人员思考的重点。传统的视频监控需要靠人盯牢屏幕或者发生报警后通过查......
  • 京东一面:分布式 ID 生成方案怎么选?写得太好了!
    背景在分布式系统中,经常需要用到全局唯一ID发生器,标识需要存储的数据。我们需要什么样的ID生成器?ID生成器除了是数据的唯一标识以外,一般需要在系统中承担更多的责任,概括起来有以下几点:唯一性:“全局唯一”vs“业务唯一”?分布式系统使用唯一的ID生成器,会有非常严重的申请互斥......
  • 2023秋Java开学考试代码优化
    publicclassWarehouseInformation{privateStringitemno;privateStringitemname;privateStringsuppliername;privateStringwarehousingtime;privateStringwarehousenumber;privateStringshipmenttime;privateStringwareho......
  • java实验代码1
    一、阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。原码、反码、补码是计算机中对数字的二进制表示方法。原码:将最高位作为符号......