首页 > 编程语言 >from type [java.lang.String] to type [org. apache.kafka.clients.consumer.ConsumerRecord<? ?>

from type [java.lang.String] to type [org. apache.kafka.clients.consumer.ConsumerRecord<? ?>

时间:2024-08-08 13:39:01浏览次数:9  
标签:lang java kafka import apache org type ConsumerRecord

kafka消费消息的时候,报错No converter found capable of converting from type [java.lang.String] to type [org. apache.kafka.clients.consumer.ConsumerRecord<? ?>,

没有消费到数据,这种情况可能是发送方发送的数据是封装了多个ConsumerRecord<? ?>对象发送过来的,需要用ConsumerRecords<? ?> 来接收,该对象与前面对象相比后面多了一个 s ,通过对ConsumerRecords<? ?>遍历可以获取多个ConsumerRecord<?, ?>对象,具体代码如下:

import com.alibaba.fastjson.JSON;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Component;

@Component
public class Test{

//多个ConsumerRecord<?, ?>对象接收
@KafkaListener(topics = {"TestTopic01"})
public void consumerMessage01(ConsumerRecords<?, ?> message) {
Iterator<? extends ConsumerRecord<?, ?>> iterator = message.iterator();
while (iterator.hasNext()){
ConsumerRecord<?, ?> next = iterator.next();
Optional optional =Optional.ofNullable(next.value());
//使用 isPresent() 方法判断该对象是否包含非 null 的值
if(optional.isPresent()){
Object msg =optional.get();
//TestEntity是业务中使用到的实体对象
TestEntity testEntity = JSON.parseObject(msg.toString(),TestEntity.class);
}
}

}

//单个ConsumerRecord<?, ?>对象接收
@KafkaListener(topics = {"testTopic02"})
public void consumerMessage02(ConsumerRecord<?, ?> message) {

Optional optional =Optional.ofNullable(message.value());
Object msg =optional.get();
TestEntity testEntity = JSON.parseObject(msg.toString(),TestEntity.class);
}
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/k0307x1990y/article/details/130356983

标签:lang,java,kafka,import,apache,org,type,ConsumerRecord
From: https://www.cnblogs.com/fswhq/p/18348652

相关文章

  • ArcGIS API for JavaScript 3.x 到 4.x 的升级手册
    众所周知,3.x版本主要是构建二维地图,且基本不会再添加新功能;而4.x版本主要是构建于三维地图,与3.x相比并不是简单的升级,基本上就是重写了。所以当我们需要把API从3.x升级到4.x时,应用程序基本上是需要重写的,这里将对API升级过程中涉及到的相关变动进行记录与描述。以下......
  • LangChain代码风格指南:最佳实践与规范
    LangChain代码风格指南:最佳实践与规范引言LangChain作为一个强大的语言模型应用程序开发框架,提供了丰富的组件和工具来简化开发流程。然而,为了确保代码的可读性、可维护性和扩展性,遵循一定的代码风格指南至关重要。本文将详细解释LangChain的代码风格指南,并提供代码示例。......
  • LangChain与Kubernetes的协奏曲:解锁容器编排的新境界
    LangChain与Kubernetes的协奏曲:解锁容器编排的新境界在云计算和微服务架构的浪潮中,Kubernetes已成为容器编排和管理的事实标准。LangChain,作为一个假设的编程辅助工具,如果存在,它可能会支持与Kubernetes集群的集成,以实现代码生成、部署和自动化管理的无缝对接。本文将探讨La......
  • Java 中 Exception 和 Error 有什么区别?
    1.ExceptionException代表程序正常运行过程中可以预料到的意外情况,应该被开发者捕获并进行相应处理。2.ErrorError指在正常情况下不太可能出现的情况。大部分Error导致程序处于不正常、不可恢复的状态,所以不便也不需被开发者捕获,因为这个情况下你捕获了也无济于事......
  • 什么是 Java 中的不可变类?
    不可变类是指创建后无法修改对象状态的类。String类是Java中典型的不可变类。1.不可变类的特点一旦创建,对象的状态就不能被改变。所有成员变量都是final类型。所有可变成员变量都是私有的,并且没有提供修改它们的公共方法。2.不可变类的示例以String类为例,执行s......
  • Flink开发:Java vs. Scala - 代码对比分析,选择你的最佳拍档
    一、引言1.1Flink简介ApacheFlink是一个开源的流处理框架,它支持高吞吐量、低延迟以及复杂的事件处理。Flink的核心是一个流式数据流执行引擎,它的针对数据流的分布式计算提供了数据分发、通信、容错机制。Flink提供了多种API,包括DataStreamAPI(用于构建流处理程序)、D......
  • 基于JAVA的宠物店会员管理系统设计与实现,源码、部署+讲解
    摘要随着计算机和网络的不断革新,世界也已进入了前所未有的电子时代。作为实用性强、应用范围广泛的会员管理系统也在被越来越多的行业所使用。当今社会经济发展迅速,宠物在人们生活中的地位也越来越高。市场上迫切需求一款便携操作的宠物会员管理。因此需要设计开发在效率、功......
  • Java 基础
    Java基础目录Java基础1第一个Java程序2IDEA中的代码结构3Variables与Types3.1数据类型3.2变量的注意事项3.3关键字3.4标识符4运算符4.1算术运算符4.1.1不同数字类型相加4.1.2字符相加4.1.3字符串相加4.3赋值运算符4.4关系运算符4.5逻辑运算符5逻辑控制语句5......
  • Java poi3.17 如何区分获取日期类型的单元格的值
     1、网上看了好多方案,似乎都没有效果。2、解决方法:如果是日期类型的单元格,index是等于3的。但是我偶尔到的情况,不是等于日期类型,也会等于3,这时获取Datedate=cell.getDateCellValue();值会报错,解决方法,就是用try/catch包起来,继续使用dataForMatter.formatCellValue(cel......
  • Java基础(面向对象)
    标签(空格分隔):Java面向对象的特征一:封装与隐藏一、问题引入当我们创建一个类的对象以后,我们可以通过“对象.属性”的方法,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和储存范围的制约。除此之外,没有其他约束条件。但是,实际问题中,我们往往需要给属性赋值加入额外......