0

Beim Schreiben von Kafka Producer Code in Eclipse bekomme ich eine Fehlermeldung unter, Hier möchte ich einen einfachen Producer Code schreiben und die Nachricht auf der kafka Konsole anzeigen Verbraucher Ich habe den Tierpfleger und Kafka-Server gestartet und das Thema perfekt erstellt.Fehlendes erforderliches Argument "[autorizer-properties]" apache kafka einfacher Erzeuger api Fehler

Hier Code:

import java.util.Properties; 
import kafka.javaapi.producer.Producer; 
import kafka.producer.KeyedMessage; 
import kafka.producer.ProducerConfig; 

public class ProducerTest { 
    public static void mian(String ar[]){ 
     Properties prop=new Properties(); 

     prop.put("zk.connect","localhost:2181"); 
     prop.put("serializer.class","kafka.serializer.StringEncoder"); 
     prop.put("metadata.broker.list","localhost:9092"); 

     ProducerConfig config=new ProducerConfig(prop); 

     Producer producer=new Producer(config); 

     String msg="Sa resta rasta ra"; 

     producer.send(new KeyedMessage("test",msg)); 
    } 
} 

Missing required argument "[authorizer-properties]" 
Option         Description        
----*emphasized text*--         -----------        
--add         Indicates you are trying to add ACLs. 
--allow-host <allow-host>    Host from which principals listed in -- 
             allow-principal will have access. If 
             you have specified --allow-principal 
             then the default for this option  
              will be set to * which allows access 
              from all hosts.      
--allow-principal <allow-principal>  principal is in principalType:name  
             format. User:* is the wild card 

jemand bitte helfen Sie mir, um diesen Fehler zu beheben.

+0

Jeder, wie ich die Lösung, erzeuge ich eine andere Klasse, die Hauptmethode enthalten und ich Hauptmethode von ProducerTest Klasse entfernen und Code in einem einfachen void-Methode setzen durch den Aufruf einer Methode wird es funktionieren. –

Antwort

0

Ich weiß nicht, warum ich diese Fehlermeldung bekam Aber jetzt ist es automatisch gegangen Ich erstelle nur getrennte Methode für die Verbindung und rufen Sie diese Methode von der Hauptmethode.

public static void main(String ar[]){ 
ProducerTest producer=new ProducerTest(); 
producer.messageConnetion(); 
} 

public void messageConnetion(){ 
Properties properties=new Properties(); 

properties.put("zk.connect","localhost:8121"); 
properties.put("serializer.class","kafka.serializer.StringEncoder"); 
properties.put("metadata.broker.list","localhost:9092"); 

ProducerConfig config=new ProducerConfig(prop); 

Producer<String, String> producer=new Producer<String, String> (config) 

producer.send(new KeyedMessage<String, String> ("test","JaySiyaRam")); 
}