Я создаю веб-сервис, который должен обслуживать только json, и он должен быть масштабируемым.
У меня сложилось впечатление, что Nginx является более масштабируемым веб-сервером, чем IIS 7.5, и что им чрезвычайно просто управлятьпо сравнению с IIS.Кроме того, Nginx можно очень легко использовать для балансировки нагрузки между несколькими json-сервисами, используя модуль восходящего потока.
Поскольку мне нужно только обслуживать json, я чувствую, что ASP.Net и IIS слишком перегружены.Мне просто нужна очень простая маршрутизация и простой механизм authcookie, который я легко могу написать сам.
Сейчас я использую MVC3, но чувствую, что он раздут, когда я обслуживаю только Json, и меня очень раздражают факты, что мне приходится писать собственные атрибуты Auth для создания политики по умолчанию, запрещающейСоздайте HttpModule для взлома перенаправления по умолчанию при проверке подлинности WindowsFroms неавторизованных запросов, и, в общем, нужно много читать и учиться, чтобы контролировать инфраструктуру.Я также рассмотрел WCF, но мой предыдущий.Опыт работы с этим состоял в том, что было много раздувания и конфигурации для моих нужд и много вещей, которые нужно знать, чтобы оставаться под контролем.
Я предпочитаю простоту и хочу избежать «накладных расходов фреймворка», когда мне просто нужно обработать Http для простого, быстрого и масштабируемого асинхронного json-сервиса.Поэтому я рассматриваю настройку, подобную этой:
- Веб-сервер Nginx на linux-сервере, который балансирует нагрузку между прокси-серверами и передает их в асинхронные службы json.
- Службы json написаны как WindowsСервисы, использующие HttpListener для асинхронной обработки веб-запросов.
Что вы думаете об этой архитектуре?
РЕДАКТИРОВАТЬ: На самом деле я думаю, что было бы более производительным, если использовать fastcgi из nginx для служб Windows вместо проксирования http-запросов?Что ты думаешь?