|
|
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovА вебсокеты - изврат, который получается у программистов, не читающих спецификацию. Это работающий изврат, но изврат. назвать можно какхочешь, но сейчас идёт поголовное их внедрение.... они очень помогают снизить нагрузку на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 15:09 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Единственный сценарий, в котором необходимы асинхронные сервлеты - "конвейер". Т.е. ситуация, когда вы принимаете данные клиента и можете выдавать ответ ещё до того, как будет прочитан весь входной поток. Если пытаться сделать такое без асинхронных сервлетов, то, во-первых, получится головоломный конечный автомат, а во-вторых - он будет ненадёжным. При проблемах на канале связи вся обработка будет зависать на неопределённое время - вплоть до трёх-пяти минут. В случае асинхронных сервлетов контейнер может штатно создать второй поток исполнения, который позволит "развязать" операции чтения и записи. Разумеется, логика синхронизации/взаимодействия двух потоков всё равно будет требоваться, но, в большинстве случаев эта логика сведётся к простейшему "подождать, пока клиент не прислал очередную порцию данных". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 15:17 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevМне как-то кажется, что у вебсокетов вроде же свое API (в Tomcat'е), которое с subj связано совершенно опосредованно.Да, WebSocket API стандартизировано и включено в дистрибутив "обученных" контейнеров. Да, веб-сокеты не связаны напрямую с асинхронностью. Но это отменяет факта извращённости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 15:19 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
проблема не столько в web-socket'ах, сколько в попытках скрестить ежа с ужом в современных API Даже по названию web-SOCKET и HTTP Servlets совершенно разные вещи, идеологически разные. Первое обмен данными по соединению, второе протокол вида запрос-ответ. В классическом, историческом виде. Ну а так, как генетиков сейчас много - все время попадается колючая проволока. Хотя даже и проволока, пусть и колючая, вещь полезная. Асинхронные сервлеты мне кажется из этой же оперы. Выглядит коряво, но поскольку других возможностей в сервел апи нет, спасибо и на этом. IMHO А.П.Чехов. РевизорЧто там? веревочка? давай и веревочку! и веревочка в дороге пригодится: тележка обломается, или что другое, – подвязать можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 15:25 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЕдинственный сценарий, в котором необходимы асинхронные сервлеты - "конвейер". Т.е. ситуация, когда вы принимаете данные клиента и можете выдавать ответ ещё до того, как будет прочитан весь входной поток. Thanks. Возьму на заметку. Частая ситуация. Хотя с проблемами и не сталкивался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 15:29 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
асинхронность и предлагает http2. один из недостатков http/http2 - обязательность "запрос-ответ" и инициатором может быть только клиент а вот comet прочие и есть "колючая проволока". что отсутствует у ws. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 15:41 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
вадяодин из недостатков http/http2 - обязательность "запрос-ответ" и инициатором может быть только клиент https://en.wikipedia.org/wiki/HTTP/2_Server_Push ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 15:49 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz https://en.wikipedia.org/wiki/HTTP/2_Server_Push Понял. Сам дурак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 15:51 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВозьму на заметку. Частая ситуация. Хотя с проблемами и не сталкивался.Требуется понимать ограничения Спецификация HTTP не требует, чтобы клиент мог читать ответ сервера до полной отправки своего запроса. А раз нет требований, то нет и гарантий. Даже если клиент умеет - нет гарантий, что "где-то посередине" не попадётся какой-нибудь прокси, "который не умеет". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 16:17 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
вадяодин из недостатков http/http2 - обязательность "запрос-ответ" и инициатором может быть только клиентТипичный косяк мышления программистов. Да, только клиент может инициировать (сетевое) подключение к серверу. И это - принципиальное ограничение. Да, http работает в схеме запрос/ответ. Только всё это никак не означает, что сервер не может инициировать передачу данных на клиента. Единственная проблема в том, что у такой "инициативной передачи" нет чёткой семантики. Поэтому сделать пару клиент-сервер, для которой "всё будет работать" - можно, а создать спецификацию - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 16:21 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovТолько всё это никак не означает, что сервер не может инициировать передачу данных на клиента. Единственная проблема в том, что у такой "инициативной передачи" нет чёткой семантики. Поэтому сделать пару клиент-сервер, для которой "всё будет работать" - можно, а создать спецификацию - нет. но ws и сделано для того чтоб всё упростить и систематизировать. если в десктопных это решалось, то в браузерах придумали comet и прочие штучки. раньше подобное реализовалось с помощь флэш. с появлением ws всё стало очень просто. появился стандарт. и этим всё сказано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 16:43 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
вадяс появлением ws всё стало очень просто. появился стандарт. и этим всё сказано.Да ничего этим не сказано. Кадрирование, которое вводит спецификация веб-сокетов, с точно такими же усилиями делается в рамках HTTP. Даже ещё проще. Но - "белые парни не умеют прыгать". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 16:48 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovКадрирование, которое вводит спецификация веб-сокетов, с точно такими же усилиями делается в рамках HTTP. Даже ещё проще. Но - "белые парни не умеют прыгать". да, для "десктопов" - делалось давно. но в браузерах.... счас это приведено к единообразию - серверу одинаково, кто подключается приложение, браузер, приложение на андроиде.(может и на яблоке) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 16:58 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
вадяда, для "десктопов" - делалось давно. но в браузерах....Вы так нифига и не поняли. Для браузера нет никакой разницы. Веб-сокеты надо было реализовать. Реализация обработчика для application/web-socket потребовала бы таких же (или даже меньших) усилий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 17:03 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВы так нифига и не поняли. Для браузера нет никакой разницы. Веб-сокеты надо было реализовать. Реализация обработчика для application/web-socket потребовала бы таких же (или даже меньших) усилий. браузер с сервером мог общаться только по протоколу запрос-ответ, либо с использованием cомет и ему подобного извращения, да и то с ограничениями и без таких возможностей как у ws. стандартного варианта не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 17:11 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
вадястандартного варианта не было.Ещё раз - "стандартный вариант" не требовал разработки нового протокола. Не требовал и не нуждался в новом протоколе. Отдельное API - сколько угодно. А вот отдельный протокол надо было отсечь бритвой Оккама. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 17:16 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovне требовал разработки нового протокола. Не требовал и не нуждался в новом протоколе. это твоё мнение, с ним я спорить не буду. мне этот протокол нравится и устраивает, и то что не надо никаких арi, а всё их коробки тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 17:22 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Вот только не протокол вам нравится, а API протокола. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 17:31 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovВот только не протокол вам нравится, а API протокола. да мне по-барабану, главное результат и использование , и там хоть горшком назови.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 17:44 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Если по барабану - зачем встревать в малопонятные вам вещи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 18:28 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЕсли по барабану - зачем встревать в малопонятные вам вещи? я просто показал разницу в использовании в применении к браузерам то что работает и применяется всё шире, а не развожу демогогию по поводу и без. люди придумали и внедрили, наверно не глупее тебя, и не от безделия, даже ишаки присоединились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 18:53 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
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 и имел доступ к сервлет контексту). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2017, 23:50 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
Асинхронные сервлеты как раз и созданы для того, чтобы не "плодить пулы потоков в коде". Поэтому не очень понятно, размер чего и зачем вы собрались крутить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 11:04 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
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. Если это не кастомные пулы, то мне привиделось. http://www.byteslounge.com/tutorials/asynchronous-servlets-in-java Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 11:31 |
|
||
|
Зачем нужны фичи servlet 3.0/3.1 ?
|
|||
|---|---|---|---|
|
#18+
В итоге у меня сложилось впечатление, что асинхронные сервлеты позволяют экономить на количестве созданных потоков. В синхронных сервлетах если нам пришла задача мы обязательно создавали поток и он жил столько же сколько и задача. В асинхронных сервлетах вся информация о запросе сохраняется в asyncContext обеъекте. Который позволяет вытащить всю информацию позже. При этом пока живёт этот context само http соединение держится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 11:48 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39432196&tid=2123001]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 409ms |

| 0 / 0 |
