Web で特定のデータを検索するワーカー プロセスを考えてみましょう。後で使用するために最初のプロセスの結果をインデックス化するには、別のプロセスが必要です。インデックス作成の部分では、生データ (検索結果) を巨大な分散 HBase リポジトリに特定の方法で書き込む必要があります。これら 2 つのプロセスの速度を比較して判断することはできません。これらのシステムの 1 つが一時的にダウンしており、ウェイクアップ時に配置されたタスクを実行する必要がある場合があります。JavaEEを使用しています。現在、これは私がこれを実装するために念頭に置いている方法です。
- 最初のプロセスは、検索結果を MySQL データベースに保存し、テーブルに追加した新しい行の ID を含むメッセージを送信します。
- MOM は 2 番目のプロセスを起動して、MySQL データベースに保存されている新しい生データを消費します。
- 2 番目のプロセスは、実際のデータベース (HBase) 内のデータのインデックス作成が完了すると、MySQL テーブルをクリアします。
デザインの適切性を検証するために、デザインに関する専門家のコメントが必要です。たとえば、2 番目のプロセスが継続的にテーブルをポーリングして、新しいレコードがあるかどうかを確認するとどうなるでしょうか? 正しいテクノロジーを使用していますか、それともやり過ぎですか? デザインを簡素化する必要がありますか?それとも何か不足していますか? 私のソリューションが適切である場合、実装中に留意すべきことはありますか? 前もって感謝します。