背景说明
公司使用华为提供的大数据集群管理公司数据
集群的组件使用了kerberos认证,现在想使用程序和setreamsets访问集群kafka需要通过认证
集群kafka加入了华为自己的安全相关的东西,要访问kafka,必须要用华为提供的客户端包!
华为为外部访问的组件和程序提供认证所需的东西: keytab,krb5.conf,principal
注意:在集群外访问华为集群,除了打通网络,还要开启认证相关的端口
查看krb5.conf,找到每个认证域下的 kdc = xxx,这个xxx后面的端口是UDP端口,需要将UDP端口开启!
java代码认证
华为官方提供了代码认证的实例,可以按照这个来,示例代码地址: https://github.com/huaweicloud/huaweicloud-mrs-example
也可以根据通用的认证模式来写测试代码,只要kafka客户端使用华为提供的就行
示例代码:
public class App {
private static final Logger logger = LoggerFactory.getLogger(App.class);
public static void setBootstrapServer(Properties props) {
props.put("bootstrap.servers", "k1:9092,k2:9092,k3:9092");
}
public static void main(String[] args) {
// 认证相关配置文件指定
setSystemProperty();
Properties props = new Properties();
setBootstrapServer(props); // kafka地址配置
setCommonKafkaProps(props); // kafka通用配置
securityAuth(props); // 认证相关配置
System.out.println("begin send message to kafka!");
Producer<String, String> producer;
try {
producer = new KafkaProducer<>(props)

最低0.47元/天 解锁文章
4998

被折叠的 条评论
为什么被折叠?



