20210425-tomcat学习笔记

本文详细介绍如何通过配置实现Tomcat集群部署,并利用Nginx进行负载均衡,以提升系统的稳定性和承载能力。同时,还提供了针对Tomcat性能优化的具体方案,包括调整JVM参数等。

tomcat性能调优

tomcat安全

1、配置安全

在这里插入图片描述

2、应用安全

在这里插入图片描述

3、传输安全

在这里插入图片描述
在这里插入图片描述

tomcat 集群部署

由于单台tomcat的承载能力是有限的,当我们的业务系统用户量比较大,请求压力大时,单台tomcat是扛不住的,这个时候,就需要搭建tomcat集群,而目前比较流行的做法就是通过nginx来实现tomcat集群的负载均衡。
在这里插入图片描述

安装2台tomcat,修改端口地址
第一台
<Server port="8015" shutdown="SHUTDOWN">
<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector protocol="AJP/1.3" address="::1" port="8019" redirectPort="8443" />

第二台
<Server port="8025" shutdown="SHUTDOWN">
<Connector port="9999" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector protocol="AJP/1.3" address="::1" port="8029" redirectPort="8443" />

安装nginx,配置代理功能

	upstream serverpool{
		server localhost:8888;
		server localhost:9999;
	}
	
	server {
		listen	99;
		server_name localhost;
		
		location / {
			proxy_pass http://serverpool/;
		}
	}

nginx负载均衡策略

自己看文章吧,说的很清楚
https://www.cnblogs.com/1214804270hacker/p/9325150.html

默认使用轮询
weight权重 服务器配置不一致 i5 i3 内存 不一致的时候分配
ip_hash 根据ip做hash值,把同一个ip的请求分配到同一台服务器 ,保证session会话
在这里插入图片描述
在这里插入图片描述

session共享

可以使用 ip hash的方式 让同一个ip的请求访问同一台服务器。
缺点:tomcat宕机了 session就没了
补救1:使用tomcat的session复制,广播机制来完成,如果一2~4台tomcat还好,服务器多的情况下 不建议使用,因为tomcat的工作都会在拷贝数据,影响性能 耗费网络带宽 和cpu性能和内存
补救2:SSO单点登录,可以存在redis里 tomcat每次去取一下

在这里插入图片描述
在这里插入图片描述

JVM内存模型图

在这里插入图片描述
windows 平台 (catalina.bat)

set JAVA_OPTS=-server -Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8

linux 平台(catalina.sh)

JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8"

在这里插入图片描述

windows下中文乱码

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = GBK

一台电脑上 部署多台tomcat

需要修改的端口 8080、8005 就可以了

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005/8006/8007" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector port="8080/8081/8082" protocol="HTTP/1.1" connectionTimeout="20000" edirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

使用jconsole监控 线程运行状态

文件位置:jdk1.8.0_251\bin\jconsole.exe
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值