Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3247
questioner
ешё раз повторю к Вам вопрос:
Так просветите тогда уж раз уж Вы не согласны)
Ваш вопрос на самом деле звучит так: я решил что с левой ноги вставать лучше, обоснуйте почему я неправ. Операционная система предоставляет две возможности, вокруг которых крутится вся оптимизация: Zero Copy (DMA и sendfile) - не копируем данные в user space, и Async I/O - не ждем ответа, а узнаем есть что новое для нас или нет. Если у вас приложение не умеет ни то, ни другое, то толку от асинхронной обработки http нет никакого, потому что совершенно нет никакой разницы в каком потоке выполнятьсяждать.
28 июн 19, 18:53    [21917285]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Андрей Панфилов, так плюсов в использовании servlet 3.1 нет?
28 июн 19, 19:58    [21917318]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
questioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове.


автор
Я вот это не совсем понял. Мне кажется это релевантно для медленного коннекшена или медленного клиента, который медленно шлёт или принимает. Какие ещё могут быть точки торможения я не представляю. То как там NIO будет работать с вводом выводом это уже не так интересно. Меня вполне удовлетворит абстракция, что она это сделает эффективно.


не понял, если честно ;)
28 июн 19, 20:02    [21917321]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
lleming
Member

Откуда:
Сообщений: 1595
Озверин
Андрей Панфилов, так плюсов в использовании servlet 3.1 нет?


в плане производительности ?

Тащем та я как понял, это еще один API который позволяте использовать потоки контейнера вместо самодельного велосипета что вкупе с особоненостями tomcat можно получить неприятные эффекты.

Из гуд ньюз то потоки управляемые контейнером, контейнер имеет доступ и может управлять их жизненным циклом. Ежели томкату скажут "все" то он сможем им передать этим потокам что "все". С самодельными потоками часто никто не заморачивается их привзякой к томкату.
28 июн 19, 20:22    [21917329]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
questioner
Member

Откуда:
Сообщений: 1712
Озверин
questioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове.


автор
Я вот это не совсем понял. Мне кажется это релевантно для медленного коннекшена или медленного клиента, который медленно шлёт или принимает. Какие ещё могут быть точки торможения я не представляю. То как там NIO будет работать с вводом выводом это уже не так интересно. Меня вполне удовлетворит абстракция, что она это сделает эффективно.


не понял, если честно ;)

Вот что пишет чувак из Pivotal:

https://stackoverflow.com/a/56808576/2674303
When using Servlet 2.5, Servlet containers will assign a request to a thread until that request has been fully processed.

When using Servlet 3.0 async processing, the server can dispatch the request processing in a separate thread pool while the request is being processed by the application. However, when it comes to I/O, work always happens on a server thread and it is always blocking. This means that a "slow client" can monopolize a server thread, since the server is blocked while reading/writing to that client with a poor network connection.

With Servlet 3.1, async I/O is allowed and in that case the "one request/thread" model isn't anymore. At any point a bit request processing can be scheduled on a different thread managed by the server.

Servlet 3.1+ containers offer all those possibilities with the Servlet API. It's up to the application to leverage async processing, or non-blocking I/O. In the case of non-blocking I/O, the paradigm change is important and it's really challenging to use.

With Spring WebFlux - Tomcat, Jetty and Netty don't have the exact same runtime model, but they all support reactive backpressure and non-blocking I/O.
28 июн 19, 20:50    [21917340]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
questioner
Member

Откуда:
Сообщений: 1712
Андрей Панфилов
questioner
ешё раз повторю к Вам вопрос:
Так просветите тогда уж раз уж Вы не согласны)
Ваш вопрос на самом деле звучит так: я решил что с левой ноги вставать лучше, обоснуйте почему я неправ. Операционная система предоставляет две возможности, вокруг которых крутится вся оптимизация: Zero Copy (DMA и sendfile) - не копируем данные в user space, и Async I/O - не ждем ответа, а узнаем есть что новое для нас или нет. Если у вас приложение не умеет ни то, ни другое, то толку от асинхронной обработки http нет никакого, потому что совершенно нет никакой разницы в каком потоке выполнятьсяждать.



Продолжайте мысль....
Вопрос вполне конкретный. Приведите пример при каком юзкейсе servlet 3.0 даст преимущество перед servlet 2.5
28 июн 19, 20:53    [21917342]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
Озверин
плюсов в использовании servlet 3.1 нет?
народ скорее кафкой масштабировать будет)
28 июн 19, 21:03    [21917348]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9178
Озверин
1. В версии http 1.0 каждый запрос порождал соединение. Запрос - соединение создается - ответ - соединение закрывается
1.2. Один запрос - один поток. Причем это дорогой поток, потому что является блокироующим: и поток, и ресурсы(база, файл, io).

