使用 KafkaPublish 处理器写入 kafka 主题时发送 SSL Close 消息失败

Failed to send SSL Close message when using KafkaPublish processor to write to kafka topic

我正在使用 KafkaPublish 处理器将消息发布到使用 SASL_SSL 安全协议保护的 kafka 主题(我们没有使用 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)

我可以从命令提示符发布到主题中。

当我在 KafkaPublish 中使用 SASL_SSL 时,Kerberos 服务名称是必填字段。但是,由于我们没有使用 Kerberos,我应该为此字段设置什么值?

当我设置动态属性 sasl.mechanism 和 sasl.jaas.configuration 时,我收到无效的配置参数警告。

我是否缺少任何配置?任何帮助将不胜感激。 提前致谢。

自版本 0_11.

以来,NiFi 的 PublishKafka 仅支持使用 Kerberos 以外机制的 SASL

因此,如果您需要使用 SASL Plain,请务必使用 PublishKafka_0_11 或 PublishKafka_1_0。