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

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

时间:2022-10-06 18:11:08浏览次数:67  
标签:方案 缓存 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生成静态页面还有就是从最基础的地方优化我们写代码减少不必要的资源浪费:

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

  2. 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中的高并发,解决高并发的方案JAVA中的高并发,解决高并发的方案JAVA中的高并发,解决高并发的方案

标签:方案,缓存,JAVA,请求,1.2,并发,页面
From: https://www.cnblogs.com/go1166/p/16758136.html

相关文章

  • java---return,break,continue作用
    一:return在函数体中遇到return语句,则结束函数执行(函数体未执行完部分不再执行),将表达式的值返回到函数调用处。使用return最多只能返回一个值!二:breakbreak主要用在循......
  • 深度剖析Java的volatile实现原理,再也不怕面试官问了
    1\.volatile是什么?volatile是Java提供的一种轻量级的同步机制。与synchronized修饰方法、代码块不同,volatile只用来修饰变量。并且与synchronized、ReentrantLock等重量级......
  • Java 面试题 02 - IO
    select、poll、epoll缓存IO数据传输过程中,会先被拷贝到内核的缓冲区中,然后再从缓冲区拷贝到应用程序的地址空间。这些拷贝操作的开销是很大的。阻塞/非阻塞vs同步......
  • JavaScript_大文件切片上传
    bigfile-chunk-upload功能大文件截取分块上传,带请求并发控制、错误重发功能。教程(以Vue为例)下载npminstallbigfile-chunk-upload引入//page.vueimportbigFile......
  • Java 面试题 01 - Java 基础
    基础概念JDK、JRE、JVM的区别?JDK是Java开发工具包,包含了Java的开发工具(编译工具javac.exe和打包工具jar.exe等)和JRE。JRE是Java运行环境,提供了库、JVM......
  • java--while小练习和switch小练习
    while小练习动态录入学生个数,成绩,求总成绩和平均值packagelearnday2;importjava.util.Scanner;*@description:动态录入学生成绩,并求总分和平均值publicclasswhileDe......
  • java课后反思
        在定义变量时,我们需要对变量进行初始化才可以继续进行使用,同时,对象变量如果不引用一个真实的值,则必须·对他声明为null;  对于原始数据类型变量,可以使用==......
  • 你的方案逻辑自洽吗?
    国庆前最后一个周末,和Thoughtworks资深质量专家刘冉老师、itest测试平台创始人老牛老师,以及星球的两位合伙人CC、CKL一起做了一期直播分享,聊了关于业内前沿质量大会能为测......
  • 2022.10.6java分支结构
    HelloWorld打开idea,新建java文件,新建javaclass编写代码psvm自动生成publicstaticvoidmain(Stringsargs{}sout自动生成System.out.printlnpublicclass......
  • Java刷题语法整理
    输入输出问题汇总BufferedReader/Scanner输入//BufferedReader类位于java.io包中,要引入java.ioimportjava.io.BufferedReader;importjava.io.InputStreamReader;B......