как использовать пул соединений в веб-клиенте cxf jaxrs

Я создаю службу REST, которая внутренне вызывает другие службы, и для этого мы используем org.apache.cxf.jaxrs.client.WebClient.

Я хочу использовать пул HTTP-соединений для повышения производительности, но в документации не очень ясно, как это сделать и возможно ли это вообще. Кто-нибудь здесь делал это?

Единственный другой вариант, о котором я могу думать, - это повторное использование клиентов, но я бы не хотел вдаваться во весь набор проблем безопасности потоков и синхронизации, связанных с этим подходом.


person Kislay Verma    schedule 25.06.2016    source источник


Ответы (1)


По умолчанию CXF использует транспорт на основе объекта JDK HttpURLConnection для выполнения HTTP-запросов.

Пул соединений выполняется, позволяя постоянным соединениям повторно использовать базовое соединение сокета для нескольких HTTP-запросов.

Установить системные свойства (значения по умолчанию)

 http.keepalive=true
 http.maxConnections=5

Увеличьте значение http.maxConnections, чтобы установить максимальное количество неактивных подключений, которые будут одновременно поддерживаться, для каждого пункта назначения.

В этом посте объясняются некоторые детали, как это работает

Java HttpURLConnection и объединение

Когда вам нужно одновременно выполнять много запросов, CXF также может использовать асинхронный apache HttpAsyncClient. Сер детали здесь

http://cxf.apache.org/docs/asynchronous-client-http-transport.html

person pedrofb    schedule 26.06.2016