Java拾遗--线程池相关知识点,负载均衡,高并发

线程池:

深入剖析java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue

并发编程3:线程池的使用与执行流程

Java-线程池专题 (美团面试题)

高并发与负载均衡

三、Tomcat的优化
1、内存使用配置
Tomcat是依赖于JVM的,所以Tomcat的使用内存配置实质上是JVM的内存配置
在/bin目录下的catalina.bat可以直接通过Tomcat设置JVM内存参数,windows下
打开catalina.bat文件,在大概中间的位置,找到
set “JAVA_OPTS=%JAVA_OPT% -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true”
通过内存设置充分利用服务器内存
-server: 模式启动应用慢,但是极大程度提高运行性能
-Xms2048m -Xmx2048m: 设置的是堆内存
java8开始,PermSize被MetaspaceSize代替,MetaspaceSize共享heap,不会再有java.lang.OutOfMemoryError:PermGen space,可以不设置
Headless=true: 适用于Linux系统,与图形操作有关,如生成验证码含义是当前的是无显示器的服务器,应用中如果获取系统显示有关的参数会抛出异常,windows系统可不用设置
可通过jmap -heap process_id查看设置是否成功

2、最大连接数配置(并发能力)
在/conf/server.xml里进行配置
在属性中
将protocol属性改为 “org.apache.coyote.http11.Http11NioProtocol”,NIO模型的效率更高
加入
maxThreads=”500” //当前可以同时处理的最大用户访问数
minSpareThreads=”100” //最小空闲线程连接数,用于优化线程池
maxSpareThreads=”200”
acceptCount=”200” //当所有的线程以分配,仍然允许连接进来,但是出于等待状态的用户数。等待线程数+工作线程数=总的可最大连接数,如果超过此数,新的连接将不会被接受,就会产生一个http错误
enableLookups=”false”//是否允许DNS反查,如果为true,request.getRemoteHost会执行DNS查找,反向解析ip对应域名或主机名,当没有这样需要的时候,可以将这个功能关闭,在一定程度上提高了Tomcat服务器的性能

负载均衡

高并发解决方案之一 ——负载均衡
常见的简单负载均衡算法以及Java实现
高并发解决方案之一 ——负载均衡

利用redis进行分布式锁

Redis分布式锁的正确实现方式

Java 如何处理高并发

Java高并发,如何解决,什么方式解决


你可能感兴趣的:(Java基础,j2ee,Java)