我有一个连接到kafka集群的spring启动应用程序。应用程序(作为kafka客户端)使用sasl身份验证,在初始化kafka生产者和消费者之前,我通过system.setproperty()指定了jaas配置。它在单个kafka集群设置下运行良好。
Kafka\客户端\ jaas.conf
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="myClusterUser"
password="user-secret";
};
mykafkaproducer.java文件
…
private void init()
{
System.setProperty("java.security.auth.login.config", "kafka_client_jaas.conf");
…
}
现在我有了一个第三方(其他人的)kafka集群,它与我的kafka集群完全断开连接。第三方kafka集群也使用sasl认证。
java应用程序如何连接到两个不同的kafka集群以及两个集群都需要sasl身份验证?两个集群的用户名和密码都不同,我只能在集群中设置一个jaas配置文件 java.security.auth.login.config
.
1条答案
按热度按时间b5lpy0ml1#
由于Kafka0.10.2,您可以使用
sasl.jaas.config
设置为每个kafka客户端配置sasl身份验证。这使得能够在单个jvm中运行具有不同(或相同)sasl配置的多个kafka客户机。为此:
未设置
java.security.auth.login.config
在每个kafka客户端属性中添加sasl.jaas.config
. 例如:看到了吗http://kafka.apache.org/documentation.html#security_sasl_plain_clientconfig 关于全部细节
mykafkaclient.java文件
删除jaas文件