問題
べき等性機能を有効にした後、メッセージを送信すると、クライアントに Cluster authorization failed というエラーメッセージが返されます。
原因
リザーブドインスタンスのクラウドストレージトピックを使用しています。このタイプのトピックは、べき等性機能をサポートしていません。
メッセージ送信者に、クラスターに対する
IDEMPOTENT_WRITE権限が付与されていません。ローカルストレージを使用するトピックで ACL 機能を有効にしている場合、ApsaraMQ for Kafka ブローカーは、メッセージ送信者がクラスターに対する IDEMPOTENT_WRITE 権限を持っているかどうかを自動的に判断します。メッセージ送信者がこの権限を持っていない場合、メッセージの送信は失敗します。
解決策
-
のクラウドストレージトピックは、べき等性機能をサポートしていません。プロデューサーで
enable.idempotence=falseを設定して、この機能を無効にしてください。説明バージョン 3.0 以降の ApsaraMQ for Kafka クライアントでは、べき等性機能が自動的に有効になります。
enable.idempotenceパラメーターは自動的に true に設定されます。 -
クラスターに必要な ACL 権限を付与します。コンソールの SASL 権限管理ページで、[Add Permission] ダイアログボックスを使用して、ユーザーを指定し、[リソースタイプ] を [クラスター] に設定し、[一致方法] を [完全一致] に設定し、[操作タイプ] で [IDEMPOTENT_WRITE] を選択します。詳細については、「ACL によるアクセス制御」をご参照ください。