Когда выбирать JMS API вместо UDP-сокета или наоборот? - PullRequest
10 голосов
/ 14 декабря 2011

Каковы причины, которые могут побудить программиста использовать API Java JMS (Java Message Service) вместо API сокета UDP пакета java.net в распределенном приложении Java или использовать API сокета UDP вместо API JMS? Если возможно, приведите пример приложения.

1 Ответ

10 голосов
/ 15 декабря 2011

UDP и JMS отличаются во многих отношениях и принципиально, поскольку JMS обычно полагается на функции, присущие TCP (см. Это сравнение UDP и TCP , чтобы получить представление о различиях двух базовых протоколов).

В основном UDP подходит для приложений, которые не требуют никакой надежности, упорядочения, контроля перегрузки или маршрутизации между сетями (поскольку многие маршрутизаторы потребительского и коммерческого уровня не пересылают пакеты UDP). JMS предоставляет все эти функции, отсутствующие в UDP и т. Д. (Например, транзакции, паб / подписка и организация очередей, надежные подписки и т. Д.).

UDP может быть подходящим для потоковой передачи больших объемов данных в локальной сети, где абсолютное качество не требуется; JMS будет лучше для приложений, требующих надежного обмена сообщениями между хостами глобальной сети. Более того, JMS скрывает детали сокетов, серверов, привязок и т. Д. И предоставляет высокоуровневый API, который лучше подходит для интеграции на предприятии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...