Sono nuovo di Kafka. Ho creato un produttore java sul mio computer locale e ho impostato un broker Kafka su un'altra macchina, ad esempio M2, sulla rete (posso eseguire il ping, SSH, connettermi a questa macchina). Dal lato Producer nella console Eclipse ottengo "Messaggio inviato". Ma quando controllo la console consumer sulla macchina M2 non riesco a vedere quei messaggi.Kafka: nessun messaggio visualizzato sul consumatore della console dopo il messaggio inviato da Java Producer
mio java codice del produttore è:
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.HashMap;
import java.util.Map;
public class KafkaMessageProducer {
/**
* @param args
*/
public static void main(String[] args) {
KafkaMessageProducer reportObj = new KafkaMessageProducer();
reportObj.send();
}
public void send(){
Map<String, Object> config = new HashMap<String, Object>();
config.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "135.113.133.60:9092");
config.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
config.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer<String, String> producer = new KafkaProducer<String, String>(config);
int maxMessages = 5;
int count = 0;
while(count < maxMessages){
producer.send(new ProducerRecord<String, String>("test", "msg", "message --- #"+count++));
System.out.println("Message send.."+count);
}
producer.close();
}
}
Potete per favore fatemelo sapere dove sto andando male? Posso inviare messaggi localmente sulla macchina M2 dal produttore della console. Nota: anche quando cambio l'indirizzo IP con il nome host completo di Kafka Broker ha ancora lo stesso problema.
Aggiornamento: Penso anche che il produttore sia in grado di connettersi al broker Kafka e inviare i messaggi, ma il broker Kafka non trasmette questi messaggi al consumatore. Se cambio l'indirizzo IP o la porta in Zookeeper (che è in esecuzione sullo stesso nodo di Kafka Broker) e guardo il log di Zookeeper, ottiene il ping Producer e quindi rifiuta la sessione.
Update2: ho creato un jar Producer e ho eseguito questo jar sulla macchina M2 e ha funzionato. Quindi sembra che ci sia qualcosa di sbagliato nel modo in cui Producer tenta di connettersi al broker Kafka. Non sono ancora sicuro di quale sia il problema.
L'utente della console era attivo e in esecuzione prima che il produttore inviasse il messaggio? Hai provato a leggere dall'inizio dell'argomento? – yuyang
Sì. Il consumatore della console era attivo e funzionante. L'ho provato anche dopo che il produttore ha inviato il messaggio. Sto leggendo il consumatore della console del modulo dall'inizio del tema. – user2441441
Non correlato: ho trovato che l'altra domanda non vale così tanti downvotes. Quindi sto dando un risarcimento qui ;-) – GhostCat