メインコンテンツまでスキップ

RabbitMQ コネクターのトラブルシューティング

備考

ベータ版

この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。

このページでは、LakeFlow Connect のマネージド RabbitMQ コネクタに関する一般的なエラーのトラブルシューティング方法を説明します。

振る舞いに関する質問(例:メッセージを承認する前にパイプラインがクラッシュした場合、メッセージはどうなるか)については、RabbitMQ コネクタに関するよくある質問を参照してください。

パイプラインが RabbitMQ ブローカーへの接続に失敗しました(接続タイムアウト)

原因 : Databricksサーバレスコンピュート環境からブローカーに到達できません。一般的な原因としては、接続におけるホストまたはポートの誤り、あるいはネットワーク接続のブロックなどが挙げられます。

解決方法:

  1. Unity Catalog接続のホストとポートが正しいことを確認してください。デフォルトのRabbitMQポートは5672です。
  2. 接続内の仮想ホストが正しいことを確認してください。デフォルトの仮想ホストは/です。
  3. サーバレス コンピュートプレーンからブローカーへのネットワーク接続が許可されていることを確認してください。VPCピアリング、セキュリティ グループ、またはファイアウォール ルールを確認してください。

ストリームはデータが存在するにもかかわらずレコードを返しません。

原因:パイプラインは正常に接続されましたが、メッセージを受信していません。よくある原因には、間違ったキュー名、競合する外部コンシューマー、またはすでに別のコンシューマーによって消費され承認されたメッセージなどがあります。

解決方法:

  1. rabbitmq_optionsにおけるqueue名がブローカー上のキューと一致していることを確認してください。
  2. 別の(Spark以外の)コンシューマーが同じキューから読み取っているか確認してください。RabbitMQは、各メッセージをたった1つのコンシューマーに配信します。
  3. 接続ユーザーがキューに対する読み取り権限を持っていることを確認してください。

ストリームは接続されていますが、レコードが届きません(認証または承認の問題)

原因: パイプラインはブローカーに対して正常に認証されましたが、認証情報には指定されたキューから消費する権限がありません。

解決策: Unity Catalog 接続で使用されているユーザー名に、キューに対する読み取り権限があることを確認します。権限の確認について、RabbitMQ 管理者に問い合わせてください。

メッセージは再起動後に再配信されます

原因:これは期待される動作です。RabbitMQ は少なくとも 1 回の配信を提供します。パイプラインがメッセージを確認する前にクラッシュまたは切断された場合、それらのメッセージはキューに残り、再接続時に再配信されます。再配信されたメッセージは _redeliveredtrue に設定されています。

解決策: お客様のユースケースで1回だけの処理が必要な場合は、アプリケーション固有のキーを使用して下流で重複排除を行ってください。「コネクタは厳密に 1 回の配信を保証できますか?」を参照してください。