我正在创建一个Kafka消费者。
使用这篇文章我安装了Zooker和Kafka。 https://dzone.com/articles/running-apache-kafka-on-windows-os
使用此文档我正在配置入站Kafka端点 https://docs.wso2.com/display/EI611/Kafka+Inbound+Protocol
当我尝试部署入站端点时,我收到此错误
[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...
[2017-09-22 12:19:08,152] []错误 - KAFKAMessageListener错误 加载Zookeeper时创建Kafka Consumer Connector.Exception JAAS登录环境'客户' org.apache.kafka.common.KafkaException:加载Zookeeper JAAS登录上下文时的异常'客户端'
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
引起:java.io.IOException:C:\ WS02 \ WSO2EI~1.1 \ bin .. \ repository \ conf \ identity \ jaas.conf(没有这样的 文件或目录)
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)
答案 0 :(得分:0)
如果您需要在没有安全性的情况下配置Kafka,则推荐版本为0.8.1.1。
从Kafka 0.9版开始,他们已经引入了带有SSL和SASL的Kafka安全机制,它将通过JAAS进行配置。因此,在使用WSO2产品(EI,DAS,CEP)配置Kafka时,您需要将此配置文件(jaas.conf)添加到/ repository / conf / identity。
在这种情况下,WSO2产品充当Kafka客户端,jaas.conf中的配置将用于登录kafka服务器。请遵循Kafka安全文档[1]来配置服务器和客户端的安全性。
为SASL / Plaintext配置的jaas.conf文件的示例内容。
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";
};
请注意,kafka 0.9仅支持SASL / Kerberos身份验证。请仔细阅读与您的Kafka版本相关的Kafka安全文档并进行正确配置。
[1] http://kafka.apache.org/090/documentation.html#security_sasl