前言:之前博客里面提到本公司为物联网项目。项目中使用mqtt+kafka进行与设备端的通讯,之前的协议格式为json格式,现在改成字节数组byte[]格式进行通信。

  • 报错信息如下
Can't convert value of class [B to class org.apache.kafka.common.serialization.StringSerializer specified in value.serializer

Field kafkaTemplateByte in com.hiss.producer.KafkaNewProducer required a bean of type 'org.springframework.kafka.core.KafkaTemplate' that could not be found.
- Bean method 'kafkaTemplate' in 'KafkaAutoConfiguration' not loaded because @ConditionalOnMissingBean (types: org.springframework.kafka.core.KafkaTemplate; SearchStrategy: all) found bean 'kafkaTemplate'


Action:
Consider revisiting the conditions above or defining a bean of type 'org.springframework.kafka.core.KafkaTemplate' in your configuration.

  • 分析原因
    之前声明KafkaTemplate时候value值为String,后续改为byte[]时候,未将KafkaTemplate的value类型改为byte[]类型。

  • 解决办法

 public KafkaTemplate<String, byte[]> kafkaTemplateByte() {
    	return new KafkaTemplate<String,byte[]>(producerFactoryByte());
    }
Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