我正在尝试在SASL_PLAINTEXT上保护Kafka。我通过遵循this link成功地做到了这一点,并且还使用新的Consumer代码对其进行了测试,并且效果很好:
但是当我尝试测试旧的Consumer代码时,它默默地失败了,似乎得到了空的消息列表。
这两个代码的区别在这里(Java):
新代码具有这些额外的行:
props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT");
props.put("sasl.mechanism", "PLAIN"); // Looks like it is a bug of Kafka, need to manually set it
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, KAFKA_BROKERS);
System.setProperty("java.security.auth.login.config", "C:/_program2/kafka_2.12-2.1.0/KafkaClient.txt");
KafkaClient.txt是标准的JAAS配置文件:
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="kafkaclient1"
password="kafkaclient1-secret";
};
我的Kafka版本是2.12-2.1.0,我的JAVA是JDK8。 我最初的Kafka消费者Java代码来自this link。
有人知道如何解决此问题吗? 谢谢!