为什么在创建kafkaconsumer时出现configexception“expected a comma separated list”错误

wooyq4lh  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(795)

我想创造一个 KafkaConsumer 以下是 Groovy 代码:

Properties props = new Properties()
props.put('bootstrap.servers', "$SERVER_ADDRESS:$port")
props.put('key.deserializer', StringDeserializer.name,)
props.put('value.deserializer', StringDeserializer.name)
return new KafkaConsumer<String, String>(props)

当我执行它时,我得到以下错误:
org.apache.kafka.common.config.configexception:无效值localhost:9092 for configuration bootstrap.servers:应为逗号分隔的列表。
我的代码基本上与从这里创建消费者的示例相匹配
为什么我的版本不起作用?

c9qzyr3d

c9qzyr3d1#

在使用kafkaconsumer或kafkaproducer的版本0.10.0中,它需要一个字符串数组。你在传递一根线。

uqjltbpv

uqjltbpv2#

在本例中,props对象希望其值的类型为object,而不仅仅是string。因此,当 "$SERVER_ADDRESS:$port" 作为属性添加,它不会强制为字符串,而是存储为gstringimpl。
在创建kafkaconsumer之前所做的类型检查知道如何处理字符串属性值,但不知道如何处理gstringimpl并抛出错误。
将线路改为此工程:

props.put('bootstrap.servers', "$SERVER_ADDRESS:$port".toString())

相关问题