1、首先需要更改host映射
文件地址:C:\Windows\System32\drivers\etc\hosts
1)未更改时会报错
- 1.Caused by java.nio.channels.UnresolvedAddressException null
- 2.org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for t2-0: 30042 ms has passed since batch creation plus linger time
原因:
listeners的地址配置不一定是ip, 也可以是hsotname。
此时由于kafka borker的advertised_listeners配置的是hostname,那么返回给客户端的元信息中的地址也是hostname,当客户端准备根据这个hostname建立长连接请求数据的时候,发现并解析不了该hostname。 于是当在主机etc/hosts文件中添加该hostname的ip映射之后便会根据域名解析找到ip建立连接。
2、kafka权限认证
props.put("security.protocol", "SASL_PLAINTEXT");
props.put("sasl.mechanism", "SCRAM-SHA-512");
props.put("sasl.jaas.config",
"org.apache.kafka.common.security.scram.ScramLoginModule required username='admin' password='admin-secret';");
1)更换为
如果使用SASL/GSSAPI那么需要新搭建Kerberos不太划算;SASL/PLAIN的方式可能会在使用过程中频繁的重启,非常的繁琐;而SASL/OAUTHBEARER属于Kafka新提供的,而且也没有这方面的需求,可以等等市场反应再说。因此综合来说最终选择了SASL/SCRAM的认证方法增强Kafka的安全功能,
标签:win,hostname,kafka,props,put,SASL,Kafka,连接 From: https://www.cnblogs.com/brickMovingWorker/p/16954236.html