У меня есть 2 отдельных док-контейнера.Один (openjdk:alpine
) работает под управлением Apache Kafka.На другом (node:alpine
) работает кафка-узел.Я был в состоянии создавать темы и создавать сообщения.Я также успешно использовал эти сообщения через java и kafka-node локально в контейнере, где запущен Kafka.Однако, когда я беру тот же код узла kafka и помещаю его в свой выделенный контейнер NodeJS, я больше не могу использовать ИЛИ генерировать сообщения.Однако мне кажется странным, что я могу перечислить все темы, используя KafkaAdmin.
Я просмотрел документы и прошел через многочисленные темы S / O, но не повезло.Я чувствую, как будто это что-то делать с комбинацией переменных среды и server.properties?Я также попытался включить отладчик и заметил, что как для потребителя, так и для производителя сокет будет закрываться почти сразу после каждого повторного соединения.
IP
My host-ip: host
My container-ip running Apache-Kafka: apachekafka
My container-ip running kafka-node: kafkanode
Server.Properties в контейнере Apache-Kafka
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://:9092
consumer.js
var kafka = require('kafka-node')
const client = new kafka.KafkaClient({kafkaHost:"apachekafka:9092"})
const consumer = new kafka.Consumer(
client,
[{ topic: 'topic1', partition: 0 }],
{autoCommit: false}
)
consumer.on('message', function (message) {
console.log(message);
});
consumer.on('error', function (err) {
console.error(err)
})
Любая помощь или руководство очень ценится.