kafka自定义配置信息踩坑

news/2024/10/24 2:24:38/

org.apache.kafka.common.config.ConfigException: Invalid value 0 for configuration acks: Expected value to be a string, but it was a java.lang.Integer

场景描述:
单个kafka使用springboot框架自带的 yml 配置完全OK(因为底层会帮我们处理好类型)
但是我用到了多个kafka,并且kafka的信息都是从远端获取的,那么我创建消费者和创建生产者都是动态的,但是当我使用其中一个生产者发送消息的时候爆出上述错误;

根本原因 acks的配置值希望是 string,但是我写的是integer

源码解释一下:
在这里插入图片描述
getstring
在这里插入图片描述
测试一下发现会报错:
在这里插入图片描述

修改后:

    /*** 构造生产者配置* @param ip* @param port* @return*/private Map<String, Object> buildDefaultKafkaProducerMap(String ip, Integer port) {Map<String, Object> propertiesMap = new HashMap<>();propertiesMap.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, ip + ":" + port);propertiesMap.put(ProducerConfig.RETRIES_CONFIG, 0);propertiesMap.put(ProducerConfig.BATCH_SIZE_CONFIG, 20960);//单独批次发送数据量propertiesMap.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class.getName());propertiesMap.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class.getName());propertiesMap.put(ProducerConfig.ACKS_CONFIG, "0");propertiesMap.put(ProducerConfig.BUFFER_MEMORY_CONFIG, 67108864);//发送数据缓存propertiesMap.put(ProducerConfig.LINGER_MS_CONFIG, 10);//超过10ms未发送则强制发送return propertiesMap;}/*** 构造消费者配置* @param ip* @param port* @return*/private Map<String, Object> buildDefaultKafkaConsumerMap(String ip, Integer port) {Map<String, Object> propertiesMap = new HashMap<>();propertiesMap.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, ip + ":" + port);//earliest:如果消费者组没有已提交的偏移量(即新的消费者组),则从主题的最早消息开始消费//latest:如果消费者组没有已提交的偏移量,则从最新的消息开始消费(即从消费者启动之后生成的消息)propertiesMap.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, consumerAutoOffsetReset);//propertiesMap.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG, 20);//自动提交时间间隔propertiesMap.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);//不自动提交偏移量 手动提交propertiesMap.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class.getName());propertiesMap.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class.getName());propertiesMap.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 60000);//在时间内没有收到心跳,则该消费者会被剔除组propertiesMap.put(ConsumerConfig.GROUP_ID_CONFIG, consumerGroupId);propertiesMap.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 50);//单次拉取50条数据return propertiesMap;}

http://www.ppmy.cn/news/1541492.html

相关文章

探索 JavaScript 事件机制(一):从基础概念到实战应用

前言 在现代前端开发中&#xff0c;JavaScript 事件是实现用户交互的核心机制之一。无论是按钮点击、鼠标移动还是键盘输入&#xff0c;这些用户操作都会触发特定的事件&#xff0c;从而使网页变得更加动态和响应式。然而&#xff0c;许多初学者对事件的概念和使用方法感到困惑…

上拉电阻和下拉电阻在电路中的作用(一)

上拉电阻和下拉电阻在电路中的作用&#xff08;一&#xff09; 1.什么是上下拉电阻2.上下拉电阻的作用&#xff1a;2.1.维持输入引脚处于稳定状态。2.2.配合三极管和MOS进行电平转换电路设计2.3.OC、OD电路&#xff08;Open Collector集电极开路、Open Drain漏电极开路&#xf…

基于SpringBoot+Vue+uniapp的电影信息推荐APP的详细设计和实现

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不…

c++ STL标准模板库-算法

C Standard Template Library&#xff08;STL&#xff09;算法是一组泛型算法&#xff0c;它们可以在各种容器上操作。这些算法被设计为与容器无关&#xff0c;因此可以在任何提供必要迭代器接口的容器上使用。STL算法分为以下几个主要类别&#xff1a; 非修改算法Non-modifyi…

【华为HCIP实战课程十三】OSPF网络中3类LSA及区域间负载均衡,网络工程师

一、ABR SW1查看OSPF ABR为R4而非R3,因为R4连接骨干区域0,R3没有连接到区域0 R6查看OSPF路由: 二、查看3类LSA,由于R6不是ABR因此自身不会产生3类LSA 但是有区域间路由就可以看到3类LSA

Java面试场景题(1)---如何使用redis记录上亿用户连续登陆天数

感谢uu们的观看&#xff0c;话不多说开始~ 对于这个问题&#xff0c;我们需要先来了解一下~ 海量数据都可以用bitmap来存储&#xff0c;因为占得内存小&#xff0c;速度也很快 我大概计算了一下~ 完全够&#xff1a;String类型512M 1byte 8个bit位 8个状态 512M1024byt…

深入理解Qt中的QTableView、Model与Delegate机制

文章目录 显示效果QTableViewModel(模型)Delegate(委托)ITEM控件主函数调用项目下载在Qt中,视图(View)、模型(Model)和委托(Delegate)机制是一种非常强大的架构,它们实现了MVC(模型-视图-控制器)设计模式。这种架构分离了数据存储(模型)、数据展示(视图)和数据操作(委托),使…

鸿蒙网络编程系列27-HTTPS服务端证书的四种校验方式示例

1. 服务端数字证书验证的问题 在鸿蒙客户端对服务端发起HTTPS请求时&#xff0c;如果使用HttpRequest的request发起请求&#xff0c;那么就存在服务端数字证书的验证问题&#xff0c;你只有两个选择&#xff0c;一个是使用系统的CA&#xff0c;一个是使用自己选定的CA&#xf…