You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Michael Anstis (Jira)" <ji...@apache.org> on 2021/11/25 16:23:00 UTC

[jira] [Created] (KAFKA-13482) JRE: Duplicate Key: Multiple bootstrap server URLs

Michael Anstis created KAFKA-13482:
--------------------------------------

             Summary: JRE: Duplicate Key: Multiple bootstrap server URLs
                 Key: KAFKA-13482
                 URL: https://issues.apache.org/jira/browse/KAFKA-13482
             Project: Kafka
          Issue Type: Bug
          Components: clients
    Affects Versions: 2.8.1
         Environment: Docker (Kafka server), Docker (client) and local client.
            Reporter: Michael Anstis


I am running a Kafka server in a Docker Container.

It needs to listen to both the Docker "internal" network and "external" local network.

Some services run in other Docker containers and need Kafka.

Some services run locally, not in Docker, and need the same Kafka instance too.

Configuring bootstrap servers for the single Kafka instance:
{code}kafka.bootstrap.servers=PLAINTEXT://localhost:49212,OUTSIDE://kafka-WLff1:9092{code}
Leads to the following stack trace:
{code}
2021-11-25 16:17:10,559 ERROR [org.apa.kaf.cli.pro.int.Sender] (kafka-producer-network-thread | kafka-producer-kogito-tracing-model) [Producer clientId=kafka-producer-kogito-tracing-model] Uncaught error in kafka producer I/O thread: : java.lang.IllegalStateException: Duplicate key 0 (attempted merging values localhost:49212 (id: 0 rack: null) and kafka-WLff1:9092 (id: 0 rack: null))
	at java.base/java.util.stream.Collectors.duplicateKeyException(Collectors.java:133)
	at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:180)
	at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
	at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
	at org.apache.kafka.common.requests.MetadataResponse$Holder.createBrokers(MetadataResponse.java:414)
	at org.apache.kafka.common.requests.MetadataResponse$Holder.<init>(MetadataResponse.java:407)
	at org.apache.kafka.common.requests.MetadataResponse.holder(MetadataResponse.java:187)
	at org.apache.kafka.common.requests.MetadataResponse.topicMetadata(MetadataResponse.java:210)
	at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.handleSuccessfulResponse(NetworkClient.java:1086)
	at org.apache.kafka.clients.NetworkClient.handleCompletedReceives(NetworkClient.java:887)
	at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:570)
	at org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:327)
	at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:242)
	at java.base/java.lang.Thread.run(Thread.java:832)
{code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)