2017-09-22 6 views
0

Ich erstelle einen Kafka Consumer.wso2 Inbound Endpunkt - Kafka Consumer

Mit diesem Artikel installierte ich Zooker und Kafka. https://dzone.com/articles/running-apache-kafka-on-windows-os

diese Dokumentation ich mit dem Inbound Kafka Endpoint https://docs.wso2.com/display/EI611/Kafka+Inbound+Protocol

Als ich erhalte ich diesen Fehler

[2017-09-22 12:19:06,161] [] ERROR - KAFKAPollingConsumer Error in Creating Kafka Consumer Connector 
[2017-09-22 12:19:08,150] [] INFO - KAFKAMessageListener Creating Kafka Consumer Connector... 

[Inbound Endpoint bereitstellen versuchen bin Konfiguration 2017.09.22 12: 19: 08,152] [] ERROR - KAFKAMessageListener Fehler in Erstellen von Kafka Consumer Connector.Exception beim Laden von Zookeeper JAAS Login-Kontext 'Client' org.apache.kafka.common.KafkaException: Ausnahme beim Zookeeper JAAS Login Kontext 'Client'

 at org.apache.kafka.common.security.JaasUtils.isZkSecurityEnabled(JaasUtils.java:43) 
     at kafka.consumer.ZookeeperConsumerConnector.connectZk(ZookeeperConsumerConnector.scala:197) 
     at kafka.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:142) 
     at kafka.javaapi.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:67) 
     at kafka.javaapi.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:70) 
     at kafka.consumer.Consumer$.createJavaConsumerConnector(ConsumerConnector.scala:123) 
     at kafka.consumer.Consumer.createJavaConsumerConnector(ConsumerConnector.scala) 
     at org.wso2.carbon.inbound.endpoint.protocol.kafka.KAFKAMessageListener.createKafkaConsumerConnector(KAFKAMessageListener.java:56) 
     at org.wso2.carbon.inbound.endpoint.protocol.kafka.KAFKAPollingConsumer.poll(KAFKAPollingConsumer.java:145) 
     at org.wso2.carbon.inbound.endpoint.protocol.kafka.KAFKAPollingConsumer.execute(KAFKAPollingConsumer.java:116) 
     at org.wso2.carbon.inbound.endpoint.protocol.kafka.KAFKATask.taskExecute(KAFKATask.java:48) 
     at org.wso2.carbon.inbound.endpoint.common.InboundTask.execute(InboundTask.java:45) 
     at org.wso2.carbon.mediation.ntask.NTaskAdapter.execute(NTaskAdapter.java:98) 
     at org.wso2.carbon.ntask.core.impl.TaskQuartzJobAdapter.execute(TaskQuartzJobAdapter.java:67) 
     at org.quartz.core.JobRunShell.run(JobRunShell.java:213) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:748) 
Caused by: java.lang.SecurityException: java.io.IOException: C:\WS02\WSO2EI~1.1\bin\..\repository\conf\identity\jaas.conf (No such file or directory) 
     at sun.security.provider.ConfigFile$Spi.<init>(ConfigFile.java:137) 
     at sun.security.provider.ConfigFile.<init>(ConfigFile.java:102) 
     at sun.reflect.GeneratedConstructorAccessor74.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
     at java.lang.Class.newInstance(Class.java:442) 
     at javax.security.auth.login.Configuration$2.run(Configuration.java:255) 
     at javax.security.auth.login.Configuration$2.run(Configuration.java:247) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.login.Configuration.getConfiguration(Configuration.java:246) 
     at org.apache.kafka.common.security.JaasUtils.isZkSecurityEnabled(JaasUtils.java:40) 
     ... 19 more 

Bedingt durch das Laden: java.io.IOException: C: \ WS02 \ WSO2EI ~ 1.1 \ bin .. \ Repository \ conf \ Identität \ Jaas.conf (No such Datei oder das Verzeichnis)

 at sun.security.provider.ConfigFile$Spi.ioException(ConfigFile.java:666) 
     at sun.security.provider.ConfigFile$Spi.init(ConfigFile.java:262) 
     at sun.security.provider.ConfigFile$Spi.<init>(ConfigFile.java:135) 

Antwort

0

Wenn Sie Kafka ohne Sicherheit konfigurieren müssen, ist die empfohlene Version 0.8.1.1.

Ab Kafka Version 0.9 haben sie den Kafka-Sicherheitsmechanismus mit SSL und SASL eingeführt, der über JAAS konfiguriert wird. Wenn Sie also Kafka mit WSO2-Produkten (EI, DAS, CEP) konfigurieren, müssen Sie diese Konfigurationsdatei (jaas.conf) zu/repository/conf/identity hinzufügen.

In diesem Fall fungiert das WSO2-Produkt als Kafka-Client und die Konfiguration in der jaas.conf wird zur Anmeldung beim kafka-Server verwendet. Bitte beachten Sie die Kafka Sicherheitsdokumentation [1] zur Konfiguration der Sicherheit für Server und Client.

Beispielinhalt für die Datei jaas.conf, die für SASL/Plaintext konfiguriert ist.

KafkaServer { 
org.apache.kafka.common.security.plain.PlainLoginModule required 
    username="kafka" 
    password="kafka-secret" 
    user_kafka="kafka-secret" 
    user_ibm="ibm-secret"; 
}; 

KafkaClient { 
org.apache.kafka.common.security.plain.PlainLoginModule required 
    username="kafka" 
    password="kafka-secret"; 
}; 

Bitte beachten Sie, dass kafka 0.9 nur SASL/Kerberos-Authentifizierung unterstützt. Bitte beachten Sie die Kafka-Sicherheitsdokumentation zu Ihrer Kafka-Version und konfigurieren Sie diese korrekt.

[1] http://kafka.apache.org/090/documentation.html#security_sasl