1

かなり概念的な質問がありますが、一般的すぎる、または愚かすぎると見なされないことを願っています:)

データ項目が多くのステップを経る必要があるアプリケーション (たとえば、ステップ 1 - CSV ファイルからの解析とレポートの生成、ステップ 2 - 前のステップで生成されたレポートに基づくレポートの実行など) を想定してみましょう。処理は永続的なキューを使用して実装され、新しい生ファイルが検出されると、そのファイルの処理を求めるメッセージがキューに入れられます。メッセージは、ファイルを処理するコンシューマーによって選択され、次の処理ステップなどのためにその作業の結果をキューに入れる別のメッセージを入れます。

私の質問は、このプロセスの失敗を処理するためのベスト プラクティスは何ですか? ステップ 1 のコンシューマが完全に失敗したとしましょう。

キューベースのアーキテクチャにそのようなバッチ処理を実装することは、まったく論理的/効率的ですか?

4

1 に答える 1

1

はい、キューは問題ありません。問題のあるファイルやレコードにメッセージを書き込むエラー キューも必要です。

後でファイル全体を再処理する (一時的な問題の場合) か、ファイルを無視する (問題がある場合) ことができるため、完全な失敗は簡単なケースであることに注意してください。より深刻な問題は、一部のレコードに問題がある部分的な障害です。

あるステップでの失敗が、何らかの方法で他のステップを元に戻す必要があることを意味する場合は、それをsagaとして実装することを検討することをお勧めします。プロセスをより細かく制御したい場合は、オーケストレーションを検討することをお勧めします

于 2012-07-23T10:05:21.457 に答える