Ho scritto un produttore Kafka in NodeJS e Kafka Consumer in Java Maven. Il mio argomento è "test" che è stato creato con il seguente comando:BrokerNotAvailableError: Impossibile trovare il leader Eccezione durante lo Spark Streaming
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Produttore in NodeJS:
var kafka = require('kafka-node');
var Producer = kafka.Producer;
var Client = kafka.Client;
var client = new Client('localhost:2181');
var producer = new Producer(client);
producer.on('ready', function() {
producer.send([
{ topic: 'test', partition: 0, messages: ["This is the zero message I am sending from Kafka to Spark"], attributes: 0},
{ topic: 'test', partition: 1, messages: ["This is the first message I am sending from Kafka to Spark"], attributes: 0},
{ topic: 'test', partition: 2, messages: ["This is the second message I am sending from Kafka to Spark"], attributes: 0}
], function (err, result) {
console.log(err || result);
process.exit();
});
});
Quando invio due messaggi da NodeJS produttore, è consumato con successo da Java Consumer. Ma quando invio di tre o più messaggi da NodeJS produttore, mi dà errore seguente:
{[BrokerNotAvailableError: Impossibile trovare il leader] messaggio: 'Impossibile trovare il leader'}
voglio chiedere come posso impostare LEADER su qualsiasi messaggio in un argomento "test". O quale dovrebbe essere la soluzione per il problema.
Per ottenere più affidabilità è possibile eseguire più numero di broker e abilitare la replica sull'argomento in modo che se il broker leader si arresta, altri broker follower assumono la posizione e si eseguirà meno nella situazione Leaders non disponibile. – anand