[解決済み] SASL ハンドシェイク中に METADATA タイプの予期しない Kafka リクエストが発生する。
2022-02-18 06:24:28
質問
SASL Plainを使用してKafka Java ClientをKafkaブローカーに接続しようとしています。しかし、Producerからメッセージを送信しようとすると、Kafka Serverは以下のエラーをログに記録します。
[2020-04-30 14:48:14,955] INFO [SocketServer brokerId=0] Failed authentication with /127.0.0.1 (Unexpected Kafka request of type METADATA during SASL handshake.) (org.apache.kafka.common.network.Selector)
見た目では、producerはSASLハンドシェイクの前に、メタデータ・リクエストを送信しようとします。メッセージを送る前にハンドシェイクを行うにはどうしたらよいでしょうか?
以下は私の
kafka_server_jaas.conf
ファイルで、Kafka Serverで使用されています。
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret";
};
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret";
};
以下は、私の
zookeeper_jaas.conf
ファイルで、zookeeperに使用されています。
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret";
};
私のJavaプロデューサーでは、以下のプロパティを設定しました。
Properties properties = new Properties();
properties.put("bootstrap.servers", "localhost:9092");
properties.put("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"admin_secret\"");
properties.put("sasl.mechanisms", "PLAIN");
properties.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer kafkaProducer = new KafkaProducer(properties);
何か間違ったことをしているのでしょうか?
どうすればいいですか?
を指定する必要があります。
security.protocol
そうでない場合、Kafkaクライアントはデフォルトで
SASL
.
クライアントのプロパティに、追加します。
properties.put("security.protocol", "SASL_SSL");
また
SASL_PLAINTEXT
を使用することは推奨されませんが
PLAIN
機構を
SASL_PLAINTEXT
というのは、事実上、パスワードは平文で交換されるからです。
関連
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】文字列中の � を置換する方法
-
[解決済み】Java LinkedListでNodesを使用する
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】不正なエスケープ文字"㊧"について
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み] 解決済み】Javaが「型をインスタンス化できない」というエラーを返す [重複] [重複]
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】koch snowflake java recursion
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。