联调过程遇到的rocketmq问题

这几天与其它组同事一起联调项目,也遇到了几个问题,做个记录.

1. jar包问题

我们组在向外部发送消息的时候,将消息序列化成字节数组使用的序列化工具是Hessian.序列化类是com.caucho.hessian.io.HessianOutput

而我的那个同事使用的反序列化是alibaba旗下的一个jar
在这里插入图片描述

在这里插入图片描述
序列化和反序列化使用不同的jar包,导致反序列化的时候会报错.

2. 消息体类中重写属性

第一个问题解决以后,又出现了第二个问题,有一个属性,同事使用说反序列化之后得到的是null,我首先确定了下发送出去的消息中这个属性是有值的,可是为什么同事反序列化之后,没有值呢?

首先看下消息体类
在这里插入图片描述

在这里插入图片描述
大家看出来了端倪,子类和父类居然有相同的属性,这也就验证了同事说的问题,最后把子类中的相同属性去掉,问题就解决了. 后续可以研究下反序列化原理,为啥相同的属性就反序列化不出来了.

3. 消息堆积

第二个问题又解决了,可是同事又告诉我说,消息没有收到,我看了下日志,确定消息发送出去了,在阿里云的RAM里面也确定消息发送出去了,显示的的确同事没有消费消息.
最终发现,同事订阅了我们主题的所有TAG,而他的代码中只是处理了部分的TAG,导致消息堆积了,于是他改了下TAG,只关心他需要的TAG,消息堆积不在出现,问题解决.

以上就是在项目联调过程遇到的几个问题,这里记录下