Report Portal升级至5.8.0(23.1)后service-api间歇性异常宕机求助
Report Portal 5.6.3升级至5.8.0(23.1)后service-api异常宕机问题解决
核心错误分析
1. 序列化版本不匹配(InvalidClassException)
日志中出现Overriding serialized class version mismatch: local serialVersionUID = 550 stream serialVersionUID = 520,说明升级后service-api的类序列化版本号变更,但RabbitMQ队列中仍残留旧版本的序列化消息,消费时解析失败。
2. RabbitMQ通道超时(ChannelContinuationTimeoutException)
Continuation call for method #method<channel.open>(out-of-band=) on channel AMQChannel timed out表明service-api无法在超时时间内创建RabbitMQ通道,可能由资源不足、网络问题或连接池配置不合理导致。
解决方案
针对序列化版本不匹配问题
- 清理RabbitMQ旧消息:
- 停止所有Report Portal容器;
- 登录RabbitMQ管理界面,找到Report Portal相关的队列(如
analyzer-logs,reportportal-logs等),清空队列内的所有消息,或直接删除队列后重启服务让系统自动重建; - 确保所有组件(service-api、analyzer、ui等)均升级至5.8.0版本,禁止混合运行不同版本的容器。
针对RabbitMQ通道超时问题
- 检查RabbitMQ资源状态:查看RabbitMQ服务器的CPU、内存使用率,若因消息积压导致负载过高,先清理积压消息再重启服务;
- 调整RabbitMQ连接池配置:修改service-api的配置文件(如
application.yml),增加连接超时和通道缓存参数:spring: rabbitmq: connection-timeout: 60000 # 调整为60秒 cache: channel: size: 100 # 增大通道缓存数 checkout-timeout: 30000 # 通道获取超时调整为30秒 - 排查网络连通性:确认service-api容器与RabbitMQ容器之间的网络无丢包、延迟过高情况,可通过容器内ping命令测试;
- 重启RabbitMQ服务:重启RabbitMQ容器,重置连接状态后再启动Report Portal服务。
内容的提问来源于stack exchange,提问作者Raghav Garg
相关产品推荐
相关产品推荐

