2010-09-22 2 views
3

Мы планируем новый сервер API, который будет в основном обслуживать ответы JSON, с интерфейсом RESTful. Мы обеспокоены масштабами и доступностью. Мы на правильном пути, используя Restlet with Jetty (или другой соединитель)?Масштабируемый сервер API с Restlet?

Один вопрос, который мы задаем, есть ли что-нибудь в мире Java, например, Phusion Passenger? Например, готовое решение для хранения экземпляров сервера и здорового?

+0

Должно быть на ServerFault – mattbasta

ответ

9

Ваш вопрос в действительности не так много о Restlet как о проектировании сайта высокой доступности, высокой доступности. Мы обнаруживаем, что Restlet действительно хорошо масштабируется с правильной архитектурой системы.

Вообще говоря, Вы хотите:

  • Запуск кластера на веб-серверах, а не только один.
  • Убедитесь, что ваше приложение ничего общего с, то есть не имеет состояния приложения, хранящегося на ваших веб-серверах, если это вообще возможно.
  • Использовать балансировщик для распространения запросов на наименее загруженные веб-серверы.
  • Убедитесь, что ваши ответы JSON: cacheable.
  • Добавить HTTP обратный прокси-кеш (например, Squid) на границе вашего сайта. Поскольку кеши между вашим сайтом и вашими клиентами разогреваются, большая часть входящего трафика будет обрабатываться ими, а не ваши веб-серверы.
  • Напишите свой код клиента Запросы повторного запроса, которые не работают. Таким образом, если веб-сервер умрет, следующий запрос будет сбалансирован с нагрузкой на выживающую машину.
  • И, конечно, вы хотите автоматизировать свой сайт, чтобы вызвать врезался веб-сервера и т.д. (Это та часть, которая, возможно, лучше спросил на ServerFault.com.)

REST является архитектурным стилем, который идеально подходит для такого типа установки.

Поскольку @matt упоминает, что вам нужно следить за сырой производительностью, но обычно ваша первая проблема заключается в том, чтобы получить масштабируемую архитектуру с высокой степенью доступности.

Некоторые хорошие источники по этому вопросу являются:

и особенно:

Overstock.com запускает высокомасштабируемый веб-сайт и makes heavy use of Restlet для этого.

2

Масштабируемость и производительность в конечном счете будут зависеть гораздо больше от того, как спроектировано приложение, обрабатывающее эти запросы, его алгоритмы, если он эффективно обращается к базе данных, как/если вы кешируете данные и т. Д., Чем выбор контейнеров сервлетов или рамки.

Смежные вопросы