Я использую процессор KafkaPublish для публикации сообщений в теме kafka, защищенной с помощью протокола безопасности SASL_SSL (мы не используем Kerberos).

Я получаю следующую ошибку:

WARN Failed to send SSL Close message  
(org.apache.kafka.common.network.SslTransportLayer)
java.io.IOException: An existing connection was forcibly closed by the 
remote host
    at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
    at sun.nio.ch.IOUtil.write(IOUtil.java:65)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
    at 
  org.apache.kafka.common.network.SslTransportLayer.flush(SslTransportLayer.java:209)
    at org.apache.kafka.common.network.SslTransportLayer.close(SslTransportLayer.java:172)
    at org.apache.kafka.common.utils.Utils.closeAll(Utils.java:718)
    at org.apache.kafka.common.network.KafkaChannel.close(KafkaChannel.java:61)
    at org.apache.kafka.common.network.Selector.doClose(Selector.java:746)
    at org.apache.kafka.common.network.Selector.close(Selector.java:734)
    at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:532)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:424)
    at kafka.network.Processor.poll(SocketServer.scala:628)
    at kafka.network.Processor.run(SocketServer.scala:545)
    at java.lang.Thread.run(Thread.java:748)

Я могу опубликовать в теме из командной строки.

Когда я использую SASL_SSL в KafkaPublish, имя службы Kerberos является обязательным полем. Но поскольку мы не используем Kerberos, какое значение мне следует установить для этого поля?

Configure Processor

Когда я устанавливаю динамические свойства sasl.mechanism и sasl.jaas.configuration, я получаю предупреждение о недопустимом параметре конфигурации.

Мне не хватает каких-либо конфигураций? Любая помощь будет оценена по достоинству. Заранее спасибо.

1
Madiha 11 Сен 2018 в 12:13

1 ответ

Лучший ответ

PublishKafka NiFi поддерживает только SASL с механизмами, отличными от Kerberos, начиная с версии 0_11.

Итак, вы хотите быть уверены, что используете PublishKafka_0_11 или PublishKafka_1_0, если вам, например, нужно использовать SASL Plain.

0
Mickael Maison 12 Сен 2018 в 19:06