连接远程mysql,过一会不请求,然后登录系统,会特慢

Blade 已结 3 745
gtfhao
gtfhao 2022-11-12 15:04

一、该问题的重现步骤是什么?

1. 连接外网的mysql数据

2. idea启动服务

3.打开前端页面,过10分钟左右,然后输入账号密码登录(去掉验证码了)

4.然后页面就会卡顿一会,然后才能进去系统

5.看控制台日志有一个奇怪的日志(下面日志里奇怪的部门我加粗了)

6.在操作其他的就正常了

7.不管什么api,如果等的时间长了页面不操作,等一会再操作就会页面卡顿一会才能出来,出来之后,再操作就又快了

以上问题,别的工程连接同样的数据库,就没出现这个卡顿问题,看了数据库连接配置,都是沿用的框架自带的

二、你期待的结果是什么?实际看到的又是什么?

期待结果:api正常调用,不存在登录卡顿现象

实际结果:系统长时间不操作,就会出现第一期请求api卡顿的情况

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

    企业联合版3.0.1,Windows10系统

四、请提供详细的错误堆栈信息,这很重要。

没用经理商业账号发问题,就自己先发出来了,经理老忙,没把账号共享给我们

-----------------------------------点击登录按钮开始---------------------------------------

2022-11-12 14:46:44.478  INFO 3952 --- [  XNIO-1 task-1] io.undertow.servlet                      : Initializing Spring DispatcherServlet 'dispatcherServlet'

2022-11-12 14:46:44.478  INFO 3952 --- [  XNIO-1 task-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'

2022-11-12 14:46:44.482  INFO 3952 --- [  XNIO-1 task-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 3 ms

Creating a new SqlSession

SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@dffe3f9d] was not registered for synchronization because synchronization is not active

original SQL: SELECT  id,tenant_name,domain_url,background_url,linkman,contact_number,address,account_number,expire_time,package_id,datasource_id,license_key,tenant_id,create_user,create_dept,create_time,update_user,update_time,status,is_deleted  FROM blade_tenant 

 WHERE  is_deleted=0


AND (tenant_id = ?)

SQL to parse, SQL: SELECT  id,tenant_name,domain_url,background_url,linkman,contact_number,address,account_number,expire_time,package_id,datasource_id,license_key,tenant_id,create_user,create_dept,create_time,update_user,update_time,status,is_deleted  FROM blade_tenant 

 WHERE  is_deleted=0


AND (tenant_id = ?)

parse the finished SQL: SELECT id, tenant_name, domain_url, background_url, linkman, contact_number, address, account_number, expire_time, package_id, datasource_id, license_key, tenant_id, create_user, create_dept, create_time, update_user, update_time, status, is_deleted FROM blade_tenant WHERE is_deleted = 0 AND (tenant_id = ?)

-----------------------------------页面一直转圈等待。。。-----------------------------------------------------------------

----------------------------------登录成功,进入系统--------------------------------------------------------------

JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@8289b088] will not be managed by Spring

==>  Preparing: SELECT id, tenant_name, domain_url, background_url, linkman, contact_number, address, account_number, expire_time, package_id, datasource_id, license_key, tenant_id, create_user, create_dept, create_time, update_user, update_time, status, is_deleted FROM blade_tenant WHERE is_deleted = 0 AND (tenant_id = ?)

==> Parameters: 000000(String)

<==    Columns: id, tenant_name, domain_url, background_url, linkman, contact_number, address, account_number, expire_time, package_id, datasource_id, license_key, tenant_id, create_user, create_dept, create_time, update_user, update_time, status, is_deleted

<==        Row: 1123598820738675201, 管理组, null, null, admin, 666666, 管理组, -1, null, null, null, null, 000000, 1123598821738675201, 1123598813738675201, 2019-01-01 00:00:39, 1123598821738675201, 2019-01-01 00:00:39, 1, 0

<==      Total: 1

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@dffe3f9d]

Creating a new SqlSession

SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@670142f0] was not registered for synchronization because synchronization is not active

original SQL: SELECT

            *

        FROM

            blade_user

        WHERE

            tenant_id = ? and account = ? and password = ? and is_deleted = 0

SQL to parse, SQL: SELECT

            *

        FROM

            blade_user

        WHERE

            tenant_id = ? and account = ? and password = ? and is_deleted = 0

parse the finished SQL: SELECT * FROM blade_user WHERE tenant_id = ? AND account = ? AND password = ? AND is_deleted = 0

JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@8289b088] will not be managed by Spring

==>  Preparing: SELECT * FROM blade_user WHERE tenant_id = ? AND account = ? AND password = ? AND is_deleted = 0

==> Parameters: 000000(String), admin(String), 90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad(String)



五、若有更多详细信息,请在下面提供。

问题解决, 特来分享给大家: 是连接池配置的问题,  外网访问时,需要追两个参数:

druid:

    keep-alivetrue

    keep-alive-between-time-millis: 30000

    time-between-eviction-runs-millis15000

追上去就可以了

3条回答
  •  gtfhao
    gtfhao (楼主)
    2022-12-26 09:20

    问题解决, 特来分享给大家: 是连接池配置的问题,  外网访问时,需要追两个参数:

    druid:

        keep-alivetrue

        keep-alive-between-time-millis30000

        time-between-eviction-runs-millis15000

    追上去就可以了


提交回复