kafka开启scarm认证报连接其中一个节点失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka开启scarm认证报连接其中一个节点失败相关的知识,希望对你有一定的参考价值。

参考技术A 本机配置hosts文件,ip映射目标服务的主机名
kafk /config / server.properties文件中配置host.name属性映射ip,否则默认指向主机名

由于kafka开启SASL认证后导致首次发送失败

一、需求背景:

springboot项目配置两个不同kafka集群。原有kafka(kafka1)配置保持不变,采用默认配置方式,第二个kafka(kafka2)采用自定义配置进行配置。

二、问题现象以及分析:

向kafka2推送消息时,第一次总是发送失败,并出现以下日志。

org.apache.kafka.common.errors.TimeoutException: Expiring 6 record(s) for topicxxx: 30031 ms has passed since batch creation plus linger time

1.将两个kafka配置调换位置后,kafka2依然会出现这个报错,确认本地代码没有问题。

2.分析两个kafka异同,kafka1是单机、默认配置,kafka2是集群且开启了 SASL认证、配置情况未知,将kafka1更换为新的集群,经过测试无问题,因此初步定位开启SASL认证导致的。

通过翻阅资料,在开启SASL认证后,底层在InetAddressSocket时将ip理解成域名进行解析,解析失败后才会以正常的ip进行解析,而在域名解析时,会花费较多的时间。而在使用kafka2进行消息推送时,由于时懒加载方式,只有send时才会初始化kafka配置,因此导致推送的元数据在完成认证前过期而抛出以上日志。

三、解决方案:

  1. 增加元数据失效时间;

  1. 通过配置客户端所在服务器域名解决。

以上是关于kafka开启scarm认证报连接其中一个节点失败的主要内容,如果未能解决你的问题,请参考以下文章

由于kafka开启SASL认证后导致首次发送失败

Zookeeper & Kafka 开启安全认证的配置

开启kafka密码认证

开启kafka密码认证

kafka使用ssl加密和认证

解决Ubuntu使用ROOT账户登录图形界面报错认证失败