Тут кроется проблема - скорость! http 1. 0 медленный из-за того, что на каждый запрос приходится открывать и закрывать соединение

2. В версии http 1.1 в рамках одного соединения может быть несколько запросов, каждый из которых будет в своем отдельном потоке.
Скорость увеличивается для клиентов, которые посылают запросы пачками, но, возникает проблема, что web container быстро расходует pool потоков.
"Смешались в кучу кони, люди ..."
Постоянные подключения появились уже в HTTP/1.0 (прагма keep-alive). HTTP/1.1 сделал постоянные подключения вариантом по умолчанию (Connection: close). Детали когда "можно постоянные подключения" - опускаются.
Постоянные подключения сами по себе не увеличивают число потоков исполнения - запросы продолжают поступать и обрабатываться строго последовательно.
Установление подключения - десятки-сотни миллисекунд и для запросов продолжительнее трёх-пяти секунд это не очень существенно. При некоторых оговорках, которые могут и не выполняться.
Поток не может быть "дорогим" - если для исполнения требуются определённые ресурсы, то придётся их потратить в любом случае.

Семантика асинхронного контекста сервлетов 3.0 позволяет контейнеру оптимизировать управление ресурсами. Реализованы эти оптимизации в конкретном контейнере и возможно ли их задействовать в конкретном сценарии - вопрос отдельный.

Асинхронный ввод-вывод в сервлетах 3.1 позволяет задействовать (и достаточно просто) оптимизации ввода-вывода не только на уровне контейнера, но и в прикладном коде. Будет с этого какой-то выигрыш - вопрос, опять-таки, отдельный.
28 июн 19, 21:23    [21917356]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
Basil A. Sidorov
Будет с этого какой-то выигрыш - вопрос, опять-таки, отдельный.

если ты заметил, то ТС докопался до разницы между левой ногой и правой. Или между 3.1 и WebFlux
))
28 июн 19, 22:22    [21917367]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
questioner
Member

Откуда:
Сообщений: 1712
Basil A. Sidorov
Семантика асинхронного контекста сервлетов 3.0 позволяет контейнеру оптимизировать управление ресурсами. Реализованы эти оптимизации в конкретном контейнере и возможно ли их задействовать в конкретном сценарии - вопрос отдельный.

Асинхронный ввод-вывод в сервлетах 3.1 позволяет задействовать (и достаточно просто) оптимизации ввода-вывода не только на уровне контейнера, но и в прикладном коде. Будет с этого какой-то выигрыш - вопрос, опять-таки, отдельный.


Хотелось бы побольше конкретики
28 июн 19, 23:33    [21917386]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
questioner
Member

Откуда:
Сообщений: 1712
Озверин
questioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове.


автор
Я вот это не совсем понял. Мне кажется это релевантно для медленного коннекшена или медленного клиента, который медленно шлёт или принимает. Какие ещё могут быть точки торможения я не представляю. То как там NIO будет работать с вводом выводом это уже не так интересно. Меня вполне удовлетворит абстракция, что она это сделает эффективно.


не понял, если честно ;)

вот ещё по этому поводу что пишут: https://stackoverflow.com/a/40231294/2674303
28 июн 19, 23:35    [21917388]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3247
Озверин
так плюсов в использовании servlet 3.1 нет?
Если видосики не стримить, то в текущей реализации/инфраструктуре как-то никаких преимуществ не видно - оно же определяет только общение с клиентом, а не весь стэк (медленный клиент - это страшилка из начала 2000-х, когда P4 с гигабайтом памяти считалось приличным железом, сейчас же мощности совсем другие, да и жава голой жопой в интернеты обычно не торчит: либо intranet, либо через балансировщик/reverse-proxy)
29 июн 19, 08:08    [21917416]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Можно почитать некоторые тесты:
https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0
1 июл 19, 09:54    [21917931]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
Озверин,
Ссылка требует регистрации.
1 июл 19, 10:37    [21917956]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
PetroNotC Sharp, у меня не требует, язх.
1 июл 19, 10:38    [21917958]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
Озверин,
Открыл в режиме инкогнито - работает. Наверно куки влияют.
Более 3х раз сайт читать не дает))))
1 июл 19, 10:46    [21917963]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
questioner
Member

