Я расскажу о проблеме, которую мне нужно решить, и мне нужны предложения, если я на правильном пути.
Проблема:
Мне нужно создать приложение-службу Windows, которое получит запрос и выполнит некоторые действия. (Связь через сокет). Это действие - выполнить скрипт (возможно, в lua или perl). Этот скрипт моделирует бизнес-правила клиента, запрашивает в базах данных, делает запрос на веб-сайтах и затем отправляет ответ клиенту.
Есть 3 обязательных требования:
- Служба будет получать много запросов одновременно . Поэтому я думаю использовать модель потока работника.
- Служба должна иметь высокую пропускную способность . У меня будет много запросов в одну секунду.
- Низкая задержка : Я должен очень быстро ответить на эти запросы.
Каждый запрос будет генерировать записи в журнале. Я не могу записать эти записи в журнал на физическом диске одновременно с выполнением сценариев из-за большого времени ввода-вывода. Вероятно, я создам очередь в памяти, а другие будут ее использовать и записывать на диск.
В будущем возможно, что два потока woker придется менять сообщения.
Я должен составить протокол для этой службы. Я думал использовать Thrift, но я не знаю, какие накладные расходы. Может быть, я сделаю свой собственный протокол.
Чтобы написать службу windows, я думал на Эрланге. Это хорошая идея?
У кого-нибудь есть предложения / советы по решению этой проблемы? Какой язык лучше подходит для написания этой услуги?