powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / А кто нибудь реально Java NIO для HTTP использует?
25 сообщений из 30, страница 1 из 2
А кто нибудь реально Java NIO для HTTP использует?
    #39284066
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перевожу ряд сервисов с обычного IO на NIO, вроде жалуются, что потребление CPU на некоторых паттернах использования возрастает раза в 2 (((

Почитал статьи, в ряде тестов в Inet'е (одно соединение, один клиент), NIO дает только 70-80 % throught input по сравнению с обычными соккетами.

Такая проблема реально существует, если да, кто как ее решает?
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39284128
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Берём котяру, поднимаем штатный демо-сайт и терзаем ApacheBench-ем с BIO- и NIO-коннекторами.
Имхо, продуктивнее, чем читать сравнения неизвестной достоверности и актуальности.

P.S. "Вроде жалуются" - не аргумент. Жалобы должны подтверждаться метриками или, хотя бы, достоверной компетенцией.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39284150
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл поднимать котяру, когда используется Simple Framework http://www.simpleframework.org/ и Apache HTTP Components https://hc.apache.org
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39284186
Фотография Паша01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Котяра все разрулит. Мяу
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39284187
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формулировка топика звучит как профанация.

Вы неявно давно уже используете nio как зависимости от стандартного io. Для этого
ничего не надо переписывать а надо просто обновить JRE.

Если имеется виду использование мультиплексированного ввода вывода для бизнес-логики
то это задача сложная. Нетривиальная и не везде подходит. Каждый случай надо разбирать
отдельно.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39284245
Фотография schwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevПеревожу ряд сервисов с обычного IO на NIO, вроде жалуются, что потребление CPU на некоторых паттернах использования возрастает раза в 2 (((

Почитал статьи, в ряде тестов в Inet'е (одно соединение, один клиент), NIO дает только 70-80 % throught input по сравнению с обычными соккетами.

Такая проблема реально существует, если да, кто как ее решает?
Да все уже давно используют.
Одно соединение на одного клиента + проблемы с пропускной способностью - вы используете не тот протокол и http вам не нужен.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39284544
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсли имеется виду использование мультиплексированного ввода вывода для бизнес-логики
то это задача сложная. Нетривиальная и не везде подходит. Каждый случай надо разбирать
отдельно.
Это и имеется в виду.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39285143
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

Библиотеки с поддержкой NIO новее, т.е. менее оптимизированы, так что вполне может быть. И у меня возникает ощущение, что вы что-то напутали с режимами, их вообще-то три:
- old IO (блокирующий send/recv)
- NIO (на блокирующих селекторах)
- NIO2 (async io, Windows IOCP, джава в линуксе вроде реализует его на тех же селекторах)

Второе точно быстрее первого, третье не быстрее второго, но лучше масштабируется.

Если нужно высокое быстродействие или низкое потребление cpu, переходите на Netty HTTP.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39288717
iPOJO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39289169
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если говорить о ресурсах, то расход процессора в блокирующем режиме даже на 1000 потоков составляет единицы процентов, в то время как в режиме NIO расход процессора составляет 20-30%.....

Интересно откуда это утверждение взялось.
1) Куда тратится время
2) Как это померить


У меня на "синтетическом тесте" по профайлеру, все "стоит колом" на ConcurrentLinkedQueue который используется в приложении для пересылки данных от рабочих потоков в соответствующий HttpAsyncResponseProducer + на копирование туда-сюда-обратно в процессе этой передачи ((( Например Apache HTTP Componets NIO Core в классе IndentityEncoder имеет свой буфер, без предоставления методов им управления, т.ч. и тут можно наткнуться на двойную (тройную, четверную и так далее) буферизацию.

Везде пишут красивые слова про ByteBuffer и про желательность отсутствия двойной буферизации, но в реальной жизни, Java-стиль программирования и API очень располагает копировать туда-сюда ((( и часто вообще не понятно, как сделать без копирования и/или без лишних new'ов ((( Простейший пример - преобразование (вывод) String в ByteBuffer, вроде задача стандартная, но каких либо высокопроизводительных/удобный методов ее сделать без создания лишних объектов и без копирования - совсем не тривиально ((( IMHO & AFAIK


Коллеги уверяют, что на проде, все "стоит колом" на IOControl.suspendOutput, IOControl.requestOutput - где там стоять, мне не понятно и локально в профайлере я вообще данные вызовов почти не вижу, они мгновенно выполняются (((
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39289282
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevчасто вообще не понятно, как сделать без копирования и/или без лишних new'ов ((( Простейший пример - преобразование (вывод) String в ByteBuffer, вроде задача стандартная, но каких либо высокопроизводительных/удобный методов ее сделать без создания лишних объектов и без копирования - совсем не тривиальноНасколько я помню документацию, если делать ByteBuffer над byte[], то поверх тогоже самого byte[] можно делать и другие представления, включая и CharBuffer и StringBufferКоллеги уверяют, что на проде, все "стоит колом" на IOControl.suspendOutput, IOControl.requestOutputВ таких случаях надо анализировать разницу между продом и тестом.
Наиболее вероятный вариант - разная нагрузка на разном железе. Скорее всего, что у прода на порядок больше ядер и памяти.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39289357
iPOJO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, Netty использует свой буфер ByteBuf. Говорится, что он "расширяемый" и там есть место для записи и для чтения. Таким образом, при асинхронной работе с сокетами на каждое появление байтов в канале новый объект не создаётся, если буфер достиг position == limit. В действительности, если в исходниках Netty покопаться, то новый byte[] всё же создаётся и туда копируется содержимое из старого буфера с помощью System.arraycopy(); И ещё, на сайте Netty хоть и пишется "asynchronous event-driven network application framework", на самом деле там используются неблокирующие сокеты, опрашиваемые селектором (мультиплексируемые), а не AsynchronousSocketChannel из nio2. По-крайней мере в Netty 4.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39289669
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovНаиболее вероятный вариант - разная нагрузка на разном железе. Скорее всего, что у прода на порядок больше ядер и памяти.
нагрузка не просто разная. Ее вообще нет ((( Реальные данные идут от коммерческих поставщиков, обрабатываются, отдаются далее. Машинки тоже разные.

Есть "заглушки" для unit-тестов, функционального тестирования. Есть мною написанная некая "синтетика" которая дает примерно похожий характер нагрузки (на максимуму).

Проблема на сокетах - слишком много потоков (десяток 'мини" сервисов, сотни соединений на каждом, тысячи потоков в пике на сервере). Переписали на NIO. С потоками стало все хорошо, но ненормально возрасла загрузка процессора _в_ некоторых случаях загрузки (сценариях использования), в _других_ случаях, нагрузка на процессор даже уменьшилась.

Т..ч. сечас система живет в "подвешенном" виде, часть сервисов переведено на NIO, а часть осталась в старой версии. Что, понятно, есть плохо (((

Куда девается процессор - для меня загадка. Что вижу в профайлере, куча времени уходит на синхронизации и Atomic'и + куча времени на копирование туда-обратно.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39289694
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovLeonid Kudryavtsevчасто вообще не понятно, как сделать без копирования и/или без лишних new'ов ((( Простейший пример - преобразование (вывод) String в ByteBuffer, вроде задача стандартная, но каких либо высокопроизводительных/удобный методов ее сделать без создания лишних объектов и без копирования - совсем не тривиальноНасколько я помню документацию, если делать ByteBuffer над byte[], то поверх тогоже самого byte[] можно делать и другие представления, включая и CharBuffer и StringBuffer

Идею про StringBuffer не понял(((

Но дальше ООП и Java.....

Есть класс CharsetEncoder который, теоретически, выполняет преобразование из char в byte, он же используется и в OutputStreamWritter и String.toBytes

НО:
1. В вызовах reset, encode, flush - IMHO без полбутылки не разберешься. Вроде в OutputStreamWritter они вообще не парятся и flush никогда не вызывают ))).
2. Ему на входе нужен CharBuffer (можно использовать реализацию StringCharBuffer). Объясните мне, на#$% !!! б#$% !!! API обязательно требуют new для оборачивания String в StringCharBuffer. Я понимаю, что new в Java считается "обычной" операцией, но б#$%!!! у меня короткие строки и сотни тысяч вызовов в секунду!!! На@#$ все классы в Java стали делать immutable?
3. Моя реализация через String -> CharBuffer.wrap(CharSequence) / StringCharBuffer/ -> encode в предварительно выделенный ByteBuffer - работает примерно так же и даже медленнее, чем банальное String.toBytes(), ByteBuffer.wrap ((( Хотя, вроде, String.toBytes работает через тот же CharsetEncoder (((

В общем, одно Шаманство, а счастья нет.

Теоретически, если наплевать на кодировки ))) можно просто отсекать старший байт и складывать в ByteBuffer. Но это как-то совсем топорно.


Киоск "Союзпечать"
- Есть Советская Россия?
- Нет, Россию продали.
- "Правда" есть?
- И Правды нет, остался ТРУД за 3 копейки
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39289732
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevТеоретически, если наплевать на кодировки ))) можно просто отсекать старший байт и складывать в ByteBuffer. Но это как-то совсем топорно

Ну и не нужно. Т.к., например UTF-8 Encoder для <128 символов ровно так и поступает в самых первых строках encodeArrayLoop /private/

Почему же он ссука... умудряется работать заметно медленнее /Oracle JVM 1.8.0_101/, чем String.toBytes, который, якобы ровно через него и работает (судя по декомпилированному коду) (((
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39289771
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уроды. Нагородили ООП, а пишут умные статьи про то, что нужно избегать двойной буфферизации. И как ее избегать?

http://psy-lob-saw.blogspot.ru/2012/12/encode-utf-8-string-to-bytebuffer-faster.html

Красивые циферки, показывающие всю степень п...ца и шаманства. В общем, требуется бубен и море алкоголя. Вещи типа "One oddity I stumbled on while researching the topic was the fact that using String.getBytes(Charset) is actually slower then using the Charset name." просто фирменный ахтунг ООП !!!

Эффект объясняется очень просто ))) При toBytes( "имя кодировки" ) encoder кэшируется в ThreadLocal и при вызовах с одним параметром - производительность хорошая. При toBytes( Charset ) - encoder каждый раз создается новый. У меня получается, что загрузка CPU при отдачи данных до 2-3 раз меньше. /пакеты по 64 байта/

Пытаюсь прикрутить CharsetEncoder.... безуспешно. На просто тесте (вызов в цикле), скорость чуть хуже, чем у String.toBytes() /10%/. Вставляю в реальный Producer - скорость отдачи данных хуже на 3 (ТРИ!) порядка (ТЫСЯЧА раз). В чем дело, пока понять не могу.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39290001
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevПроблема на сокетах - слишком много потоков (десяток 'мини" сервисов, сотни соединений на каждом, тысячи потоков в пике на сервере)Честно - не понимаю, в каком месте это проблема.
С линуксами не работал, но даже в 32-разрядном Windows Server 2003 с парой гигабайт памяти "ab -c 800 ..." без проблем обслуживается котярой после минимальной настройки пула потоков. Да, статику котяра отдаёт раза в два медленнее, чем индеец, но каких-то суровых проблем с потоками нет.
В 64-разрядной винде потоки можно тысячами плодить - вообще не проблема. Это проверялось в вечернее время (чтобы людям не мешать) в реальной системе, сайт которой при долбёжке всё тем же ab на каждый запрос заставлял сервер приложений в базу сходить. Время отклика, конечно, получалось ниже плинтуса, но это совсем не проблема контейнера сервлетов.Переписали на NIO. С потоками стало все хорошо, но ненормально возрасла загрузка процессора _в_ некоторых случаях загрузки (сценариях использования), в _других_ случаях, нагрузка на процессор даже уменьшилась.Асинхронный ввод-вывод хорош, если у вас много долгоживущих и сравнительно малоактивных подключений.
Протокол, который вы на NIO переписали - HTTP или что-то самопальное? Серверная часть или клиентская?Куда девается процессор - для меня загадка. Что вижу в профайлере, куча времени уходит на синхронизации и Atomic'и + куча времени на копирование туда-обратно.Надо реальную систему профилировать: четыре ядра и HT совсем не тоже самое, что четыре сокета, по восемь ядер в каждом и дохрена кэшей третьего уровня. Два (четыре) гигабитных интерфейса это тоже совсем другая предложенная нагрузка.
А на проде, как вы сами говорите, основное время тратится на то, чтобы сообщить IP-стеку "можно забрать мой поток" и тут же получить ответку "на тебе новые данные".

P.S. А что копирование? Сделали xxxBuffer поверх byte[] и отдаём нужный кусок в нужном виде без всякого копирования.
Если собрать микросервисы в одной jvm - расходы на RPC и прочий REST падают, практически, до нуля. Могут, конечно, другие грабли выскочить, но ведь могут и не выскочить?
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39290004
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev/пакеты по 64 байта/И ради таких соплей вы что-то городите???
Такие данные простым read/write обрабатываются без всяких бубнов - контейнер сам применит нужную магию. А разные варианты заклинаний делаются простым изменением типа коннекторов сервлет-контейнера.
Если ответ формируется относительно долго - берём конейнер, умеющий асинхронные запросы и контейнер отдаст поток исполнения, пока не "приедут" данные отклика при минимальных действиях с вашей стороны.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39290019
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovНадо реальную систему профилировать: четыре ядра и HT совсем не тоже самое, что четыре сокета, по восемь ядер в каждом и дохрена кэшей третьего уровня. Два (четыре) гигабитных интерфейса это тоже совсем другая предложенная нагрузка.

До этого пока не дошел. Он же "реальная система", на него сотня тысяч юзеров завязано. Боязно как-то.

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

По крайне мере, даже если ничего не улучшится, то появилось представление, что понаписано в системе и что понаписано в Apache HTTP Components. Профайлить без малейшего представления о системе - тоже задача веселая )))

Basil A. SidorovАсинхронный ввод-вывод хорош, если у вас много долгоживущих и сравнительно малоактивных подключений.
Протокол, который вы на NIO переписали - HTTP или что-то самопальное?
Много долгоживущих соединений. Самопальное HTTP, но в данном случае, соединение устанавливается, не разрывается и данные отдаются по мере появления.

Когда они __совсем__ малоактивны - все хорошо. Но если сервис более менее активен (сотни килобайт в сек. трафик) визуально CPU жрется в два раза больше, чем было до этого.

Как я понимаю, раньше не нравился показатель "кол-во потоков ожидающих исполнения", сейчас с ним все хорошо ))), но зато потребление CPU полезло вверх.

Раньше было http://www.simpleframework.org/
Сейчас https://hc.apache.org/

Basil A. SidorovP.S. А что копирование? Сделали xxxBuffer поверх byte[] и отдаём нужный кусок в нужном виде без всякого копирования.

У меня на входе String.

Удивляет, что нет нормального способа закодировать String в ByteBuffer без промежуточного алоцирования. Т.к. самый быстрый способ String.getBytes() , как понятно, создаст промежуточный byte[]

Все остальные пляски с бубном, как-то сильно шамански и медленнее.

Такие данные простым read/write обрабатываются без всяких бубнов - контейнер сам применит нужную магию. А разные варианты заклинаний делаются простым изменением типа коннекторов сервлет-контейнера.

Там НЕ получил запрос, отдал данные.

А получил запрос, отдаем-отдаем-отдаем помаленьку, маленькими порциями (как появились у поставщика) в тот же самый socket/channel/htttp-соединение
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39290026
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevУ меня на входе StringДля HTTP на входе и выходе всегда byte[].
И крайне маловероятно, чтобы эти потоки байт были в UTF-16BE или какой там суффикс положен для String.Удивляет, что нет нормального способа закодировать String в ByteBuffer без промежуточного алоцированияНет проблемы это сделать.
Просто если осознать, что данные HTTP - потоки байт, приходит понимание, что помещение строки в байтовый буфер никак не решает обмен данных с клиентом из-за разницы кодировок.
А там, где разные кодировки - приходится перекодировать, что возвращает нас к проблеме копирования.
Но и в этом случае не надо делать лишней работы - любой сервлет-контейнер в состоянии перекодировать строки приложения в байты запросов/ответов, если вы правильно установите тип и кодировку контента.
И контейнер сделает это, как минимум, не хуже вас.

P.S. В общем, я остаюсь при своём мнении - не то оптимизируется и не там.
И пока не будет снят профиль реальной нагрузки - ситуация никак не изменится.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39290029
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevА получил запрос, отдаем-отдаем-отдаем помаленьку, маленькими порциями (как появились у поставщика) в тот же самый socket/channel/htttp-соединениеНе надо изобретать велосипед, появившийся в 3.1 спецификации сервлетов: асинхронный отклик и контейнер сам будет "отбирать" поток исполнения, если "прям щас" нет данных для ServletOutput.
И, опять-таки, сделает это, как минимум, не хуже вас.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39290038
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovP.S. В общем, я остаюсь при своём мнении - не то оптимизируется и не там.

в общем - согласен, просто раз всплыла задача оптимизации, то уж и другие выплывшие косяки убрать )))

Basil A. SidorovНе надо изобретать велосипед, появившийся в 3.1 спецификации сервлетов: асинхронный отклик и контейнер сам будет "отбирать" поток исполнения, если "прям щас" нет данных для ServletOutput.
И, опять-таки, сделает это, как минимум, не хуже вас.
Частично солидарен.

Изначально удивился, зачем свой велосипед для HTTP написали.

А какой легковесный и быстрый контейнер можете посоветовать? Желательно, что бы интегрировался в приложение.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39290039
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovНе надо изобретать велосипед, появившийся в 3.1 спецификации сервлетов: асинхронный отклик и контейнер сам будет "отбирать" поток исполнения, если "прям щас" нет данных для ServletOutput.

Почитал первое попавшиеся

https://ynovikov.wordpress.com/tag/асинхронный-сервлет/

автор....Reverse AJAX избавляет нас от необходимости все время опрашивать сервер — соединение открывается один раз, и потом сервер сам отошлет ответ, когда будет что отсылать. Естесственно, когда с сервера придет ответ, нужно установить соединение заново.

Это вообще писец. Если уж сейчас процессор сжирается, что будет, когда после каждой посылки нужно будет "установить соединение заново"
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39290338
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevА какой легковесный и быстрый контейнер можете посоветовать?Дык - котяра
Разглядывал ещё и Jetty , но не впечатлился: "конгресс, немцы ...". В том смысле, что вся эта модульность какая-то модульность ради модульности - в реальности всё равно будет почти вся пачка, ну и нафига мне её конфигурять? Пяток (или меньше) мегабайт сэкономить ценой написания xml-портянки и установки кучи свойств?
JBoss / WildFly не смотрел - начальное чтение документации оставляло ровно то же впечатление, что и Jetty. Плюс, это полноценные JEE-серверы, сильно избыточные когда нужен только сервлет -контейнер.
Есть ещё Resin , но у меня он "не взлетел". Тоже JEE. Ну и JBoss/"полноценный" Resin - платные.
Желательно, что бы интегрировался в приложение.И tomcat и jetty могут встраиваться.
Jetty, вроде как, "искарапки", tomcat - слегка адаптированная ("все файлы в одном каталоге") сборка, где нет кластеризации и гвоздями прибит log4j.

С моей кочки зрения встраиваемый контейнер не особо нужен - захостить можно и "полноценный" tomcat.
Лично мне проще написать стандартные (и гибкие) описатели развёртывания, чем кодировать (эту же) конфигурацию. Особенно, с учётом того, что адаптация стандартных описателей под "местечковые" условия с лёгкостью делается "на глазах изумлённой публики".

Можно и наоборот - контейнер хостит сервер приложений. Такой вариант я делал.
Универсальным не назову, но в моём случае проблем не было. Но только на тесте - договариваться на опробование в реальной системе не стал.
Можно и третий вариант - небольшой пускач-обёртка для независимо работающих в одной JVM сервлет-контейнера и сервера приложений.

Собственно, основная "сложность" второго и третьего вариантов - необходимость понимания кто что использует и как запускается: общие компоненты надо выносить в системный classpath (который "java -cp ...").
Соответственно, требуется написание скриптов запуска для создания окружения и вызов нужных методов для запуска/останова контейнера/сервера приложений уже в java-коде.
...
Рейтинг: 0 / 0
А кто нибудь реально Java NIO для HTTP использует?
    #39290348
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevПочитал первое попавшиесяЭто какое-то массовое умопомрачение ... https://ynovikov.wordpress.com/tag/асинхронный-сервлет/
...
Это вообще писец.А вы не читайте большевистких газет - автор (нет, не читал) мешает в одну кучу две совершенно разные вещи.
Есть официальное руководство - вот его и читайте.
Другой вопрос, что использовать возможности асинхронных сервлетов сразу может и не получиться - могут понадобится и другие переделки.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / А кто нибудь реально Java NIO для HTTP использует?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]