马哥门徒N57-SRE第九周

1、tomcat session cluster的实现。

Tomcat集群Session同步方案
(1)使用Tomcat自带的Cluster方式
(2)利用Nginx的基于访问IP地址的Hash路由策略
(3)利用Nginx插件实现Tomcat集群和Session同步
(4)利用Memcached实现(MSM工具)
(5)利用Redis实现

在这里插入图片描述

基础环境

ip 主机名 应用 端口
192.168.10.100 Nginx-node nginx1.20.1 80
192.168.10.101 Tomcat-node1 java8.131、tomcat8.5.71 8080
192.168.10.102 Tomcat-node2 java8.131、tomcat8.5.71 8080

在这里插入图片描述
在这里插入图片描述tomcat的安装使用一键安装
在这里插入图片描述现在开始进行tomcat自带cluster方式的session共享配置:

1、[root@tomcat]# vi /usr/local/tomcat/conf/server.xml

“< Engine name=“Catalina” defaultHost=“localhost”>”
找到上面这一行,在此行的下面直接复制以下内容,不用修改,直接复制就可以

      <Manager className="org.apache.catalina.ha.session.BackupManager"
               expireSessionsOnShutdown="false"
               notifyListenersOnReplication="true"
               mapSendOptions="6"/>


      <Channel className="org.apache.catalina.tribes.group.GroupChannel">
        <Membership className="org.apache.catalina.tribes.membership.McastService"
                    address="**192.168.10.100**"
                    port="45564"
                    frequency="500"
                    dropTime="3000"/>
        <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                  address="**192.168.10.102**"
                  port="5000"
                  selectorTimeout="100"
                  maxThreads="6"/>

        <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
          <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
        </Sender>
        <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
        <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
        <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
      </Channel>

      <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
             filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

      <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                tempDir="/tmp/war-temp/"
                deployDir="/tmp/war-deploy/"
                watchDir="/tmp/war-listen/"
                watchEnabled="false"/>

      <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
    </Cluster>

记得多个tomcat都需要配置,同一个集群里面配置信息保持一直就可以了。如果是其他集群,修改一下address就好了。
另一个tomcat节点直接拷贝这个server.xml文件,然后将address修改为192.168.10.102就可以了
2、然后还有一个重要配置不要忘记了!否则session将不能实现共享!!
在tomcat项目的WEB-INF/web.xml文件中添加 < distributable/>.
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

参考文档:
https://www.cnblogs.com/kevingrace/p/9541551.html
https://www.sohu.com/a/309573317_120104204
https://www.cnblogs.com/kevingrace/p/9539005.html

2、JVM性能调优总结

JVM调优目标
何时需要做jvm调优?

什么情况下需要对jvm做调优?
1.heap 内存(老年代)持续上涨达到设置的最大内存值;
2. Full GC 次数频繁;
3. GC 停顿时间过长(超过1秒);
4. 应用出现OutOfMemory 等内存异常;
5. 应用中有使用本地缓存且占用大量内存空间;
6. 系统吞吐量与响应性能不高或下降。

JVM调优原则

JVM调优原则:
1.多数的Java应用不需要在服务器上进行JVM优化;
2.多数导致GC问题的Java应用,都不是因为我们参数设置错误,而是代码问题;
3.在应用上线之前,先考虑将机器的JVM参数设置到最优(最适合);
4.减少创建对象的数量;
5.减少使用全局变量和大对象;
6.JVM优化是到最后不得已才采用的手段;
7.在实际使用中,分析GC情况优化代码比优化JVM参数更好;

JVM调优目标

JVM调优目标 :
1.GC低停顿;
2. GC低频率;
3. 低内存占用;
4. 高吞吐量;

JVM调优量化目标(示例):
1.Heap 内存使用率 <= 70%;
2. Old generation内存使用率<= 70%;
3. avgpause <= 1秒;
4. Full gc 次数0 或 avg pause interval >= 24小时 ;
注意:不同应用,其JVM调优量化目标是不一样的。

调优经验总结

JVM调优步骤

JVM调优的一般步骤为:
第1步:分析GC日志及dump文件,判断是否需要优化,确定瓶颈问题点;
第2步:确定JVM调优量化目标;
第3步:确定JVM调优参数(根据历史JVM参数来调整);
第4步:调优一台服务器,对比观察调优前后的差异;
第5步:不断的分析和调整,直到找到合适的JVM参数配置;
第6步:找到最合适的参数,将这些参数应用到所有服务器,并进行后续跟踪。

参考文档:
https://blog.csdn.net/mocas_wang/article/details/109604710

3、实现zabbix主动模式监控tomcat及所在主机

在这里插入图片描述

安装zabbix
在这里插入图片描述安装JDK(参见往期文档)
安装TOMCAT(参见往期文档)
安装JAVA GATEWAY
yum -y install http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.9-3.el7.x86_64.rpm

在这里插入图片描述修改zabbix agent为主动模式。

在这里插入图片描述

https://blog.z0ukun.com/?p=1470 (https://blog.z0ukun.com/ 推荐)
https://www.cnblogs.com/zhangcheng94/p/12122977.html
https://www.cnblogs.com/struggle-1216/p/12354813.html
https://www.cnblogs.com/yinzhengjie2020/p/12318937.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值