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)