开发者社区 > 云原生 > Serverless > 正文

函数计算服务启动时报错 RuntimeInitializationError,怎么解决?

函数计算服务启动时报错 RuntimeInitializationError,怎么解决?08:48:43.591 [background-preinit] [traceId:] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final
08:48:43.607 [main] [traceId:] INFO c.r.RuoYiApplication - [logStarting,55] - Starting RuoYiApplication using Java 17.0.2 on c-668ba7e9-159eaf6e-9ee23066d718 with PID 1 (/code/ruoyi-admin/target/ruoyi-admin.jar started by root in /code)
08:48:43.607 [main] [traceId:] DEBUG c.r.RuoYiApplication - [logStarting,56] - Running with Spring Boot v2.5.15, Spring v5.3.33
08:48:43.608 [main] [traceId:] INFO c.r.RuoYiApplication - [logStartupProfileInfo,686] - The following 1 profile is active: "druid"
08:48:47.993 [main] [traceId:] INFO o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-8080"]
08:48:47.995 [main] [traceId:] INFO o.a.c.c.StandardService - [log,173] - Starting service [Tomcat]
08:48:47.998 [main] [traceId:] INFO o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.75]
08:48:48.136 [main] [traceId:] INFO o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext
08:48:49.115 [main] [traceId:] DEBUG c.r.f.s.f.JwtAuthenticationTokenFilter - [init,242] - Filter 'jwtAuthenticationTokenFilter' configured for use
08:48:57.665 [main] [traceId:] ERROR c.a.d.f.s.StatFilter - [internalAfterStatementExecute,504] - slow sql 5520 millis. SELECT 1 FROM DUAL[]
08:49:06.372 [main] [traceId:] INFO c.a.d.p.DruidDataSource - [init,1009] - {dataSource-1} inited
08:49:06.973 [main] [traceId:] DEBUG c.r.s.m.S.selectConfigList - [debug,135] - ==> Preparing: select config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark from sys_config
08:49:07.971 [main] [traceId:] DEBUG c.r.s.m.S.selectConfigList - [debug,135] - ==> Parameters:
08:49:09.169 [main] [traceId:] DEBUG c.r.s.m.S.selectConfigList - [debug,135] - <== Total: 6
08:49:45.569 [main] [traceId:] DEBUG c.r.s.m.S.selectDictDataList - [debug,135] - ==> Preparing: select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark from sys_dict_data WHERE status = ? order by dict_sort asc
08:49:46.868 [main] [traceId:] DEBUG c.r.s.m.S.selectDictDataList - [debug,135] - ==> Parameters: 0(String)
08:49:48.071 [main] [traceId:] ERROR c.a.d.f.s.StatFilter - [internalAfterStatementExecute,504] - slow sql 1198 millis. select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark
from sys_dict_data
WHERE status = ?
order by dict_sort asc["0"]
08:49:48.973 [main] [traceId:] DEBUG c.r.s.m.S.selectDictDataList - [debug,135] - <== Total: 29
Function instance health check failed on port 8080 in 120 seconds.

展开
收起
三分钟热度的鱼 2024-07-17 22:28:43 69 0
1 条回答
写回答
取消 提交回答
  • 根据您提供的日志信息,服务在启动过程中未能在120秒内通过健康检查,具体错误信息为:Function instance health check failed on port 8080 in 120 seconds. 这通常意味着您的应用程序(在这个案例中是运行在Java Spring Boot环境下的RuoYi应用)未能在预期的时间内正确启动并监听在指定的端口8080上。
    从日志中可以看到,应用程序初始化过程包括了Hibernate Validator初始化、Spring Boot启动、数据库连接池Druid初始化以及一系列的SQL查询等操作。尽管大部分组件似乎初始化成功,但最终未能成功启动Web服务来响应健康检查。
    解决方案与建议:

    检查启动耗时操作:
    日志中提到的慢SQL查询(slow sql 5520 millis 和 slow sql 1198 millis)可能拖延了整体启动时间。优化这些查询或者考虑在应用启动阶段是否有必要执行这些查询,可以减少启动时间。

    健康检查配置:
    考虑调整函数计算的服务健康检查配置,如果可能的话,增加健康检查的超时时间,给予应用更长的启动时间。这需要在函数计算控制台上进行相应的设置。

    异步初始化:
    如果有部分初始化操作不是立即必要的,可以考虑将其改为异步执行,以尽快完成应用启动并监听端口。

    优化启动流程:
    仔细审查应用的启动流程,看是否有可以并行处理的初始化任务,或是移除不必要的启动时任务。

    资源检查:
    确保函数实例分配的资源(如内存、CPU)足够支撑应用的启动和运行需求。如果资源不足,也可能导致启动缓慢或失败。

    日志深入分析:
    查看是否有其他错误日志或警告信息,这些可能间接影响了应用的启动过程。

    注意事项:

    确保您的应用程序在本地环境下能够顺利启动,并达到可以接收请求的状态,这有助于排除是代码本身的问题还是环境配置的问题。
    在进行上述调整后,多次测试以验证问题是否得到解决,并观察应用的实际运行表现。

    综上所述,您需要关注并优化启动过程中的耗时操作,调整健康检查设置,并确保资源配置充足,以此来解决健康检查失败的问题。 此回答整理自钉群“阿里函数计算客户【已满,加2群:64970014484】”

    2024-07-18 08:52:54
    赞同 10 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载