私は私が解決しなければならない問題を話すつもりです、そして私が正しい道にいるならば私はいくつかの提案が必要です。
問題は:
リクエストを受信して何らかのアクションを実行するWindowsサービスアプリケーションを作成する必要があります。(ソケット通信)このアクションは、スクリプト(おそらくluaまたはperl)を実行することです。このスクリプトは、クライアントのビジネスルールをモデル化し、データベースでクエリを実行し、Webサイトで要求を行い、クライアントに応答を送信します。
3つの必須要件があります。
- サービスは同時に多くのリクエストを受け取ります。ですから、ワーカーのスレッドモデルを使うと思います。
- サービスは高スループットである必要があります。同時にたくさんのリクエストがあります。
- 低遅延:これらの要求に非常に迅速に応答する必要があります。
すべてのリクエストでログエントリが生成されます。I / O時間が長いため、スクリプトの実行と同時にこれらのログエントリを物理ディスクに書き込むことはできません。おそらく私はメモリ内にキューを作成し、他のスレッドはこのキューを消費してディスクに書き込みます。
将来的には、2人のwokerのスレッドがメッセージを変更しなければならない可能性があります。
このサービスのプロトコルを作成する必要があります。Thriftを使用することを考えていましたが、関連するオーバーヘッドがわかりません。多分私は自分のプロトコルを作るでしょう。
Windowsサービスを書くために、私はErlangで考えていました。それは良い考えですか?
この問題を解決するための提案/ヒントはありますか?このサービスを作成するのに適した言語はどれですか?