2017-06-07 16 views
1

Using this kafka統合プロジェクトバージョン1.15互換性の問題があります。Kerberized kafkaにメッセージを送信する方法は、春のブートを使用していません。 kafkaにメッセージを送るには?documentationを探してみましたが、ProducerConfigでケルベロスに関連するプロパティを見つけることができませんでした。Kerberized Kafkaにメッセージを送信します。 kafkaテンプレート(spring-kafka)バージョン1.15(Springブートを使用していません)

答えて

0

the kafka documentationを参照してください。そこに記載されているよう

sasl.jaas.configプロパティを設定します。

sasl.jaas.config=com.sun.security.auth.module.Krb5LoginModule required \ 
    useKeyTab=true \ 
    storeKey=true \ 
    keyTab="/etc/security/keytabs/kafka_client.keytab" \ 
    principal="[email protected]"; 

とも

security.protocol=SASL_PLAINTEXT (or SASL_SSL) 
sasl.mechanism=GSSAPI 
sasl.kerberos.service.name=kafka 
+0

@Gary Russellに感謝します。 のようなプロパティを設定している場合Map props = new HashMap <>(); props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG、bootstrapServers); ProducerConfigにsasl.jaas.configを設定するには – user2515163

+0

SASL設定の定数は 'SaslConfigs'クラスにありますので、' put(SaslConfigs.SASL_JAAS_CONFIG、...) 'になります。 –

0

私はkerberoziedカフカ(HDPクラスタ)からのメッセージを消費しています。だから私は自分の考えを分かち合っています。それは助けるかもしれない。

あなたはプロデューサーの設定でconsumerConf.put("security.protocol", "SASL_PLAINTEXT");を追加することができますので、私は

Map<String, Object> consumerConf = new HashMap<>(); 
    consumerConf.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "hdp.master:6667"); 
    consumerConf.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); 
    consumerConf.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); 
    consumerConf.put(ConsumerConfig.GROUP_ID_CONFIG, "grp12"); 
    consumerConf.put("security.protocol", "SASL_PLAINTEXT"); 

としての私の消費者のプロパティを構築してきました。

は再びシステムプロパティ

 System.setProperty("java.security.krb5.conf", "Path to krb5.conf"); 
     System.setProperty("java.security.auth.login.config", "path to kafka-jaas.conf"); 
     System.setProperty("javax.security.auth.useSubjectCredsOnly", "true"); 
     System.setProperty("sun.security.krb5.debug", "true"); 

たちのホートンは、プラットフォームの作品で、私はカフカを使用していますので、ここで使用されていないが、6667でポートを設定する必要があります。

関連する問題