0

I've been trying to connect my containerised spring-boot project with a of kafka and zookeeper running on my localhost but i seem to be getting an error when i run the docker images.

enter image description here

does anyone know what could be causing this error and if so , what the best way to go about fixing it?

i alreadyhave ports 9092 and 2021 exposed

edit: i was asked to post the text:

2020-04-15 06:55:34,872 [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1] DEBUG common.network.Selector.pollSelectionKeys - [Consumer clientId=consumer-1, groupId=message] Connection with /172.17.59.17 disconnected
java.net.NoRouteToHostException: No route to host
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
        at org.apache.kafka.common.network.PlaintextTransportLayer.finishConnect(PlaintextTransportLayer.java:50)
        at org.apache.kafka.common.network.KafkaChannel.finishConnect(KafkaChannel.java:216)
        at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:531)
        at org.apache.kafka.common.network.Selector.poll(Selector.java:483)
        at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:539)
        at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:262)
        at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:233)
        at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:212)
        at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:249)
        at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.poll(ConsumerCoordinator.java:326)
        at org.apache.kafka.clients.consumer.KafkaConsumer.updateAssignmentMetadataIfNeeded(KafkaConsumer.java:1251)
        at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1216)
        at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1201)
        at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doPoll(KafkaMessageListenerContainer.java:993)
        at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.pollAndInvoke(KafkaMessageListenerContainer.java:949)
        at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:901)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.lang.Thread.run(Thread.java:748)
2020-04-15 06:55:34,874 [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1] DEBUG kafka.clients.NetworkClient.handleDisconnections - [Consumer clientId=consumer-1, groupId=message] Node -1 disconnected.
jay moyo
  • 29
  • 1
  • 5
  • 2
    Why is there a `/` showing up before IP? – Technext Apr 15 '20 at 07:05
  • kafka seems to add the / at the beginning of the IP for some reason. but as far as i am aware it doesn't seem to affect the connection and is ignored – jay moyo Apr 15 '20 at 07:14
  • Please can you post the actual text, not a screenshot. As an image it makes it harder for people to read, and also cannot be searched by people in the future. Thanks :) – Robin Moffatt Apr 15 '20 at 07:21

1 Answers1

0

You need to configure your Kafka broker with correct advertised.listeners. At the moment your Spring client is connecting to the broker for the initial connection, but then receives an internal IP/host from Kafka for subsequent connections, which then fail.

Here's an example of Docker and Zookeeper running in Docker with listeners configured for external connections.

You can read more here: https://rmoff.net/2018/08/02/kafka-listeners-explained/

Robin Moffatt
  • 30,382
  • 3
  • 65
  • 92
  • Can we please start closing these questions as duplicates? I editted my answer there to be a wiki so I don't get rep. And your blog is linked there and it offers solutions for all popular Kafka container images... – OneCricketeer Apr 15 '20 at 17:47