|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerешё раз повторю к Вам вопрос: Так просветите тогда уж раз уж Вы не согласны)Ваш вопрос на самом деле звучит так: я решил что с левой ноги вставать лучше, обоснуйте почему я неправ. Операционная система предоставляет две возможности, вокруг которых крутится вся оптимизация: Zero Copy (DMA и sendfile) - не копируем данные в user space, и Async I/O - не ждем ответа, а узнаем есть что новое для нас или нет. Если у вас приложение не умеет ни то, ни другое, то толку от асинхронной обработки http нет никакого, потому что совершенно нет никакой разницы в каком потоке выполнятьсяждать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 18:53 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилов, так плюсов в использовании servlet 3.1 нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 19:58 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове. авторЯ вот это не совсем понял. Мне кажется это релевантно для медленного коннекшена или медленного клиента, который медленно шлёт или принимает. Какие ещё могут быть точки торможения я не представляю. То как там NIO будет работать с вводом выводом это уже не так интересно. Меня вполне удовлетворит абстракция, что она это сделает эффективно. не понял, если честно ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 20:02 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинАндрей Панфилов, так плюсов в использовании servlet 3.1 нет? в плане производительности ? Тащем та я как понял, это еще один API который позволяте использовать потоки контейнера вместо самодельного велосипета что вкупе с особоненостями tomcat можно получить неприятные эффекты. Из гуд ньюз то потоки управляемые контейнером, контейнер имеет доступ и может управлять их жизненным циклом. Ежели томкату скажут "все" то он сможем им передать этим потокам что "все". С самодельными потоками часто никто не заморачивается их привзякой к томкату. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 20:22 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин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.06.2019, 20:50 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфиловquestionerешё раз повторю к Вам вопрос: Так просветите тогда уж раз уж Вы не согласны)Ваш вопрос на самом деле звучит так: я решил что с левой ноги вставать лучше, обоснуйте почему я неправ. Операционная система предоставляет две возможности, вокруг которых крутится вся оптимизация: Zero Copy (DMA и sendfile) - не копируем данные в user space, и Async I/O - не ждем ответа, а узнаем есть что новое для нас или нет. Если у вас приложение не умеет ни то, ни другое, то толку от асинхронной обработки http нет никакого, потому что совершенно нет никакой разницы в каком потоке выполнятьсяждать. Продолжайте мысль.... Вопрос вполне конкретный. Приведите пример при каком юзкейсе servlet 3.0 даст преимущество перед servlet 2.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 20:53 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинплюсов в использовании servlet 3.1 нет?народ скорее кафкой масштабировать будет) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 21:03 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин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.06.2019, 21:23 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Basil A. SidorovБудет с этого какой-то выигрыш - вопрос, опять-таки, отдельный. если ты заметил, то ТС докопался до разницы между левой ногой и правой. Или между 3.1 и WebFlux )) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 22:22 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Basil A. SidorovСемантика асинхронного контекста сервлетов 3.0 позволяет контейнеру оптимизировать управление ресурсами. Реализованы эти оптимизации в конкретном контейнере и возможно ли их задействовать в конкретном сценарии - вопрос отдельный. Асинхронный ввод-вывод в сервлетах 3.1 позволяет задействовать (и достаточно просто) оптимизации ввода-вывода не только на уровне контейнера, но и в прикладном коде. Будет с этого какой-то выигрыш - вопрос, опять-таки, отдельный. Хотелось бы побольше конкретики ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 23:33 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинquestioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове. авторЯ вот это не совсем понял. Мне кажется это релевантно для медленного коннекшена или медленного клиента, который медленно шлёт или принимает. Какие ещё могут быть точки торможения я не представляю. То как там NIO будет работать с вводом выводом это уже не так интересно. Меня вполне удовлетворит абстракция, что она это сделает эффективно. не понял, если честно ;) вот ещё по этому поводу что пишут: https://stackoverflow.com/a/40231294/2674303 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 23:35 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинтак плюсов в использовании servlet 3.1 нет?Если видосики не стримить, то в текущей реализации/инфраструктуре как-то никаких преимуществ не видно - оно же определяет только общение с клиентом, а не весь стэк (медленный клиент - это страшилка из начала 2000-х, когда P4 с гигабайтом памяти считалось приличным железом, сейчас же мощности совсем другие, да и жава голой жопой в интернеты обычно не торчит: либо intranet, либо через балансировщик/reverse-proxy) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2019, 08:08 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Можно почитать некоторые тесты: https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 09:54 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин, Ссылка требует регистрации. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:37 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, у меня не требует, язх. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:38 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин, Открыл в режиме инкогнито - работает. Наверно куки влияют. Более 3х раз сайт читать не дает)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:46 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинтак плюсов в использовании servlet 3.1 нет?Если видосики не стримить, то в текущей реализации/инфраструктуре как-то никаких преимуществ не видно - оно же определяет только общение с клиентом, а не весь стэк (медленный клиент - это страшилка из начала 2000-х, когда P4 с гигабайтом памяти считалось приличным железом, сейчас же мощности совсем другие, да и жава голой жопой в интернеты обычно не торчит: либо intranet, либо через балансировщик/reverse-proxy) Как-то звучит странно. Особо никто про стриминг не пишет в описании servlet 3.1 Думается, что не идиоты это придумали и у них была мотивация делать то, что они сделали ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:54 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинМожно почитать некоторые тесты: https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 опять микросервисы) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:58 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинМожно почитать некоторые тесты: https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 Написанное можно по разному читать. Для начала, ну вот есть там ограниченные ресурсы и возможность использовать async i/o, ну и используют. С другой стороны получается так: был прекрасный монолит с общением через память, заменили микросервисами с тормозным http, с апломбом что якобы монолит не масштабируется, как итог сторонний сервис умеет 4 тыщи запросов в секунду, а тормознутые микросервисы и до 2 тыщ не дотянули, зато масштабируется. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 11:34 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerКак-то звучит странно. Особо никто про стриминг не пишет в описании servlet 3.1 Думается, что не идиоты это придумали и у них была мотивация делать то, что они сделалиНе представляю как можно так тупить-то.... вот зачем вы приводите ссылки, цитаты и прочую ересь, если сами их не читаете? questionerWhen 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. Вопрос: сколько можно в сокет написать без блокировки? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 11:57 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинМожно почитать некоторые тесты: https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 Написанное можно по разному читать. Для начала, ну вот есть там ограниченные ресурсы и возможность использовать async i/o, ну и используют. С другой стороны получается так: был прекрасный монолит с общением через память, заменили микросервисами с тормозным http, с апломбом что якобы монолит не масштабируется, как итог сторонний сервис умеет 4 тыщи запросов в секунду, а тормознутые микросервисы и до 2 тыщ не дотянули, зато масштабируется. читать можно как угодно, конечно. Но я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял. Есть среды, где необходимо масштбаривание и где монолит не тянет. Если такие среды и задачи есть - к чему подобные комментарии? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 12:08 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинНо я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял.Выглядит это все несколько притянутым за уши: у чувака без какой-либо пре/пост-обработки throughput в два раза упал в сравнении с оригинальным сервисом, скорее всего если добавить еще авторизацию, то наскребется на порядок. Получается что сначала мы сами придумываем себе проблемы, а потом героически их решаем, при всем при этом за "банкет" платит заказчик: вместо того чтобы разогнать дебилов и взять нормальный хостинг, приходится ютиться на t2.micro и оплачивать время идиотов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 12:39 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинНо я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял.Выглядит это все несколько притянутым за уши: у чувака без какой-либо пре/пост-обработки throughput в два раза упал в сравнении с оригинальным сервисом, скорее всего если добавить еще авторизацию, то наскребется на порядок. Получается что сначала мы сами придумываем себе проблемы, а потом героически их решаем, при всем при этом за "банкет" платит заказчик: вместо того чтобы разогнать дебилов и взять нормальный хостинг, приходится ютиться на t2.micro и оплачивать время идиотов. ну других более гениальных тестов я не нашел, а от вас слышу только про идиотов, воду, бесполезность микросеврисов и уши ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 12:48 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин, Статья интересная, но я согласен с Андрей Панфиловым что аргумент с микросервисами притянут за уши. Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку. Без юз кейса общения микросервисов и побочных от этого эффектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 12:58 |
|
|
start [/forum/topic.php?fid=59&msg=39831798&tid=2121217]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
292ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 433ms |
0 / 0 |