记录一次Powerjob踩的坑(Failed to deserialize message)

一. 问题描述:

在本地开发环境, server端和worker都运行正常. 但是发布到SIT环境(容器)的时候, 服务端却监测不到worker(worker可以找到服务端)

二. 问题表现:

1.服务端看不到Worker信息
在这里插入图片描述
2. 服务端日志信息
在这里插入图片描述

: Failed to deserialize message from [akka://oms@111.111.111.111:27778] with serializer id [6] and manifest []. com.esotericsoftware.kryo.kryo5.KryoException: Unable to read unknown data (unknown type). (tech.powerjob.common.request.WorkerHeartbeat#null)
  1. Worker正常启动
    Worker正常启动, 说明worker是可以找到服务端的, 证明网络是没问题的.(一直怀疑容器的网络问题)
三. 处理过程
  • 联系容器专家, 排查是不是容器或者部署环境的问题, 最终没有定位到问题.
  • 联系技术专家, 通过分析日志, 找到了上面服务端打印的日志信息.但是问题依然很模糊,此时问题已经持续了三天,欲哭无泪呀.
  • 度娘各种查询, 没有可用消息,沉思中…
  • 最后, 到开源社区继续搜索. 突然想到去开源社区的issues搜搜看看是否有用的信息.
    果然有发现:
    在这里插入图片描述
    查看开发环境版本,果然有问题:
    由于SIT环境上的服务端是直接拉去的官方镜像,而且是latest版本, 而我本地的版本要低于这个版本.
    最后修改服务端的镜像版本和worker版本保持一致(4.2.0),重新部署应用, 奇迹发生了.
  • 镜像版本:
image: 'tjqq/powerjob-server:4.2.0
  • worker版本:
<dependency>
    <groupId>tech.powerjob</groupId>
    <artifactId>powerjob-worker-spring-boot-starter</artifactId>
    <version>4.2.0</version>
</dependency>
<dependency>
    <groupId>tech.powerjob</groupId>
    <artifactId>powerjob-official-processors</artifactId>
    <version>1.2.1</version>
</dependency>

四. 结论

问题原因:服务端的版本和worker版本不一致导致的.

到此问题终于解决.
对于开源的项目,还是要时刻保持警惕呀~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值