powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Зачем нужны фичи servlet 3.0/3.1 ?
25 сообщений из 98, страница 2 из 4
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432092
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovА вебсокеты - изврат, который получается у программистов, не читающих спецификацию. Это работающий изврат, но изврат.
назвать можно какхочешь, но сейчас идёт поголовное их внедрение....
они очень помогают снизить нагрузку на сервер.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432101
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственный сценарий, в котором необходимы асинхронные сервлеты - "конвейер".
Т.е. ситуация, когда вы принимаете данные клиента и можете выдавать ответ ещё до того, как будет прочитан весь входной поток.
Если пытаться сделать такое без асинхронных сервлетов, то, во-первых, получится головоломный конечный автомат, а во-вторых - он будет ненадёжным. При проблемах на канале связи вся обработка будет зависать на неопределённое время - вплоть до трёх-пяти минут.
В случае асинхронных сервлетов контейнер может штатно создать второй поток исполнения, который позволит "развязать" операции чтения и записи.
Разумеется, логика синхронизации/взаимодействия двух потоков всё равно будет требоваться, но, в большинстве случаев эта логика сведётся к простейшему "подождать, пока клиент не прислал очередную порцию данных".
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432103
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevМне как-то кажется, что у вебсокетов вроде же свое API (в Tomcat'е), которое с subj связано совершенно опосредованно.Да, WebSocket API стандартизировано и включено в дистрибутив "обученных" контейнеров. Да, веб-сокеты не связаны напрямую с асинхронностью. Но это отменяет факта извращённости.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432107
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема не столько в web-socket'ах, сколько в попытках скрестить ежа с ужом в современных API

Даже по названию web-SOCKET и HTTP Servlets совершенно разные вещи, идеологически разные. Первое обмен данными по соединению, второе протокол вида запрос-ответ. В классическом, историческом виде. Ну а так, как генетиков сейчас много - все время попадается колючая проволока. Хотя даже и проволока, пусть и колючая, вещь полезная. Асинхронные сервлеты мне кажется из этой же оперы. Выглядит коряво, но поскольку других возможностей в сервел апи нет, спасибо и на этом. IMHO

А.П.Чехов. РевизорЧто там? веревочка? давай и веревочку! и веревочка в дороге пригодится: тележка обломается, или что другое, – подвязать можно
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432114
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЕдинственный сценарий, в котором необходимы асинхронные сервлеты - "конвейер".
Т.е. ситуация, когда вы принимаете данные клиента и можете выдавать ответ ещё до того, как будет прочитан весь входной поток.
Thanks. Возьму на заметку. Частая ситуация. Хотя с проблемами и не сталкивался.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432128
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
асинхронность и предлагает http2.
один из недостатков http/http2 - обязательность "запрос-ответ" и инициатором может быть только клиент
а вот comet прочие и есть "колючая проволока".
что отсутствует у ws.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432138
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяодин из недостатков http/http2 - обязательность "запрос-ответ" и инициатором может быть только клиент

https://en.wikipedia.org/wiki/HTTP/2_Server_Push
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432140
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz https://en.wikipedia.org/wiki/HTTP/2_Server_Push
Понял. Сам дурак.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432168
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВозьму на заметку. Частая ситуация. Хотя с проблемами и не сталкивался.Требуется понимать ограничения
Спецификация HTTP не требует, чтобы клиент мог читать ответ сервера до полной отправки своего запроса. А раз нет требований, то нет и гарантий.
Даже если клиент умеет - нет гарантий, что "где-то посередине" не попадётся какой-нибудь прокси, "который не умеет".
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432172
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяодин из недостатков http/http2 - обязательность "запрос-ответ" и инициатором может быть только клиентТипичный косяк мышления программистов.
Да, только клиент может инициировать (сетевое) подключение к серверу. И это - принципиальное ограничение. Да, http работает в схеме запрос/ответ.
Только всё это никак не означает, что сервер не может инициировать передачу данных на клиента.
Единственная проблема в том, что у такой "инициативной передачи" нет чёткой семантики. Поэтому сделать пару клиент-сервер, для которой "всё будет работать" - можно, а создать спецификацию - нет.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432184
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovТолько всё это никак не означает, что сервер не может инициировать передачу данных на клиента.
Единственная проблема в том, что у такой "инициативной передачи" нет чёткой семантики. Поэтому сделать пару клиент-сервер, для которой "всё будет работать" - можно, а создать спецификацию - нет.
но ws и сделано для того чтоб всё упростить и систематизировать.
если в десктопных это решалось, то в браузерах придумали comet и прочие штучки.
раньше подобное реализовалось с помощь флэш.
с появлением ws всё стало очень просто. появился стандарт. и этим всё сказано.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432188
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяс появлением ws всё стало очень просто. появился стандарт. и этим всё сказано.Да ничего этим не сказано.
Кадрирование, которое вводит спецификация веб-сокетов, с точно такими же усилиями делается в рамках HTTP. Даже ещё проще.
Но - "белые парни не умеют прыгать".
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432196
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovКадрирование, которое вводит спецификация веб-сокетов, с точно такими же усилиями делается в рамках HTTP. Даже ещё проще.
Но - "белые парни не умеют прыгать".
да, для "десктопов" - делалось давно. но в браузерах....
счас это приведено к единообразию - серверу одинаково, кто подключается приложение, браузер, приложение на андроиде.(может и на яблоке)
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432199
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяда, для "десктопов" - делалось давно. но в браузерах....Вы так нифига и не поняли.
Для браузера нет никакой разницы.
Веб-сокеты надо было реализовать.
Реализация обработчика для application/web-socket потребовала бы таких же (или даже меньших) усилий.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432210
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovВы так нифига и не поняли.
Для браузера нет никакой разницы.
Веб-сокеты надо было реализовать.
Реализация обработчика для application/web-socket потребовала бы таких же (или даже меньших) усилий.

браузер с сервером мог общаться только по протоколу запрос-ответ, либо с использованием cомет и ему подобного извращения, да и то с ограничениями и без таких возможностей как у ws.
стандартного варианта не было.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432214
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадястандартного варианта не было.Ещё раз - "стандартный вариант" не требовал разработки нового протокола. Не требовал и не нуждался в новом протоколе.
Отдельное API - сколько угодно. А вот отдельный протокол надо было отсечь бритвой Оккама.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432217
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovне требовал разработки нового протокола. Не требовал и не нуждался в новом протоколе.
это твоё мнение, с ним я спорить не буду.
мне этот протокол нравится и устраивает, и то что не надо никаких арi, а всё их коробки тоже.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432227
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот только не протокол вам нравится, а API протокола.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432236
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovВот только не протокол вам нравится, а API протокола.
да мне по-барабану, главное результат и использование , и там хоть горшком назови....
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432276
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если по барабану - зачем встревать в малопонятные вам вещи?
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432282
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЕсли по барабану - зачем встревать в малопонятные вам вещи?
я просто показал разницу в использовании в применении к браузерам
то что работает и применяется всё шире, а не развожу демогогию по поводу и без.
люди придумали и внедрили, наверно не глупее тебя, и не от безделия, даже ишаки присоединились.
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432424
uid unique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevquestionerпропущено...


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

Про томкат не помню, а у апача и любых других вменяемых Web и апп серверов (Weblogic) - никаких 200 потоков нет. Их количество задается в файле конфигурации. И AFAIK значение по умолчанию около 10-и worker threads дабы обычно больше и не нужно и вредно )))
Дополню - в вебсфере вроде было по умолчанию 10 или 50 потоков в веб пуле (память подводит) НО в зависимости от настроек размер пула при переполнении может увеличиваться до десятикратного : ThreadPoolMaxSize * 10. Так что в экстренной ситуации можно легко получить 100 или 500 потоков. Таймаут потока на сфере по умолчанию около 40 минут, вполне можно запинать сервер за это время.
WorkManager пул для асинхронных задач побольше по умолчанию, кажется 300 потоков.

