MybatisPlus与服务器配置问题导致项目缓慢

MybatisPlus与服务器配置问题导致项目缓慢

问题

  1. 项目JAR包启动很慢,大概在10分钟左右
  2. 接口相应超时,检测代码块大概执行了7分钟
    问题仅发生在线上服务器,本地及本地服务器均无法复现

排查途径

  1. 查看服务器cpu负载:无负载压力
  2. 查看慢sql:无慢sql
  3. 查看磁盘读写状态:正常
  4. 打印日志:具体为在代码块的各个方法中打印日志,定位到具体的方法后,检查代码逻辑,因为此处代码仅仅是实体Entity的值填充以及最后insert保存记录,导致一开始忽略这里代码超时的可能,但在无慢sql、磁盘读写都正常的情况下,对这个方法的多加了一些日志,就是简单的标识start和end来方便查看时间,最终定位到了问题

最终原因

在实体Entity填充数值的时候,使用到了Sequence 这个类,生成分布式ID。

package com.baomidou.mybatisplus.core.toolkit;

public class Sequence {
    /***/
}

在这个类中存在两个方法:

  1. NetworkInterface network = NetworkInterface.getByInetAddress(this.inetAddress);
  2. String name = ManagementFactory.getRuntimeMXBean().getName();
    这两个方法都是用来获取网络名称,但由于服务器host名称配置不一样,导致无法用缓存,就会导致这个类加载特别慢

验证问题

登录服务器,执行下面的命令

  1. hostname 显示结果为:a
  2. 查看etc下的hosts文件:cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

这里确实没有关于hostname的信息

解决方法

修改hosts文件(修改前先备份原文件),然后重启系统
修改结果为下

127.0.0.1   a localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         a localhost localhost.localdomain localhost6 localhost6.localdomain6

最后JAR包的启动和相关接口都不会再出现慢的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值