Откуда:
Сообщений: 1712
Андрей Панфилов
Озверин
так плюсов в использовании servlet 3.1 нет?
Если видосики не стримить, то в текущей реализации/инфраструктуре как-то никаких преимуществ не видно - оно же определяет только общение с клиентом, а не весь стэк (медленный клиент - это страшилка из начала 2000-х, когда P4 с гигабайтом памяти считалось приличным железом, сейчас же мощности совсем другие, да и жава голой жопой в интернеты обычно не торчит: либо intranet, либо через балансировщик/reverse-proxy)


Как-то звучит странно. Особо никто про стриминг не пишет в описании servlet 3.1

Думается, что не идиоты это придумали и у них была мотивация делать то, что они сделали
1 июл 19, 10:54    [21917968]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
Озверин
Можно почитать некоторые тесты:
https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0
опять микросервисы)
1 июл 19, 10:58    [21917971]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3247
Озверин
Можно почитать некоторые тесты:
https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0
Написанное можно по разному читать. Для начала, ну вот есть там ограниченные ресурсы и возможность использовать async i/o, ну и используют. С другой стороны получается так: был прекрасный монолит с общением через память, заменили микросервисами с тормозным http, с апломбом что якобы монолит не масштабируется, как итог сторонний сервис умеет 4 тыщи запросов в секунду, а тормознутые микросервисы и до 2 тыщ не дотянули, зато масштабируется.
1 июл 19, 11:34    [21917992]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3247
questioner
Как-то звучит странно. Особо никто про стриминг не пишет в описании servlet 3.1

Думается, что не идиоты это придумали и у них была мотивация делать то, что они сделали
Не представляю как можно так тупить-то.... вот зачем вы приводите ссылки, цитаты и прочую ересь, если сами их не читаете?
questioner
When using Servlet 3.0 async processing, the server can dispatch the request processing in a separate thread pool while the request is being processed by the application. However, when it comes to I/O, work always happens on a server thread and it is always blocking. This means that a "slow client" can monopolize a server thread, since the server is blocked while reading/writing to that client with a poor network connection.
Вопрос: сколько можно в сокет написать без блокировки?
1 июл 19, 11:57    [21918019]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Андрей Панфилов
Озверин
Можно почитать некоторые тесты:
https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0
Написанное можно по разному читать. Для начала, ну вот есть там ограниченные ресурсы и возможность использовать async i/o, ну и используют. С другой стороны получается так: был прекрасный монолит с общением через память, заменили микросервисами с тормозным http, с апломбом что якобы монолит не масштабируется, как итог сторонний сервис умеет 4 тыщи запросов в секунду, а тормознутые микросервисы и до 2 тыщ не дотянули, зато масштабируется.


читать можно как угодно, конечно. Но я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял. Есть среды, где необходимо масштбаривание и где монолит не тянет. Если такие среды и задачи есть - к чему подобные комментарии?
1 июл 19, 12:08    [21918030]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3247
Озверин
Но я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял.
Выглядит это все несколько притянутым за уши: у чувака без какой-либо пре/пост-обработки throughput в два раза упал в сравнении с оригинальным сервисом, скорее всего если добавить еще авторизацию, то наскребется на порядок. Получается что сначала мы сами придумываем себе проблемы, а потом героически их решаем, при всем при этом за "банкет" платит заказчик: вместо того чтобы разогнать дебилов и взять нормальный хостинг, приходится ютиться на t2.micro и оплачивать время идиотов.
1 июл 19, 12:39    [21918057]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Андрей Панфилов
Озверин
Но я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял.
Выглядит это все несколько притянутым за уши: у чувака без какой-либо пре/пост-обработки throughput в два раза упал в сравнении с оригинальным сервисом, скорее всего если добавить еще авторизацию, то наскребется на порядок. Получается что сначала мы сами придумываем себе проблемы, а потом героически их решаем, при всем при этом за "банкет" платит заказчик: вместо того чтобы разогнать дебилов и взять нормальный хостинг, приходится ютиться на t2.micro и оплачивать время идиотов.


ну других более гениальных тестов я не нашел, а от вас слышу только про идиотов, воду, бесполезность микросеврисов и уши ;)
1 июл 19, 12:48    [21918064]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
Озверин,
Статья интересная, но я согласен с Андрей Панфиловым что аргумент с микросервисами притянут за уши.
Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку.
Без юз кейса общения микросервисов и побочных от этого эффектов.
1 июл 19, 12:58    [21918071]     Ответить | Цитировать Сообщить модератору
 Re: Чем асинхронные сервлеты отличаются от Sping WebFlux  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 552
Озверин
других более гениальных тестов
за артистизм 5, за технику 3.
Вот такая оценка статьи к данному сабжу.
Можно пометить OFF/2.
А то что нет статей, это ожидаемо.
1 июл 19, 13:01    [21918074]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
Все форумы / Java Ответить