RabbitMQ コネクターのトラブルシューティング
ベータ版
この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。
このページでは、LakeFlow Connect のマネージド RabbitMQ コネクタに関する一般的なエラーのトラブルシューティング方法を説明します。
振る舞いに関する質問(例:メッセージを承認する前にパイプラインがクラッシュした場合、メッセージはどうなるか)については、RabbitMQ コネクタに関するよくある質問を参照してください。
パイプラインが RabbitMQ ブローカーへの接続に失敗しました(接続タイムアウト)
原因 : Databricksサーバレスコンピュート環境からブローカーに到達できません。一般的な原因としては、接続におけるホストまたはポートの誤り、あるいはネットワーク接続のブロックなどが挙げられます。
解決方法:
- Unity Catalog接続のホストとポートが正しいことを確認してください。デフォルトのRabbitMQポートは
5672です。 - 接続内の仮想ホストが正しいことを確認してください。デフォルトの仮想ホストは
/です。 - サーバレス コンピュートプレーンからブローカーへのネットワーク接続が許可されていることを確認してください。VPCピアリング、セキュリティ グループ、またはファイアウォール ルールを確認してください。
ストリームはデータが存在するにもかかわらずレコードを返しません。
原因:パイプラインは正常に接続されましたが、メッセージを受信していません。よくある原因には、間違ったキュー名、競合する外部コンシューマー、またはすでに別のコンシューマーによって消費され承認されたメッセージなどがあります。
解決方法:
rabbitmq_optionsにおけるqueue名がブローカー上のキューと一致していることを確認してください。- 別の(Spark以外の)コンシューマーが同じキューから読み取っているか確認してください。RabbitMQは、各メッセージをたった1つのコンシューマーに配信します。
- 接続ユーザーがキューに対する読み取り権限を持っていることを確認してください。
ストリームは接続されていますが、レコードが届きません(認証または承認の問題)
原因: パイプラインはブローカーに対して正常に認証されましたが、認証情報には指定されたキューから消費する権限がありません。
解決策: Unity Catalog 接続で使用されているユーザー名に、キューに対する読み取り権限があることを確認します。権限の確認について、RabbitMQ 管理者に問い合わせてください。
メッセージは再起動後に再配信されます
原因:これは期待される動作です。RabbitMQ は少なくとも 1 回の配信を提供します。パイプラインがメッセージを確認する前にクラッシュまたは切断された場合、それらのメッセージはキューに残り、再接続時に再配信されます。再配信されたメッセージは _redelivered が true に設定されています。
解決策: お客様のユースケースで1回だけの処理が必要な場合は、アプリケーション固有のキーを使用して下流で重複排除を行ってください。「コネクタは厳密に 1 回の配信を保証できますか?」を参照してください。