これは設計 (アーキテクチャ) に関する質問です。クライアント要求を処理する Java サーバーがあるとします。この処理には、サーバー自体ではなく、外部の Java プロセスワーカーによって実行されるステップが含まれます。
つまり、サーバーといくつかのワーカープロセスがあります。ステップ Aを実行するいくつかのワーカー、ステップ Bとステップ Cを実行するいくつかのワーカーなどです。
また、サーバーとすべてのワーカーが HTTP で通信するとします。ここで、サーバーとワーカーの間の通信用のプロトコルをどのように設計するかを考えています。
現在、以下のことを考えています。
ワーカーが動作する準備ができると、サーバーに HTTP GET リクエストを送信します。リクエストには、ワーカー ID (彼のホスト + PID)、ステータス、および手順が含まれます。
worker_status=READY, host=localhost, pid=1234, steps=A
実行するステップがある場合、サーバーはステップ名、入力データ、および期限を含む応答を送信します。
step=A, deadline=..., data=...
ワーカーが処理を終了すると、サーバーに HTTP GET 要求を送信します。リクエストには、ステップ名、処理ステータス、出力データ
finished_step=A, status=SUCCESS, output=...
、および最初のメッセージのような情報が含まれます (上記を参照): ,worker_status=READY, host=localhost, pid=1234, steps=A
それは理にかなっていますか?サーバーとワーカープロセス間のその種の通信のための既存の既知のプロトコルはありますか?