可変期間の「ビジネス ロジック」タスクがあるプロセスでディスラプターを効果的に使用するにはどうすればよいですか? 以前に行われたことがありますか?
応答ステージを処理する 2 番目のリング バッファーで実行できますか? もしそうなら、どうすればいいですか?
ディスラプターを理解し、コール チェーンの特定の部分に概念を適用できることを確認しました。具体的には、アプリケーションは次の手順を実行するミドルウェア タイプのアプリケーションです。
- 受信メッセージを読み取り、アンマーシャリングしてリクエストする
- リクエストの顧客の詳細を特定し、処理するワークフロー手順を決定します
- バックエンド システムを呼び出してステップを実行する
- 応答を照合し、応答をログに記録し、マーシャリングして、消費者に返す
問題は、バックエンド ステップの一部のインスタンスに「長い」時間がかかる可能性があることです。これにより、実行時間の短いタスクの応答ステージが実行時間の長いタスクを待機する可能性があります。バックエンド システムの呼び出しは、非同期または同期のいずれかで実行できると仮定します。そのため、バックエンド システム コールは、バックエンドへの非同期要求をトリガーする単なるコンシューマーであるという考えになります。
バックエンド システムの応答時間は、5 ミリ秒 (一部の要求)、50 ミリ秒 (要求の 90%) から - 5000 ミリ秒 (要求の 1%) の範囲です (大きなディスク I/O を考えてください)。
ディスラプターは非常に効率的である可能性があると考えていますが、平均レイテンシを低く抑えるためにこのハードルを回避することはできません.