• 线上问题:多实例引发的Read timed out 服务器出错


    现象:页面上偶尔能查出数据,大多数时候转圈圈。

    看日志,第一个实例是正常的,第二个实例报错:

    1. 2023-09-18 02:02:26.428 WARN 7 --- [MessageBroker-1] c.baomidou.mybatisplus.mapper.SqlHelper : Warn: execute Method There are 2 results.
    2. 2023-09-18 02:02:36.438 ERROR 7 --- [MessageBroker-1] com.alibaba.druid.pool.DruidDataSource : {conn-10012} discard
    3. org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.
    4. at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:383) ~[postgresql-42.5.0.jar!/:42.5.0]
    5. at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:316) ~[postgresql-42.5.0.jar!/:42.5.0]
    6. at org.postgresql.jdbc.PgConnection.executeTransactionCommand(PgConnection.java:879) ~[postgresql-42.5.0.jar!/:42.5.0]
    7. at org.postgresql.jdbc.PgConnection.commit(PgConnection.java:901) ~[postgresql-42.5.0.jar!/:42.5.0]
    8. at com.alibaba.druid.filter.FilterChainImpl.connection_commit(FilterChainImpl.java:161) ~[druid-1.2.16.jar!/:na]
    9. at com.alibaba.druid.filter.FilterAdapter.connection_commit(FilterAdapter.java:759) ~[druid-1.2.16.jar!/:na]
    10. at com.alibaba.druid.filter.logging.LogFilter.connection_commit(LogFilter.java:456) ~[druid-1.2.16.jar!/:na]
    11. at com.alibaba.druid.filter.FilterChainImpl.connection_commit(FilterChainImpl.java:156) ~[druid-1.2.16.jar!/:na]
    12. at com.alibaba.druid.filter.stat.StatFilter.connection_commit(StatFilter.java:281) ~[druid-1.2.16.jar!/:na]
    13. at com.alibaba.druid.filter.FilterChainImpl.connection_commit(FilterChainImpl.java:156) ~[druid-1.2.16.jar!/:na]
    14. at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.commit(ConnectionProxyImpl.java:107) ~[druid-1.2.16.jar!/:na]
    15. at com.alibaba.druid.pool.DruidPooledConnection.commit(DruidPooledConnection.java:767) ~[druid-1.2.16.jar!/:na]
    16. at org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit(DataSourceTransactionManager.java:333) [spring-jdbc-5.3.26.jar!/:5.3.26]
    17. at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:743) [spring-tx-5.3.26.jar!/:5.3.26]
    18. at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) [spring-tx-5.3.26.jar!/:5.3.26]
    19. at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:654) [spring-tx-5.3.26.jar!/:5.3.26]
    20. at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:407) [spring-tx-5.3.26.jar!/:5.3.26]
    21. at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) [spring-tx-5.3.26.jar!/:5.3.26]
    22. at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) [spring-aop-5.3.26.jar!/:5.3.26]
    23. at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) [spring-aop-5.3.26.jar!/:5.3.26]
    24. at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) [spring-aop-5.3.26.jar!/:5.3.26]
    25. at com.cloud.service.pro.impl.LeaveDutyServiceImpl$$EnhancerBySpringCGLIB$$caca7360.updateById() [classes!/:1.0-SNAPSHOT]
    26. at com.cloud.controller.pro.DataScheduler.lambda$syncLeaveDuty$5(DataScheduler.java:336) [classes!/:1.0-SNAPSHOT]
    27. at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) ~[na:1.8.0_212]
    28. at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) ~[na:1.8.0_212]
    29. at com.cloud.controller.pro.DataScheduler.syncLeaveDuty(DataScheduler.java:327) [classes!/:1.0-SNAPSHOT]
    30. at com.cloud.controller.pro.DataScheduler.leaveDutyNoAreaJob(DataScheduler.java:286) [classes!/:1.0-SNAPSHOT]

    数据库报出来的错误,这才想起,服务里面定时任务有定时更新的功能,同时更新一个表可不得timed out 吗?

    结论:多实例的的定时任务要改造成xxljob才行。

  • 相关阅读:
    2024.2.25 -ElasticSearch 进阶
    你知道不同U盘在ARM+Linux下的读写速率吗?
    运维基础环境搭建
    redis之主从复制和哨兵模式
    C 基础语法3 —— 指针
    置换环建笛卡尔树:AT_wtf22Day1B
    TikTok为什么无法关注其他人?
    37岁生日快乐哦:说点大实话
    ENSP常用指令
    Istio组件以及架构
  • 原文地址:https://blog.csdn.net/carterslam/article/details/132968340