JAVA-上帝之手 2023-11-11 10:40 采纳率: 0%
浏览 30
已结题

stream-kafka批量消费

springcloud-stream-kafka 使用批量消费消息的时候(已添加bathc-mode = true),怎么获取到批量消息。如下代码,在获取到消息的时候,老是提示 tokenJosn 不能转String。。有没有兄弟知道怎么解决

@Bean
  public Consumer<Message<List<String>>> myEvent(){
      return message -> {
            List<String> mess= message.getPayload();
      }
  }

  • 写回答

14条回答 默认 最新

  • 木头人123。 2023-11-11 11:08
    关注
    获得0.15元问题酬金

    Spring Cloud Stream Kafka默认对消息进行字节序列化和反序列化,它将消息载荷作为字节数组处理。当你试图将消息载荷转换为String列表时,可能会出现问题,因为实际上它们是字节数组。

    为了解决这个问题,你可以在消费者端配置Spring Cloud Stream Kafka使用String的反序列化器。在你的配置文件(如application.properties或application.yml)中添加以下配置:

    spring.cloud.stream.kafka.bindings.myEvent-in-0.consumer.configuration.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer
    

    这将配置Kafka消费者使用StringDeserializer反序列化消息的值。

    然后,你可以在消费者方法中将消息载荷作为字符串列表处理:

    @Bean
    public Consumer<List<String>> myEvent() {
        return list -> {
            for (String s : list) {
                // 处理字符串s
            }
        };
    }
    

    注意,这里假设myEvent-in-0是你的输入绑定的名称,你需要将其替换为实际的输入绑定名称。同样,如果你的方法名或者函数的签名与上述代码不同,你也需要相应地修改你的配置和代码。

    评论

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 赞助了问题酬金15元 11月11日
  • 创建了问题 11月11日

悬赏问题

  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 C++行情软件的tick数据如何高效的合成K线
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战
  • ¥15 svpwm波形异常求解答