@KafkaListener 生成 ConsumerRecord 而不是 Avro Schema 对象
@KafkaListener produces ConsumerRecord instead of Avro Schema Object
我的微服务设置如下。
A -> B -> C
A 生成主题 a.b,B 生成主题 b.c
A 和 B 之间的通信是完美的,但我没有写。
B和C的通讯断了我确实写了
当为 B 接收 A 的数据而调用带有 @KafkaListener 注释的方法时,数据被整齐地放入一个对象中作为我们定义的 avro 模式(它使用 avro 序列化发送)。对于 B 的 C 消费者而言,情况并非如此。@KafkaListener 函数改为接收 ConsumerRecord。还有一个为 B->C 定义的模式,我们将其配置为与 A->B 相同的方式,但由于某种原因,它的行为不同。
我已经复制了 A 和 B 的生产者和消费者配置,但是我更改了涉及的模式。
为什么会这样,是不是我遗漏了什么地方的配置?
两者都使用相同版本的 org.springframework.kafka 2.2.7RELEASE。
代码很多,如果您需要更多信息,请 lmk。
编辑:看起来好像消息是空的,使用了 ConsumerRecord 对象。什么原因会导致消息被清空。我可以保证生产者发送一个带有信息的对象。
如果@KafkaListener 无法反序列化正在发送的数据,就会发生这种情况,通常是因为您发送的数据带有空值
我的微服务设置如下。 A -> B -> C A 生成主题 a.b,B 生成主题 b.c A 和 B 之间的通信是完美的,但我没有写。 B和C的通讯断了我确实写了
当为 B 接收 A 的数据而调用带有 @KafkaListener 注释的方法时,数据被整齐地放入一个对象中作为我们定义的 avro 模式(它使用 avro 序列化发送)。对于 B 的 C 消费者而言,情况并非如此。@KafkaListener 函数改为接收 ConsumerRecord。还有一个为 B->C 定义的模式,我们将其配置为与 A->B 相同的方式,但由于某种原因,它的行为不同。
我已经复制了 A 和 B 的生产者和消费者配置,但是我更改了涉及的模式。
为什么会这样,是不是我遗漏了什么地方的配置? 两者都使用相同版本的 org.springframework.kafka 2.2.7RELEASE。
代码很多,如果您需要更多信息,请 lmk。
编辑:看起来好像消息是空的,使用了 ConsumerRecord 对象。什么原因会导致消息被清空。我可以保证生产者发送一个带有信息的对象。
如果@KafkaListener 无法反序列化正在发送的数据,就会发生这种情况,通常是因为您发送的数据带有空值