首页 > 解决方案 > 我正在尝试让 SimpleProducer Scala 示例正常工作:当我启动 Kafka Producer 时,它似乎连接到了错误的代理

问题描述

我正在尝试按照教程在 Scala 中制作一个简单的 Kafka 制作人。我已经使用 docker-compose 文件在附近的服务器上设置了 Kafka 堆栈。我已经验证我的 Kafka 堆栈似乎是活动的。Nmap 可以看到服务器上打开的端口 9092,在本例中为lonxukgascar01.hetco.com

我创建了一个具有以下内容的 Properties 对象:

{retries=3, value.serializer=org.apache.kafka.common.serialization.StringSerializer, acks=1, bootstrap.servers=lonxukgascar01.hetco.com:9092, producer.type=sync, key.serializer=org.apache.kafka.common.serialization.StringSerializer, linger.ms=5} 

...然后我像这样设置我的 KafkaProducer:

private val producer: KafkaProducer[String, String] =
    new KafkaProducer[String, String](kafkaProps)

看起来我可以使用这些设置创建一个新的 KafkaProducer 实例,但是当我尝试发送同步消息时出现此错误:

2516   WARN  org.apache.kafka.clients.NetworkClient {35} - [Producer clientId=producer-1] Connection to node 1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available. 

它试图连接到与我在属性中指定的完全不同的代理。我猜这意味着 KafkaProducer 对象在某种程度上配置错误。它也可能是相关的,但我收到了这个警告:

275    WARN  org.apache.kafka.clients.producer.ProducerConfig {35} - The configuration 'producer.type' was supplied but isn't a known config.

这看起来很奇怪,因为“sync”和“async”都应该是合法值。谁能指出我在这里做错了什么?

标签: scalaapache-kafka

解决方案


推荐阅读