【发布时间】:2020-02-15 13:38:42
【问题描述】:
我找不到如何将用户名和密码传递给 KafkaConsumer。我使用 SASL PLAINTEXT 在 Kafka 服务器上对客户端进行身份验证。
我试图在https://kafka.apache.org/documentation/#consumerconfigs 上找到此信息 但结果是否定的。
我发现了一些作者使用参数“用户名”和“密码”的例子。我试着这样做:
props.put("bootstrap.servers", uri.getHost() + ":" + uri.getPort());
if (!groupidName.isBlank())
props.put("group.id", groupidName);
props.put("enable.auto.commit", "false");
props.put("auto.offset.reset", groupidName.isBlank() ? "latest" : "earliest");
props.put("session.timeout.ms", "30000");
props.put("max.poll.records", "1");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
if (kafkaConnector.getConfig().getUserName() != null && kafkaConnector.getConfig().getPassword() != null)
{
props.put("security.protocol","SASL_PLAINTEXT");
props.put("sasl.mechanism","PLAIN");
props.put("username",kafkaConnector.getConfig().getUserName());
props.put("password",kafkaConnector.getConfig().getPassword());
}
但我得到了异常“无法构造 kafka 消费者”。
如果有人知道如何将用户名和密码传递给消费者配置,请帮忙。
【问题讨论】:
-
你会使用 JAAS stackoverflow.com/a/45757197/2308683
标签: java authentication apache-kafka