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)

Reply via email to