Существует ли «пул сокет-соединений» для приложений Java EE? - PullRequest
1 голос
/ 03 марта 2010

Я пишу веб-сервис JAX-RS. Он отвечает на вызовы клиента:

  1. Получение информации из базы данных
  2. Посылка вызова на внешний сервер

Для 2) сервер не предоставляет интерфейс веб-службы (т. Е. Нет интерфейса WSDL или REST API). Вместо этого он использует собственный протокол поверх TCPIP. Я хотел бы совершать клиентские звонки с моего ресурса JAX-RS напрямую на этот сервер, но я не хочу открывать соединение, проверять подлинность и закрывать соединение для каждого звонка на мой JAX- Ресурс РС. Это можно обойти? Другими словами, есть ли что-то вроде «пула соединений сокетов», доступного для приложений Java EE? Должен ли я использовать что-то вроде ESB? Или есть альтернатива, которую я пропускаю?

1 Ответ

1 голос
/ 03 марта 2010

«Правильный» способ сделать это - написать JCA-соединитель для вашего внешнего сервера. JCA является частью стека Java EE и предназначен именно для этого: для обеспечения входящей и исходящей связи с сервера приложений на внешнюю систему. Он поддерживает пул , аутентификация , транзакции и т. Д. (База данных и JMS-брокер имеют доступ через разъемы JCA, кстати).

Однако написание такого адаптера может быть довольно сложным. Может быть, исследовать упрощенный подход, который может быть проще универсальной библиотекой пула (может быть, вы найдете что-то интересное в commons-pool или c3p0).

Посмотрите также этот ответ о пуле TCP-соединений.

...