そこにいるすべての専門家にこんにちは:)
これが私の最初の質問です。
問題の説明:
Market Data Feed Handler を作成する必要があります。これは Windows サービスになり、2 つのソケットを使用します。
Socket A : サブスクライブするアプリケーションと Feed Handler 間の通信用 (Feed Handler は接続要求と Item Request を受け入れます)。
ソケット B : フィード ハンドラーと Reuters/Bloomberg などの外部市場データ プロバイダー間の通信用。
どちらの場合も、リクエスト/レスポンスは同じポートを使用します。
注 : 外部システムからのデータの量は少ないです (外部システムは、この時点で、購読されている情報のみを送信します)。ただし、後でそれをスケーリングする必要がある場合があります。一部のプロバイダーはすべてのデータをスローし、フィード ハンドラーはサブスクリプションに基づいてローカルでフィルター処理する必要があります。
私の質問:
- どのスレッド モデルを使用する必要がありますか?
- どの I/O 戦略を使用する必要がありますか?
- 両方のケースを念頭に置いて、個別の要求/応答スレッドを作成する必要がありますか?
編集 1: Winsock に関するいくつかのチュートリアルを読んだ後、非同期動作にイベント オブジェクトを使用する予定です。
ここでの懸念点は、単一のスレッドが着信クライアント接続をリッスンし (受け入れ)、他のサーバーに接続し、2 つの異なるポートで送信/受信する必要があることです。
スレッド A 1) 着信接続をリッスンします。(連続) 2) 接続されたクライアントからの購読/購読解除要求の受信。(まれに) 3) 外部サーバーに接続します (1 回のみ)。4) クライアントからのリクエストを外部サーバーに転送します。(まれに) 5) 外部サーバーからデータを受信します。(連続) 6) このデータを接続されたクライアントに送り返します。(連続)
私の質問は、非同期 I/O モデルを使用して、単一のスレッドがクライアントとサーバーの両方として機能できるかどうかです。
前もって感謝します。ディーパック