2009-03-09 5 views
2

Почему вы не видите больше людей, использующих архитектуру REST для клиентской серверной системы. Вы видите людей, использующих сокеты, или TIBCO RV или EMS или MQ, но я не видел много базовой архитектуры REST.REST для обмена сообщениями с низкой задержкой.

Кто-нибудь знает, почему вы бы не использовали эту архитектуру для взаимодействия клиент/латентность

ответ

4

Я не знаю, что я обязательно его избегу, но я могу подумать о нескольких причины, по которым я, возможно, не выбираю его для высокоскоростного обслуживания с низкой задержкой. Во-первых, вам нужно иметь дело со всем веб-стекем, чтобы получить ваше сообщение к вашему сервису. Это может привести к ряду ненужных слоев и служб, которые задерживают сообщения. Пользовательская услуга должна поддерживать только уровни протокола, требуемые самой службой.

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

В-третьих, пользовательский протокол должен поддерживать только фактическую информацию о связанных службах и может привести к меньшим размерам пакетов, поскольку вам не нужно поддерживать дополнительные служебные данные протокола HTTP. Это, в частности, повлияло бы на протоколы, которые обмениваются небольшими сообщениями, поскольку информация заголовка будет большей частью размера сообщения.

8

REST не подходит для любых проблем.

ОТДЫХ является лучшим для Ресурс управления. Если вы пишете веб-службы (как и в системе клиент-сервер), вы обнаружите, что вам нужны такие вещи, как представление языковых агностических данных, валидация аргументов, генерация кода клиент/сервер, обработка ошибок, контроль доступа. REST в основном требует, чтобы вы сами кодировали эти вещи.

С другой стороны, он добавляет уровень HTTP. Вы получаете бесшовную интеграцию прокси, кеширование и т. Д., Но вы теряете некоторую скорость из-за HTTP-заголовков, интерфейса веб-сервера и т. Д.

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