Из минусов реализации servlet 3.0 async - пул задается в сервлете, программисты начнут пулы плодить в коде без нормального управления ресурсами в админке сервера, управление пулами будет разбросано по приложениям. Теперь представим что у меня кластер серверов, на каждом с десяток приложений и нужно подкрутить размер пула для асинхронных задач. Глобально а не в каждом приложении.

Чтоб было бы правильнее - допилить напильником work manager API (чтоб work listener был подобием AsyncListener из 3.0 и имел доступ к сервлет контексту).
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432664
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Асинхронные сервлеты как раз и созданы для того, чтобы не "плодить пулы потоков в коде".
Поэтому не очень понятно, размер чего и зачем вы собрались крутить?
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432704
uid unique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovАсинхронные сервлеты как раз и созданы для того, чтобы не "плодить пулы потоков в коде".
Поэтому не очень понятно, размер чего и зачем вы собрались крутить?
Сервера иногда настраивают под задачи и железо.

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

Погуглил и на первой странице вывалились примеры кастомизации async контекста:

https://www.javacodegeeks.com/2013/08/async-servlet-feature-of-servlet-3.html

http://www.journaldev.com/2008/async-servlet-feature-of-servlet-3
Код: java
1.
2.
3.
4.
ThreadPoolExecutor executor = new ThreadPoolExecutor(100, 200, 50000L,
                TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(100));
        servletContextEvent.getServletContext().setAttribute("executor",
                executor);



Если это не кастомные пулы, то мне привиделось.

http://www.byteslounge.com/tutorials/asynchronous-servlets-in-java
Код: java
1.
private final Executor executor = Executors.newFixedThreadPool(PROCESSING_THREAD_COUNT);
...
Рейтинг: 0 / 0
Зачем нужны фичи servlet 3.0/3.1 ?
    #39432730
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В итоге у меня сложилось впечатление, что асинхронные сервлеты позволяют экономить на количестве созданных потоков.

В синхронных сервлетах если нам пришла задача мы обязательно создавали поток и он жил столько же сколько и задача.

В асинхронных сервлетах вся информация о запросе сохраняется в asyncContext обеъекте. Который позволяет вытащить всю информацию позже. При этом пока живёт этот context само http соединение держится.
...
Рейтинг: 0 / 0
25 сообщений из 98, страница 2 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Зачем нужны фичи servlet 3.0/3.1 ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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