发送 SSL 关闭消息失败

问题描述 投票:0回答:1

我有一个线程,偶尔会列出消息中心上的主题。但偶尔,我会收到一条 :Failed to send SSL Close 消息。

有什么想法吗?

KafkaConsumer<String, String> consumer = new KafkaConsumer<>(getConsumerConfiguration());
try {
    Map<String, List<PartitionInfo>> topics = consumer.listTopics();
    return new ArrayList<String>(topics.keySet());
} finally {
    if (consumer != null) {
        **consumer.close();**
    }
}

我收到来自 consumer.close 的警告。

消费者的配置:

  • sasl.mechanism = PLAIN
  • 安全协议= SASL_SSL
  • group.id = 消费者1
  • ssl.enabled.protocol = TLSv1.2
  • ssl.endpoint.identification.algorithm = HTTPS
  • ssl.协议 = TLSv1.2
  • sasl.jaas.config = org.apache.kafka.common.security.plain.PlainLoginModule 需要用户名=“用户名”密码=“密码”;

[警告] 2018-01-25 20:12:23.204 [ClusterChannelMonitorTaskThread] org.apache.kafka.common.network.SslTransportLayer {} - 发送失败 SSL 关闭消息 java.io.IOException:返回了意外状态 SSLEngine.wrap,预期关闭,收到正常。不会发送关闭 给同行的消息。在 org.apache.kafka.common.network.SslTransportLayer.close(SslTransportLayer.java:158) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.common.utils.Utils.closeAll(Utils.java:663) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.common.network.KafkaChannel.close(KafkaChannel.java:59) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.common.network.Selector.doClose(Selector.java:582) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.common.network.Selector.close(Selector.java:573) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.common.network.Selector.close(Selector.java:539) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.common.network.Selector.close(Selector.java:250) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.clients.NetworkClient.close(NetworkClient.java:505) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.close(ConsumerNetworkClient.java:439) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.clients.ClientUtils.closeQuietly(ClientUtils.java:71) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.clients.consumer.KafkaConsumer.close(KafkaConsumer.java:1613) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.clients.consumer.KafkaConsumer.close(KafkaConsumer.java:1573) [kafka-clients-0.11.0.0.jar:?] 在 org.apache.kafka.clients.consumer.KafkaConsumer.close(KafkaConsumer.java:1549) [kafka-clients-0.11.0.0.jar:?] 在 com.ibm.saas.msg.kafka.KafkaMessageService.listChannelNames(KafkaMessageService.java:305) [saas-msg-kafka-TRUNK-SNAPSHOT.jar:TRUNK-SNAPSHOT]

java apache-kafka kafka-consumer-api message-hub sslengine
1个回答
0
投票

未发送警报 SSL。 SSL/TLS 协议用于安全通信,与关闭消息相关。 SSL/TLS 协议规定必须向对方提供“close_notify”警告,告知其连接关闭。此警告消息表明 Kafka 客户端无法发送此“close_notify”警报。

这通常是无害的警告,可以忽略。这并不表明 Kafka 或您的应用程序有问题。它只是表明连接结束时没有发送“close_notify”警告。

更新您的 Kafka 客户端:当前版本的 Kafka 客户端可能存在已修复的问题。考虑更新到最新的 Kafka 客户端版本。

修改您的 SSL/TLS 配置:问题可能是由您正在使用的特定 SSL/TLS 版本或您选择的密码套件引起的。尝试调整 SSL.protocol 或 SSL.enabled.protocols 的设置。

尝试在代码中尽快关闭 Kafka 消费者,这样它就不会关闭应用程序的其余部分。这可能允许用户在应用程序终止之前提交“close_notify”警报。

© www.soinside.com 2019 - 2024. All rights reserved.