powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Чем асинхронные сервлеты отличаются от Sping WebFlux
146 сообщений из 146, показаны все 6 страниц
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831285
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть использования асинхронных сервлетов в том, что мы можем вернуть DefferedResult(Если работать через spring). Это приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов. Далее контроллер вызывает сервис, базу в отдельном треде и как только у нас есть ответ, то мы говорим, что досчитали defferedResult и работа передаётся в тред томката.

Есть какой-то новый reactive spring webflux

https://stackoverflow.com/questions/46606246/spring-mvc-async-vs-spring-webflux/46621923

Я что-то не могу понять в чём принципиальное отличие.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831298
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Зачем дубль темы?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831300
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831305
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tomcat 8.5+ поддерживает это всё.

https://dzone.com/articles/servlet-31spring-mvc-non-blocking-io

Зачем тогда webflux?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831308
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerЗачем тогда webflux?а зачем ты подымаешь всё Г. которое на земле валяется?
Это хайповое реактивное программирование.
Совсем другое по сути.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831343
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerЗачем тогда webflux?а зачем ты подымаешь всё Г. которое на земле валяется?
Это хайповое реактивное программирование.
Совсем другое по сути.

Ты тут чтоб на вентилятор накинуть? Нечего ответить - помолчи.


Weblflux построен на servlet 3.1 для томката, так что никакой магии нет. Еще есть Фишечка, что эта либа умеет в рантайме размеры внутренних пулов тюнить
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831346
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Нечего ответить - помолчи.жду твое молчание на
Flux<T>
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831353
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpredwhite90Нечего ответить - помолчи.жду твое молчание на
Flux<T>

Что?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831361
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerСуть использования асинхронных сервлетов в том, что мы можем вернуть DefferedResult(Если работать через spring). Это приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов. Далее контроллер вызывает сервис, базу в отдельном треде и как только у нас есть ответ, то мы говорим, что досчитали defferedResult и работа передаётся в тред томката.В что что вы описали нет никакого смысла, какая разница между тем, что запрос обрабатывается в http-потоке или в каком-то другом? Разницы нет никакой, а профит появляется только тогда, когда мы умеем обрабатывать отложенные запросы пачками.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831366
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90PetroNotC Sharpпропущено...
жду твое молчание на
Flux<T>

Что?нечего по теме сказать - молчи.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831425
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей ПанфиловquestionerСуть использования асинхронных сервлетов в том, что мы можем вернуть DefferedResult(Если работать через spring). Это приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов. Далее контроллер вызывает сервис, базу в отдельном треде и как только у нас есть ответ, то мы говорим, что досчитали defferedResult и работа передаётся в тред томката.В что что вы описали нет никакого смысла, какая разница между тем, что запрос обрабатывается в http-потоке или в каком-то другом? Разницы нет никакой, а профит появляется только тогда, когда мы умеем обрабатывать отложенные запросы пачками.

Это фича сервлет 3.0. Как я понимаю суть в том, чтобы сервер мог хотя бы принимать запросы даже если он не справляется с нагрузкой, чтобы все потоки контейнера не были заняты.
Например в томкате 100 потоков по дефолту и скажем запрос занимает 5 секунд. И к нам прилетает 101-ый запрос В случае 2.5 мы не можем принять запрос вообще, а в случае 3.0 мы спокойно примем запрос и передадим в другой пул с очередью. Если я ошибаюсь - хочу доказательства ибо такое не в одном месте встречал - например тут: https://stackoverflow.com/a/18187372/2674303
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831428
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфилов, https://stackoverflow.com/a/3810625/2674303

Вот вообще похожая формулировка вопроса
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831432
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerЕсли я ошибаюсь - хочу доказательства ибо такое не в одном месте встречал - например тут: https://stackoverflow.com/a/18187372/2674303 Бгг, доказательств... вы сначала на пальцах попробуйте рассказать каким боком асинхронная обработка будет снимать нагрузку, в первом же приближении нам что "по классике", что "по новомодному" нужно один и тот же объем данных обработать и оснований полагать, что перенос обработки из одного места в другое что-то там может улучшить, нет никаких (есть малосущественный кейс с отдачей контента клиенту, но он решается более другими простыми способами).

Вот вы откуда-то выдумали:questionerЭто приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов.Ну освободили вы поток, что это дало-то? http-клиенту ничего не дало: он как ждал, так и будет продолжать ждать. Какой выигрыш вы получили для сервера? С большой долей вероятности вы наоборот потеряли: пока клиентские запросы висят в очереди они ничего не стоят, а как только вы их "частично обработали" и переложили в другую очередь то по крайней мере на памяти потеряли (плюс к этому контеншн с tcp-стека в лучшем случае на планировщик операционной системы переложили, а в худшем на базу). Думаете что у сервера приложений маленький пул? ну так увеличьте его, какая вам разница какой пул потоков увеличивать-то? Вот вам примеры из интернетов:
https://dzone.com/articles/spring-and-servlet-30-asynchronous-processing - мужик все правильно расписал

https://plumbr.io/blog/java/how-to-use-asynchronous-servlets-to-improve-performance - а вот это дичь, на которую вы ведетесь: подменили одно выполнение другим и говорим что стало лучше
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831465
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
+1

questionerЭто фича сервлет 3.0. Как я понимаю суть в том,
Все время суть от вас ускользает.
Вы писали хоть одно асинхронное на сервлетах?
То которое, крнтейнер не смог, а вы своим кодом смогли?
Теория без практики мертва.
Опять рассуждаете о DI не написав ни строчки кода в топике.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831469
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловНу освободили вы поток, что это дало-то?
OFF/2
В шарпе MS такая парадигма. Потому что у них нет контейнера с потоками и прогеры сами пишут Async через строчку.
Типо помогают серверу.
Но думаю что скоро перейдут к решению из java. Уж очень муторный код в итоге на бэке.
Имхо
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831537
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpАндрей Панфилов,
+1

questionerЭто фича сервлет 3.0. Как я понимаю суть в том,
Все время суть от вас ускользает.
Вы писали хоть одно асинхронное на сервлетах?
То которое, крнтейнер не смог, а вы своим кодом смогли?
Теория без практики мертва.
Опять рассуждаете о DI не написав ни строчки кода в топике.

Уважаемый(нет), уймись уже. от тебя толку ноль.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831544
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Почему то каждый, кто пилит код лет 5, или около того считает что может разговаривать про архитектуру.
Увы. Это другая область знаний.
ДРУГАЯ.
Поэтому, мембер, мне не надо отвечать. Разговаривай по теме топика.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831548
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей ПанфиловquestionerЕсли я ошибаюсь - хочу доказательства ибо такое не в одном месте встречал - например тут: https://stackoverflow.com/a/18187372/2674303 Бгг, доказательств... вы сначала на пальцах попробуйте рассказать каким боком асинхронная обработка будет снимать нагрузку, в первом же приближении нам что "по классике", что "по новомодному" нужно один и тот же объем данных обработать и оснований полагать, что перенос обработки из одного места в другое что-то там может улучшить, нет никаких (есть малосущественный кейс с отдачей контента клиенту, но он решается более другими простыми способами).

Вот вы откуда-то выдумали:questionerЭто приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов.Ну освободили вы поток, что это дало-то? http-клиенту ничего не дало: он как ждал, так и будет продолжать ждать. Какой выигрыш вы получили для сервера? С большой долей вероятности вы наоборот потеряли: пока клиентские запросы висят в очереди они ничего не стоят, а как только вы их "частично обработали" и переложили в другую очередь то по крайней мере на памяти потеряли (плюс к этому контеншн с tcp-стека в лучшем случае на планировщик операционной системы переложили, а в худшем на базу). Думаете что у сервера приложений маленький пул? ну так увеличьте его, какая вам разница какой пул потоков увеличивать-то? Вот вам примеры из интернетов:
https://dzone.com/articles/spring-and-servlet-30-asynchronous-processing - мужик все правильно расписал

https://plumbr.io/blog/java/how-to-use-asynchronous-servlets-to-improve-performance - а вот это дичь, на которую вы ведетесь: подменили одно выполнение другим и говорим что стало лучше


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

Во первых контролировать тредпул на стороне приложения в любом случае удобнее. Мне не приходилось настраивать пул потоков в томкате, но могу предположить, что это несколько менее гибко, и скорее всего менее удобно. К тому же где гарантия, что все контейнеры это позволяют? Если в томкате 100 потоков и все они сейчас занимаются обработкой запроса, то 101 просто обломится, а не в очередь встанет. В случае с приложением мы можем настроить тредпул с очередью.

Ну вот ещё(автор если что ROSSEN STOYANCHEV):
https://spring.io/blog/2012/05/07/spring-mvc-3-2-preview-introducing-servlet-3-async-support In some cases you can return to the client immediately while a background job completes processing. For example sending an email, kicking off a database job, and others represent fire-and-forget scenarios that can be handled with Spring's @Async support or by posting an event to a Spring Integration channel and then returning a confirmation id the client can use to query for the results.

In other cases, where the result is required, we need to decouple processing from the Servlet container thread or else we'll exhaust its thread pool. Servlet 3 provides just such support where a Servlet (or a Spring MVC controller) can indicate the response should be left open after the Servlet container thread is exited.

To achieve this, a Servlet 3 web application can call request.startAsync() and use the returned AsyncContext to continue to write to the response from some other separate thread. At the same time from a client's perspective the request still looks like any other HTTP request-response interaction. It just takes longer to complete. The following is the sequence of events:

Client sends a request
Servlet container allocates a thread and invokes a servlet in it
The servlet calls request.startAsync(), saves the AsyncContext, and returns
The container thread is exited all the way but the response remains open
Some other thread uses the saved AsyncContext to complete the response
Client receives the response
https://spring.io/blog/2012/05/07/spring-mvc-3-2-preview-introducing-servlet-3-async-support
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831564
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про очередь конкретно у томката я прогнал, признаю - https://tomcat.apache.org/tomcat-9.0-doc/config/executor.html
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831583
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerнагрузку не снимается, сервер имеет возможность лучше обрабатывать пиковые нагрузки.Физика под этим "лучше обрабатывать" какая лежит? Вот мы берем "типичное" приложение и затаскиваем весь говнокод из контроллеров в DefferedResult - в каком месте и из-за чего оно начнет что-то "лучше обрабатывать"? или таки есть специфичные кейсы где мы можем получить неиллюзорный профит а в остальных случаях ничего кроме геморроя не получить? Вы вообще задумывались по какой причине топят за всякие фиберы в жаве и реактивное программирование? почему поток - это плохо?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831596
Андрей ПанфиловquestionerСуть использования асинхронных сервлетов в том, что мы можем вернуть DefferedResult(Если работать через spring). Это приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов. Далее контроллер вызывает сервис, базу в отдельном треде и как только у нас есть ответ, то мы говорим, что досчитали defferedResult и работа передаётся в тред томката.В что что вы описали нет никакого смысла, какая разница между тем, что запрос обрабатывается в http-потоке или в каком-то другом? Разницы нет никакой, а профит появляется только тогда, когда мы умеем обрабатывать отложенные запросы пачками.

почему нет смысла? а как на счет того, что поток это жирно для ОС(процесс для ОС еще жирнее, к примеру) и мы можем переложить выполнение некоторых задач(чтение-запись файла) на потоки ядра, которые еще сильнее оптимизированы и тоньше.
nginx работающий по такому принципу, значительно производительнее apache, который создает потоки для каждого подключения
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831598
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerНу вот ещё(автор если что ROSSEN STOYANCHEV):
вы у автора уточните.
Он беспокоится за оптимизацию бэка или клиента?
У клиента при асинхронном программировании методом AJAX и так всё шеколадно.
Он ждёт Асинхронно ответ (в разумных пределах таймаута) и его ничего не парит.
Ему не нужно сразу возвращать управление(ответ).
Поэтому забудьте о клиенте при доказательствах нужности.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831600
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerНу вот ещё(автор если что ROSSEN STOYANCHEV):
вы у автора уточните.
Он беспокоится за оптимизацию бэка или клиента?
У клиента при асинхронном программировании методом AJAX и так всё шеколадно.
Он ждёт Асинхронно ответ (в разумных пределах таймаута) и его ничего не парит.
Ему не нужно сразу возвращать управление(ответ).
Поэтому забудьте о клиенте при доказательствах нужности.

Вот неуёмный какой)) не угомониться ему никак.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831601
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сладкий бубалехчто поток это жирно для ОС
Контейнер создавали чтобы в прикладном коде программист меньше думал о потоках.
Иначе нужны цифры и доказательства. Накладные расходы растут.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831603
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerВот неуёмный какой)) не угомониться ему никак.
по теме, по теме пишите.
А то вы сначала отвечаете, а потом ссылки читаете)).
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831609
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфиловquestionerнагрузку не снимается, сервер имеет возможность лучше обрабатывать пиковые нагрузки.Физика под этим "лучше обрабатывать" какая лежит? Вот мы берем "типичное" приложение и затаскиваем весь говнокод из контроллеров в DefferedResult - в каком месте и из-за чего оно начнет что-то "лучше обрабатывать"? или таки есть специфичные кейсы где мы можем получить неиллюзорный профит а в остальных случаях ничего кроме геморроя не получить? Вы вообще задумывались по какой причине топят за всякие фиберы в жаве и реактивное программирование? почему поток - это плохо?

Если резюмировать то о чем мы общались, то я согласен, с тем, что чуть экономнее по памяти будет настраивать контейнер для тех случаев, которые мы рассматривали. Но если контейнер не настраивается или хочется большего контроля над тредпулом, то можно использовать servlet 3.0 и результаты будут сходные. Небольшой(в большинстве случаев) оверхед по памяти.

Андрей Панфилов профит появляется только тогда, когда мы умеем обрабатывать отложенные запросы пачками

А вот тут Вы правильно заметили, но не развили мысль, а я уже забыл про это хотя пару лет назад читал.

https://www.javacodegeeks.com/2013/10/how-to-use-asynchronous-servlets-to-improve-performance.html
а лучше тут(в предыдущей ссылке не очень понятно как событие вызывается) https://plumbr.io/blog/java/how-to-use-asynchronous-servlets-to-improve-performance

В общем суть в том, что есть 100500 клиентов которые ждут например какой-то котировки, которая обновляется раз в 5 секунд и соответственно для клиента это ОК ждать какое-то время.

Соответственно мы должны просто принять запрос и положить его в очередь. Когда пришло событие с новой котировкой мы просто забираем из очереди все запросы и отправляем клиентам эту котировку. Throughput взлетел до небес, Latency тоже радует.


Андрей Панфилов ,
Теперь насчёт 3.0 мы одной волне?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831616
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сладкий бубалехпочему нет смысла? а как на счет того, что поток это жирно для ОС(процесс для ОС еще жирнее, к примеру) и мы можем переложить выполнение некоторых задач(чтение-запись файла) на потоки ядра, которые еще сильнее оптимизированы и тоньше.
nginx работающий по такому принципу, значительно производительнее apache, который создает потоки для каждого подключенияПотому что чтобы получить профит должен быть определенный паттерн работы сервиса, ну например как в сеансе одновременной игры в шахматы: гроссмейстер может одновременно с несколькими нубами играть, просто потому что может, а одновременно с такими же по уровню - кишка тонка. Здесь то же самое: тыще клиентов отправить один и тот же ответ с некоторой приемлемой задержкой - прекрасно перекладывается на асинхронную обработку, а посчитать классический Фибоначчи - профита не будет никакого. Хотим с СУБД как-то хитро работать? нет проблем, только нужно будет забыть про консистентность.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831634
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловЧтобы получить профит должен быть определенный паттерн работы сервиса

Прям резюмировал топик +5.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831639
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerНу вот ещё(автор если что ROSSEN STOYANCHEV):
вы у автора уточните.
Он беспокоится за оптимизацию бэка или клиента?
У клиента при асинхронном программировании методом AJAX и так всё шеколадно.
Он ждёт Асинхронно ответ (в разумных пределах таймаута) и его ничего не парит.
Ему не нужно сразу возвращать управление(ответ).
Поэтому забудьте о клиенте при доказательствах нужности.

Всё таки умение увидеть в тексте абсолютно противоположное это искусство.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831643
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner
А вот тут Вы правильно заметили, но не развили мысль, а я уже забыл про это хотя пару лет назад читал.

https://www.javacodegeeks.com/2013/10/how-to-use-asynchronous-servlets-to-improve-performance.html
а лучше тут(в предыдущей ссылке не очень понятно как событие вызывается) https://plumbr.io/blog/java/how-to-use-asynchronous-servlets-to-improve-performance

В общем суть в том, что есть 100500 клиентов которые ждут например какой-то котировки, которая обновляется раз в 5 секунд и соответственно для клиента это ОК ждать какое-то время.

Соответственно мы должны просто принять запрос и положить его в очередь. Когда пришло событие с новой котировкой мы просто забираем из очереди все запросы и отправляем клиентам эту котировку. Throughput взлетел до небес, Latency тоже радует.


Андрей Панфилов ,
Теперь насчёт 3.0 мы одной волне?

highload и low latency проекты могут пересекать, но в данном случае - latency вряд ли будет радовать, но пропускная способность - да.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831651
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerСуть использования асинхронных сервлетов в том, что мы можем вернуть DefferedResult(Если работать через spring). Это приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов. Далее контроллер вызывает сервис, базу в отдельном треде и как только у нас есть ответ, то мы говорим, что досчитали defferedResult и работа передаётся в тред томката.

Есть какой-то новый reactive spring webflux

https://stackoverflow.com/questions/46606246/spring-mvc-async-vs-spring-webflux/46621923

Я что-то не могу понять в чём принципиальное отличие.

1. когда родились так называемые асинхронные сервлеты 3.0 - запросо то там были асинхронными, но io все еще было стандартным - блокирующим. В 3.1 исправили, но webflux стал рождаться раньше.

2. webflux добавил сахаара из стримов

3. все таки надо понимать, что spring стал работать одноврменно над reactive репозиториями, без которых освобождение потока - такое себе счастье.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831659
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОзверинquestionerА вот тут Вы правильно заметили, но не развили мысль, а я уже забыл про это хотя пару лет назад читал.

https://www.javacodegeeks.com/2013/10/how-to-use-asynchronous-servlets-to-improve-performance.html
а лучше тут(в предыдущей ссылке не очень понятно как событие вызывается) https://plumbr.io/blog/java/how-to-use-asynchronous-servlets-to-improve-performance

В общем суть в том, что есть 100500 клиентов которые ждут например какой-то котировки, которая обновляется раз в 5 секунд и соответственно для клиента это ОК ждать какое-то время.

Соответственно мы должны просто принять запрос и положить его в очередь. Когда пришло событие с новой котировкой мы просто забираем из очереди все запросы и отправляем клиентам эту котировку. Throughput взлетел до небес, Latency тоже радует.


Андрей Панфилов ,
Теперь насчёт 3.0 мы одной волне?

highload и low latency проекты могут пересекать, но в данном случае - latency вряд ли будет радовать, но пропускная способность - да.


Согласен, что на throughput оптимизация выглядит более очевидной, но у автора статьи и latency выросла тоже не кисло.

https://plumbr.io/blog/java/how-to-use-asynchronous-servlets-to-improve-performance This bit of code is a little more complex, so maybe before we start digging into solution details, I can outline that this solution performed ~5x better latency - and ~5x better throughput-wise Но это конкретный пример, надо это понимать.

Итого мы разобрались с поддержкой async в servlet 3.0

Давайте теперь с 3.1

Я понимаю, что 3.0 использует блокирующее IO и если у нас плохая сеть, большие запросы/ответы или медленный клиент, то тред контейнера может надолго захватиться и все наши усилия пойдут лесом. Servlet 3.1 использует NIO, что позволяет побороть данную проблему.
Теперь вернёмся к WebFlux:
https://spring.io/blog/2016/07/20/notes-on-reactive-programming-part-iii-a-simple-http-server-application Remember the same application code runs on Tomcat, Jetty or Netty. Currently, the Tomcat and Jetty support is provided on top of Servlet 3.1 asynchronous processing, so it is limited to one request per thread. When the same code runs on the Netty server platform that constraint is lifted, and the server can dispatch requests sympathetically to the web client. As long as the client doesn’t block, everyone is happy. Performance metrics for the netty server and client probably show similar characteristics, but the Netty server is not restricted to processing a single request per thread , so it doesn’t use a large thread pool and we might expect to see some differences in resource utilization. We will come back to that later in another article in this series.


Ну то есть servlet 3.1 и webFlux для томката это по сути одно и то же.

Я вот не могу понять смысла выделенной фразы. Что он имеет ввиду? в случае асинхронных сервлетов мы ведь уже принимаем запрос одним потоком, а возвращаем другим(скорее всего)
Следующей статьи я не нашёл) Видимо он её так и не написал
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831660
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Ты не огрызайся, а думай. У тебя не первый топик с шиворот навыворот выводами.
Пиши код вместе с рассуждениями.
Про DI инверсию код написал?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831662
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин3. все таки надо понимать, что spring стал работать одноврменно над reactive репозиториями, без которых освобождение потока - такое себе счастье.
а кто там уже есть?

в 2016 году на момент написания статьи:

https://spring.io/blog/2016/07/20/notes-on-reactive-programming-part-iii-a-simple-http-server-application Very few databases support non-blocking clients at this point in time (MongoDB and Couchbase are notable exceptions, but even those are not as mature as the HTTP clients)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831666
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
Ты не огрызайся, а думай. У тебя не первый топик с шиворот навыворот выводами.
Пиши код вместе с рассуждениями.
Про DI инверсию код написал?

У тебя всё хорошо? я за тебя переживаю. Все люди как люди, вносят вклад в топик, а ты ничего не понимаешь, а чего-то всё строчишь. ЧСВ повышаешь?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831667
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerВ общем суть в том, что есть 100500 клиентов которые ждут например какой-то котировки, которая обновляется раз в 5 секунд и соответственно для клиента это ОК ждать какое-то время.

Соответственно мы должны просто принять запрос и положить его в очередь. Когда пришло событие с новой котировкой мы просто забираем из очереди все запросы и отправляем клиентам эту котировку. Throughput взлетел до небес, Latency тоже радует.
Вы пытаетесь натянуть сову на глобус: чтобы отдать клиентам один и тот же ответ не нужно их ставить в очередь и обрабатывать запросы по два раза, достаточно результат в памяти разместить (или html под nginx положить и кроном обновлять ) и производительность будет заоблачной.

questionerТеперь насчёт 3.0 мы одной волне?Определенно нет.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831671
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
https://spring.io/blog/2018/12/07/reactive-programming-and-relational-databases As of now, there are three driver implementations:

PostgreSQL
H2
Microsoft SQL Server
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831675
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей ПанфиловquestionerВ общем суть в том, что есть 100500 клиентов которые ждут например какой-то котировки, которая обновляется раз в 5 секунд и соответственно для клиента это ОК ждать какое-то время.

Соответственно мы должны просто принять запрос и положить его в очередь. Когда пришло событие с новой котировкой мы просто забираем из очереди все запросы и отправляем клиентам эту котировку. Throughput взлетел до небес, Latency тоже радует.
Вы пытаетесь натянуть сову на глобус: чтобы отдать клиентам один и тот же ответ не нужно их ставить в очередь и обрабатывать запросы по два раза, достаточно результат в памяти разместить (или html под nginx положить и кроном обновлять ) и производительность будет заоблачной.



1. Где у меня по 2 раза обработка запроса?
2. Зависит от того чего хотим добиться. Если нужно отдавать старую котировку, то можно старую отдавать. Если хотят самую свежую, то придётся повисеть и подождать. Да и вообще, чтобы отдавать старую котировку асинхронные сервлеты вообще не нужны)


По Вашему то какой для 3.0 сервлетов юзкейс ?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831677
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
И где в топике прошлом по DI ты что нибудь понял?
Вот поэтому ты и флудишь мне)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831684
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
И где в топике прошлом по DI ты что нибудь понял?
Вот поэтому ты и флудишь мне)

Все, я больше умственно отсталым не отвечаю.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831694
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90, наконец то тебе дошло и больше флудить без аргументов не будем.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831731
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner, если смотреть на всю архитектуру запросов и что изменилось:

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


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

2. В версии http 1.1 в рамках одного соединения может быть несколько запросов, каждый из которых будет в своем отдельном потоке.
Скорость увеличивается для клиентов, которые посылают запросы пачками, но, возникает проблема, что web container быстро расходует pool потоков.

Для чего вообще пул потоков существует? Само собой для latency - создание потока - дорогая операция(и по скорости, и по памяти). Потому web server`ы на старте создают пул потоков и используют потоки для request`ов из него.

Идем дальше, если у нас появилось большое кол-во потоков, то нам надо как-то сделать так, чтобы эти потоки были "короткими", т.е. чтобы они быстро возвращались в pool.
Вот тут вступает асинхронность версии 3.0. Мы передаем запрос в новый поток, а в текущем потоке возвращаем "ссылку" на поток и текущий поток возвращаем в pool.

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

Тут на сцену выходит блоикровка ресурсов. Не смотря на то, что мы пытаемся вернуть ответ асинхронно, все равно некоторые операции могут "держать" поток запроса. Например, чо нить мы заливаем на сервак долгое. Что делать? Да тоже самое, но немного в другом ключе:

1. Сказать, хочу асинхронной работы
2. Дождаться когда контекст вернет новый поток, в котором будут средства для неблокирующего чтения ваших данных
3. В этом потоке уже заливать данные
4. Поток запроса отпустить.


Как-то так я себе все это представляю.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831737
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
questioner

https://spring.io/blog/2016/07/20/notes-on-reactive-programming-part-iii-a-simple-http-server-application Remember the same application code runs on Tomcat, Jetty or Netty. Currently, the Tomcat and Jetty support is provided on top of Servlet 3.1 asynchronous processing, so it is limited to one request per thread. When the same code runs on the Netty server platform that constraint is lifted, and the server can dispatch requests sympathetically to the web client. As long as the client doesn’t block, everyone is happy. Performance metrics for the netty server and client probably show similar characteristics, but the Netty server is not restricted to processing a single request per thread, so it doesn’t use a large thread pool and we might expect to see some differences in resource utilization. We will come back to that later in another article in this series.

Я вот не могу понять смысла выделенной фразы. Что он имеет ввиду? в случае асинхронных сервлетов мы ведь уже принимаем запрос одним потоком, а возвращаем другим(скорее всего)
Следующей статьи я не нашёл) Видимо он её так и не написал

Вот кстати с автором статьи связался и он исправил на

https://spring.io/blog/2016/07/20/notes-on-reactive-programming-part-iii-a-simple-http-server-application Remember the same application code runs on Tomcat, Jetty or Netty. Currently, the Tomcat and Jetty support is provided on top of Servlet 3.1 asynchronous processing, so it is no longer limited to one request per thread. It is build on top of a Reactive bridge that adapts the Servlet 3.1 concepts to the reactive paradigm. In the case of Reactor Netty, the backpressure and reactive support is built-in. Depending on your choice of HTTP client library, server and client might share the same HTTP resources and optimize things even more. We will come back to that later in another article in this series.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831738
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner, теперь к webflux. Скажем так, в основе его лежит СОВЕРШЕНО другая парадигма, тем не менее, которая решает похожие задчи. В основе лежат reactive streams - асинхроннные потоки которые можно СЛУШАТЬ. По сути - это event driven архитектура с продюсерами и подписчиками. Я думаю, не надо тут глубок расписывать плюсы от подобной архитектуры - итак понятно.

В java8 никаких реактив стримов не было, была собственная имплементация от нетфликса - rxjava(вроде, если не ошибаюсь). Ее то и использовали поцоны из спринга. В java9 уже была rxjava2 вроде как, короче, реактив стримы стали ядром системы.

И насчет потоков и разницы между tomcat и netty.
Tomcat - стандартный веб контейнер, который имплементирует текущую реализацию http 1.1 с переиспользованием одного соединения для нескольких запросов, КАЖДЫЙ ИЗ КОТОРЫХ порождает один поток.

Тогда как Netty - ну это в первую очреедь некий event driven инструмент, из которого МОЖНО сделать web сервер, у которого правда будет совершенно другая начинка, нежели чем у Tomcat`а. Но тут я честно сказать netty не использовал особо, потому ...не сварщик.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831739
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жаль тут парень какой-то black чего-то там не пишет больше. И форум в руках ...короче не у кого даже спросить, чтобы поправили.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831744
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинСОВЕРШЕНО другая парадигма+1
Реактивная.
Причем эта парадигма не подменяет и не улучшает rest.
Она просто идет рядом и не факт что не сгинет через пару лет.
Можно пробовать, но переписывать классику на "это" не стоит.
Мои сожаления автору топика.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831747
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинМОЖНО сделать web сервер
Угу.
Типа
HttpServer
.create("localhost", 8080)
.newHandler(new ReactorHttpHandlerAdapter(httpHandler))
.block();
...
MS счас этим балуется со своим kestrel.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831752
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинТут кроется проблема - скорость! http 1. 0 медленный из-за того, что на каждый запрос приходится открывать и закрывать соединениеНе совсем так, насколько я помню, разницы между включенным и выключенным keepalive нет, если не используется SSL/TLS, вот рукопожатие TLS действительно дорогое и без keepalive никуда, в тоже время всякие forward-proxy и терминаторы TLS к бэкенду как раз без keepalive ходят (не уверен как сейчас, но когда я этими вещами занимался года до 2008 все так и было)

ОзверинДля чего вообще пул потоков существует? Само собой для latency - создание потока - дорогая операция(и по скорости, и по памяти). Потому web server`ы на старте создают пул потоков и используют потоки для request`ов из него.дорого - понятие относительное, относительно создания объекта или сложения 1+1, да, дорого, а в сравнении со "сходить в базу", уже и не дорого Основная проблема тут больше в том, что "глупый" планировщик ОС ничего о приложении не знает и наивно выдает кванты времени потокам, которым выполнение в данный момент не нужно ну и про между прочим контексты переключает и пр, вообщем performance penalty здесь очевидный, и пулы потоков используют больше не потому что дорого создавать, а потому что это довольно простой способ ограничить число экзекьюшн юнитов сверху.

ОзверинВ чем плюс? В том, что мы возвращаем ссылку на поток из другого пула, либо вообще на новый поток, таким образом не расходуя пул потоков веб сервера.Ну вы рассказали что происходит, а в чем же плюс рассказать забыли :)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831758
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Озверин]
В чем плюс? В том, что мы возвращаем ссылку на поток из другого пула, либо вообще на новый поток, таким образом не расходуя пул потоков веб сервера.


тут мы уже обсудили, что это весьма иллюзорно и иногда заменяемо конфигом сервера.

ОзверинТут на сцену выходит блоикровка ресурсов. Не смотря на то, что мы пытаемся вернуть ответ асинхронно, все равно некоторые операции могут "держать" поток запроса. Например, чо нить мы заливаем на сервак долгое. Что делать? Да тоже самое, но немного в другом ключе:

1. Сказать, хочу асинхронной работы
2. Дождаться когда контекст вернет новый поток, в котором будут средства для неблокирующего чтения ваших данных
3. В этом потоке уже заливать данные
4. Поток запроса отпустить.

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



Озверин

В java8 никаких реактив стримов не было, была собственная имплементация от нетфликса - rxjava(вроде, если не ошибаюсь). Ее то и использовали поцоны из спринга. В java9 уже была rxjava2 вроде как, короче, реактив стримы стали ядром системы.



WebFlux построен на основе своего же спрингового Proactor(Не Rxjava то бишь)


авторЖаль тут парень какой-то black чего-то там не пишет больше. И форум в руках ...короче не у кого даже спросить, чтобы поправили.


Ага вот он "Blazkowicz" Сгинул отсюда(
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831761
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей ПанфиловНу вы рассказали что происходит, а в чем же плюс рассказать забыли :)
ешё раз повторю к Вам вопрос:
Так просветите тогда уж раз уж Вы не согласны)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831775
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerешё раз повторю к Вам вопрос:
Так просветите тогда уж раз уж Вы не согласны)Ваш вопрос на самом деле звучит так: я решил что с левой ноги вставать лучше, обоснуйте почему я неправ. Операционная система предоставляет две возможности, вокруг которых крутится вся оптимизация: Zero Copy (DMA и sendfile) - не копируем данные в user space, и Async I/O - не ждем ответа, а узнаем есть что новое для нас или нет. Если у вас приложение не умеет ни то, ни другое, то толку от асинхронной обработки http нет никакого, потому что совершенно нет никакой разницы в каком потоке выполнятьсяждать.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831795
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, так плюсов в использовании servlet 3.1 нет?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831798
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове.


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

не понял, если честно ;)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831802
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинАндрей Панфилов, так плюсов в использовании servlet 3.1 нет?

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

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

Из гуд ньюз то потоки управляемые контейнером, контейнер имеет доступ и может управлять их жизненным циклом. Ежели томкату скажут "все" то он сможем им передать этим потокам что "все". С самодельными потоками часто никто не заморачивается их привзякой к томкату.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831808
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин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.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831810
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфиловquestionerешё раз повторю к Вам вопрос:
Так просветите тогда уж раз уж Вы не согласны)Ваш вопрос на самом деле звучит так: я решил что с левой ноги вставать лучше, обоснуйте почему я неправ. Операционная система предоставляет две возможности, вокруг которых крутится вся оптимизация: Zero Copy (DMA и sendfile) - не копируем данные в user space, и Async I/O - не ждем ответа, а узнаем есть что новое для нас или нет. Если у вас приложение не умеет ни то, ни другое, то толку от асинхронной обработки http нет никакого, потому что совершенно нет никакой разницы в каком потоке выполнятьсяждать.


Продолжайте мысль....
Вопрос вполне конкретный. Приведите пример при каком юзкейсе servlet 3.0 даст преимущество перед servlet 2.5
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831812
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинплюсов в использовании servlet 3.1 нет?народ скорее кафкой масштабировать будет)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831814
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин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 позволяет задействовать (и достаточно просто) оптимизации ввода-вывода не только на уровне контейнера, но и в прикладном коде. Будет с этого какой-то выигрыш - вопрос, опять-таки, отдельный.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831819
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovБудет с этого какой-то выигрыш - вопрос, опять-таки, отдельный.
если ты заметил, то ТС докопался до разницы между левой ногой и правой. Или между 3.1 и WebFlux
))
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831828
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovСемантика асинхронного контекста сервлетов 3.0 позволяет контейнеру оптимизировать управление ресурсами. Реализованы эти оптимизации в конкретном контейнере и возможно ли их задействовать в конкретном сценарии - вопрос отдельный.

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

Хотелось бы побольше конкретики
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831829
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверинquestioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове.


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

не понял, если честно ;)
вот ещё по этому поводу что пишут: https://stackoverflow.com/a/40231294/2674303
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39831846
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинтак плюсов в использовании servlet 3.1 нет?Если видосики не стримить, то в текущей реализации/инфраструктуре как-то никаких преимуществ не видно - оно же определяет только общение с клиентом, а не весь стэк (медленный клиент - это страшилка из начала 2000-х, когда P4 с гигабайтом памяти считалось приличным железом, сейчас же мощности совсем другие, да и жава голой жопой в интернеты обычно не торчит: либо intranet, либо через балансировщик/reverse-proxy)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832131
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832154
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Ссылка требует регистрации.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832155
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, у меня не требует, язх.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832159
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Открыл в режиме инкогнито - работает. Наверно куки влияют.
Более 3х раз сайт читать не дает))))
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832164
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей ПанфиловОзверинтак плюсов в использовании servlet 3.1 нет?Если видосики не стримить, то в текущей реализации/инфраструктуре как-то никаких преимуществ не видно - оно же определяет только общение с клиентом, а не весь стэк (медленный клиент - это страшилка из начала 2000-х, когда P4 с гигабайтом памяти считалось приличным железом, сейчас же мощности совсем другие, да и жава голой жопой в интернеты обычно не торчит: либо intranet, либо через балансировщик/reverse-proxy)

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

Думается, что не идиоты это придумали и у них была мотивация делать то, что они сделали
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832167
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинМожно почитать некоторые тесты:
https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 опять микросервисы)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832183
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинМожно почитать некоторые тесты:
https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 Написанное можно по разному читать. Для начала, ну вот есть там ограниченные ресурсы и возможность использовать async i/o, ну и используют. С другой стороны получается так: был прекрасный монолит с общением через память, заменили микросервисами с тормозным http, с апломбом что якобы монолит не масштабируется, как итог сторонний сервис умеет 4 тыщи запросов в секунду, а тормознутые микросервисы и до 2 тыщ не дотянули, зато масштабируется.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832201
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
Вопрос: сколько можно в сокет написать без блокировки?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832207
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинМожно почитать некоторые тесты:
https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 Написанное можно по разному читать. Для начала, ну вот есть там ограниченные ресурсы и возможность использовать async i/o, ну и используют. С другой стороны получается так: был прекрасный монолит с общением через память, заменили микросервисами с тормозным http, с апломбом что якобы монолит не масштабируется, как итог сторонний сервис умеет 4 тыщи запросов в секунду, а тормознутые микросервисы и до 2 тыщ не дотянули, зато масштабируется.

читать можно как угодно, конечно. Но я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял. Есть среды, где необходимо масштбаривание и где монолит не тянет. Если такие среды и задачи есть - к чему подобные комментарии?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832218
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинНо я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял.Выглядит это все несколько притянутым за уши: у чувака без какой-либо пре/пост-обработки throughput в два раза упал в сравнении с оригинальным сервисом, скорее всего если добавить еще авторизацию, то наскребется на порядок. Получается что сначала мы сами придумываем себе проблемы, а потом героически их решаем, при всем при этом за "банкет" платит заказчик: вместо того чтобы разогнать дебилов и взять нормальный хостинг, приходится ютиться на t2.micro и оплачивать время идиотов.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832222
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинНо я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял.Выглядит это все несколько притянутым за уши: у чувака без какой-либо пре/пост-обработки throughput в два раза упал в сравнении с оригинальным сервисом, скорее всего если добавить еще авторизацию, то наскребется на порядок. Получается что сначала мы сами придумываем себе проблемы, а потом героически их решаем, при всем при этом за "банкет" платит заказчик: вместо того чтобы разогнать дебилов и взять нормальный хостинг, приходится ютиться на t2.micro и оплачивать время идиотов.

ну других более гениальных тестов я не нашел, а от вас слышу только про идиотов, воду, бесполезность микросеврисов и уши ;)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832226
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Статья интересная, но я согласен с Андрей Панфиловым что аргумент с микросервисами притянут за уши.
Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку.
Без юз кейса общения микросервисов и побочных от этого эффектов.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832229
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озвериндругих более гениальных тестовза артистизм 5, за технику 3.
Вот такая оценка статьи к данному сабжу.
Можно пометить OFF/2.
А то что нет статей, это ожидаемо.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832234
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpОзверин,
Статья интересная, но я согласен с Андрей Панфиловым что аргумент с микросервисами притянут за уши.
Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку.
Без юз кейса общения микросервисов и побочных от этого эффектов.

почему без? А если раскрывается все именно в микросервисах?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832236
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинраскрывается все именно в микросервисах?ты первый про это сказал.
Это меняет дело.
То есть сабж рассматриваем только как борьба с недостатками микросервисов.
ОК.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832249
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей ПанфиловquestionerКак-то звучит странно. Особо никто про стриминг не пишет в описании servlet 3.1

Думается, что не идиоты это придумали и у них была мотивация делать то, что они сделалиНе представляю как можно так тупить-то.... вот зачем вы приводите ссылки, цитаты и прочую ересь, если сами их не читаете?


Честно читаю то, что привожу. Суть в том, что целостного представления у меня нет, поэтому и пишу тут. Если бы я на 100 процентов был уверен я бы и не спрашивал

Андрей Панфилов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.
Вопрос: сколько можно в сокет написать без блокировки?
Вот вообще не представляю даже. И вообще не понимаю этот механизм. Для меня NIO это некая выведенная унифицированная абстракция над улучшениями ОС, которая на Юниксе дать один прирост, а на Винде ничего не дать.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832254
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpОзверин,
Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку.


Кажется кому-то надо опохмелиться. Приведенная статья именно о теме топика. Микро, Макро сервисы....это вообще по барабану. Может код вообще в гугл ходит, зачем об этом думать даже.

P.S. я конечно понимаю, что это русский форум, но всё таки
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832256
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинот вас слышу только про идиотов, воду, бесполезность микросеврисов и уши ;)Ну а как иначе? Вот пишут:авторOption 1: Increase the thread pool size
Yes, this is a good workaround, BUT only workaround!!! Because we cannot set this value to several thousand, because it’s is Docker with very limited memory. And each thread requires stack memory.У кота, по моим наблюдениям, http-поток отжирает где-то в районе аж 100Kb, т.е. на тысячу потоков будет аж целых 100Mb, а пишут что это много (на машине времени чтоли на 30 лет назад сгоняли?), я бы понял еще если бы написали что слишком много экзекьюшн юнитов и все начинает тупить (ну и там график бы еще с насыщением привели), а здесь какая-то левая отмазка про память. Если продолжать верить в то, что они таки в количестве памяти ограничены, то в реальности получается так: разница межу t2.micro и t2.medium в цене 15$ в месяц, при этом 1Gb против 4Gb, "исследование" по ссылке заняло наверное дня 4 и стоило заказчику косаря 2, вопрос: на сколько обули заказчика?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832263
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, я не понял: вы не отличаете stack memory от heap или не понимаеет, что у микросервисов есть своя ниша?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832266
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerАндрей Панфиловпропущено...
Вопрос: сколько можно в сокет написать без блокировки?
Вот вообще не представляю даже. И вообще не понимаю этот механизм. Для меня NIO это некая выведенная унифицированная абстракция над улучшениями ОС, которая на Юниксе дать один прирост, а на Винде ничего не дать.Ну а чего не нагулили-то?
man 2 send :
Код: plaintext
1.
2.
3.
4.
5.
       When the message does not fit into the send buffer of the socket,
       send() normally blocks, unless the socket has been placed in
       nonblocking I/O mode.  In nonblocking mode it would fail with the
       error EAGAIN or EWOULDBLOCK in this case.  The select(2) call may be
       used to determine when it is possible to send more data.

размер send buffer по-умолчанию в linux 122Kb, причем его еще можно увеличивать, теперь второй вопрос: с повальным увлечением REST в вебе, 122Kb - это большой размер для ответа или маленький?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832267
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerКажется кому-то надо опохмелитьсяпродолжаете плеваться и сморкаться?
questionerПриведенная статья именно о теме топика. Микро, Макро сервисы....это вообще по барабану.
Вам по барабану или профисообществу?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832272
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Ты ТС, и за это время просто обязан был сделать собственные тесты.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832288
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфиловquestionerпропущено...

Вот вообще не представляю даже. И вообще не понимаю этот механизм. Для меня NIO это некая выведенная унифицированная абстракция над улучшениями ОС, которая на Юниксе дать один прирост, а на Винде ничего не дать.Ну а чего не нагулили-то?
man 2 send :
Код: plaintext
1.
2.
3.
4.
5.
       When the message does not fit into the send buffer of the socket,
       send() normally blocks, unless the socket has been placed in
       nonblocking I/O mode.  In nonblocking mode it would fail with the
       error EAGAIN or EWOULDBLOCK in this case.  The select(2) call may be
       used to determine when it is possible to send more data.

размер send buffer по-умолчанию в linux 122Kb, причем его еще можно увеличивать, теперь второй вопрос: с повальным увлечением REST в вебе, 122Kb - это большой размер для ответа или маленький?

Процентное соотношение мне не известно, но с уверенностью можно сказать, что не редки случаи когда ответ превышает 122 кб
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832291
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОзверинPetroNotC SharpОзверин,
Статья интересная, но я согласен с Андрей Панфиловым что аргумент с микросервисами притянут за уши.
Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку.
Без юз кейса общения микросервисов и побочных от этого эффектов.

почему без? А если раскрывается все именно в микросервисах?

На этом месте мог быть сервис с котировками на бирже, который никогда не был и быть не мог частью монолита
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832295
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озвериня не понял: вы не отличаете stack memory от heap?Насколько я помню это у вас в прошлый раз возникали проблемы с размером стэка, вот из интернетов: 10 тысяч потоков на 2Gb кучи , чес про память из статьи, что вы привели, несостоятелен.

Озверинили не понимаеет, что у микросервисов есть своя нишаПока понимание такое, что ниша микросервисов - обуть лохов.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832304
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Процентное соотношение мне не известно, но с уверенностью можно сказать, что не редки случаи когда ответ превышает 122 кббольше 122Kb - это видосики чтоли? на странице A4 где-то 3000 печатных знаков, ну с пробелами пусть будет 4000, ладно, форум русскоязычный, пусть A4 - будет 8Kb, т.е. чтобы в попасть в блокировку на send() нужно отправить >15 страниц текста (и при этом ничего в ОС не крутить!)... вы точно адекватно оцениваете объемы передаваемой информации? или в JSON html пихаете?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832327
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловПока понимание такое, что ниша микросервисов - обуть лохов.кто сказал что профи обязан дипломатично выражаться)))
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832343
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловчес про память из статьи, что вы привели, несостоятелен.Дальше, смотрим на картинку где сравнивается throughput разных подходов:
"классика" - 831

async - 1313

WebFlux - 1469

замечаем, что цифры от WebFlux не особо-то и хорошо смотрятся на фоне servlet api 3.0 , теперь смотрим код:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    @GetMapping(value = "/sync")
    public String getUserSync(@RequestParam long delay) {
        return sendRequestWithJavaHttpClient(delay).thenApply(x -> "sync: " + x).join();
    }

    private CompletableFuture<String> sendRequestWithApacheHttpClient(long delay) {
        CompletableFuture<org.apache.http.HttpResponse> cf = new CompletableFuture<>();
        FutureCallback<org.apache.http.HttpResponse> callback = new HttpResponseCallback(cf);
        HttpUriRequest request = new HttpGet(userServiceHost+"/user/?delay="+delay);
        apacheClient.execute(request, callback);
        return cf.thenApply(response -> {
            try {
                return EntityUtils.toString(response.getEntity());
            } catch (ParseException | IOException e) {
                return e.toString();
            }
        }).exceptionally(Throwable::toString);
    }



я правильно понял, что автор статьи в случае "синхронного" выполнения утилизирует 2 потока одновременно: один с CompletableFuture, второй с join, а потом говорит потоков как-то много и памяти не хватает?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832346
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзвериня не понял: вы не отличаете stack memory от heap?Насколько я помню это у вас в прошлый раз возникали проблемы с размером стэка, вот из интернетов: 10 тысяч потоков на 2Gb кучи , чес про память из статьи, что вы привели, несостоятелен.

Озверинили не понимаеет, что у микросервисов есть своя нишаПока понимание такое, что ниша микросервисов - обуть лохов.

netflix горько плачет
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832350
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфиловquestionerпропущено...

Вот вообще не представляю даже. И вообще не понимаю этот механизм. Для меня NIO это некая выведенная унифицированная абстракция над улучшениями ОС, которая на Юниксе дать один прирост, а на Винде ничего не дать.Ну а чего не нагулили-то?
man 2 send :
Код: plaintext
1.
2.
3.
4.
5.
       When the message does not fit into the send buffer of the socket,
       send() normally blocks, unless the socket has been placed in
       nonblocking I/O mode.  In nonblocking mode it would fail with the
       error EAGAIN or EWOULDBLOCK in this case.  The select(2) call may be
       used to determine when it is possible to send more data.

размер send buffer по-умолчанию в linux 122Kb, причем его еще можно увеличивать, теперь второй вопрос: с повальным увлечением REST в вебе, 122Kb - это большой размер для ответа или маленький?

Тут я что-то новое узнал))

Правильно я понимаю, что вся история с NIO(1 или 2 кстати?) в том, что мы можем записать/прочитать некоторое количество данных(122 кб для linux) не блокируясь, а если больше, то блокируемся?

То бишь хотим мы зааплоадить видос на пару гигабайтов через NIO и это будет выглядеть примерно так:

У нас есть колбеки, которые вызывает ОС, говорящие о том, что "ОС готова записать в сокет 122кб". Причём на это не тратится даже CPU как я понял. Ок, мы записали эти 122 кб и пока следующий раз колбек не вызывется, то приложение ресурсы не тратит на запись и может тратить ресурсы.

похоже на правду?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832351
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинnetflix горько плачету них же бизнес видосики стримить, не?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832355
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинnetflix горько плачету них же бизнес видосики стримить, не?

в том числе. Только микросервисы там выполняют совершенно разные ф-ии..идиоты, думаю.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832360
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинТолько микросервисы там выполняют совершенно разные ф-ии..идиоты, думаю.ну а как еще? сидит там отдел разработки и думает: как бы вытянуть из бизнеса еще денег! о! нужно сказать что все что мы до этого делали чуть собачья и нужно все переписать заново. Мы вон в 2005 киношки стримили с посредственного сервера и спокойно забивали 4 гигабита, и никаких микросервисов не было, только perl и nginx.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832364
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинТолько микросервисы там выполняют совершенно разные ф-ии..идиоты, думаю.ну а как еще? сидит там отдел разработки и думает: как бы вытянуть из бизнеса еще денег! о! нужно сказать что все что мы до этого делали чуть собачья и нужно все переписать заново. Мы вон в 2005 киношки стримили с посредственного сервера и спокойно забивали 4 гигабита, и никаких микросервисов не было, только perl и nginx.

мне нравится. Согласен. ТыТруба вон же как-то жила раньше - и все ок было.

p.s. Представил 2005й в текущих разрешениях, про 4k говорить даже не буду - вдруг скажут, что это от сатаны!!!
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832367
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любыю тему в микросервисы переведут)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832370
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpЛюбыю тему в микросервисы переведут)

в любую тему ворвутся люди, которые скажут - что микросервисы никому не нужны. Это странно, потому что вопрос ведь касается совершенно других тем, например - производительности околоструктурных решений, которые идеально раскрываются в микросервисах.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832380
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОзверинPetroNotC SharpЛюбыю тему в микросервисы переведут)

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


Этим же персонажам нечего по теме сказать, зато пофлудить ой как хочется. Вот только вопрос на кой им это надо.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832381
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerпохоже на правду?Нет. за tcp/ip полностью отвечает ядро, если со стороны используются вызовы send/recv ("классика"), то концепция такая:
- send блокируется только тогда, когда приложение хочет отправить данных больше, чем можно записать в send buffer (ядро читает оттуда и отправляет в сеть, т.е. в определенные моменты там могут находиться еще неотправленные данные, или данные, на которые не получено подтверждение)
- recv блокируется только тогда приложение хочет прочесть данных больше чем сейчас есть в receive buffer (ядро получает данные из сети и складывает их туда), кроме этого через recv еще приходят ошибки таймаута от send (т.е. send для приложения асинхронный, однако о том что данные не доставлены нужно приложению сообщать, вот ядро сообщает в recv)

и в случае "классики" основная беда в recv, потому что он блокирующий в большинстве случаев и в больших send, поэтому чтобы одновременно обрабатывать много соединений нужно много потоков (условно поток на соединение). В случае же асинхронного I/O много потоков не нужно, потому что там сценарий работы отличается: мы открываем сокетов столько сколько захотим, а у ядра ОС спрашиваем расклад по нашим сокетам, т.е. ответ будет:
- сюда можно писать
- отсюда можно читать
- здесь ошибка

по факту в примере из https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 написана какая-то дичь: там на 800 клиентов получается 60 потоков в пике, что для прокси несколько странно, например если сравнивать с "референсной реализацией" прокси-сервера, то там пишут так:
nginxNGINX can run multiple worker processes, each capable of processing a large number of simultaneous connections. You can control the number of worker processes and how they handle connections with the following directives:

- worker_processes – The number of NGINX worker processes (the default is 1). In most cases, running one worker process per CPU core works well, and we recommend setting this directive to auto to achieve that. There are times when you may want to increase this number, such as when the worker processes have to do a lot of disk I/O.
- worker_connections – The maximum number of connections that each worker process can handle simultaneously. The default is 512, but most systems have enough resources to support a larger number. The appropriate setting depends on the size of the server and the nature of the traffic, and can be discovered through testing.

т.е. с конфигурацией по-умолчанию, достаточной чтобы запускаться на каком-то хламе, Сысоев преполагает что один экзекьюшн юнит способен проксировать 512 соединений, если сравнивать с "результатами" полученным для WebFlux видно, что в консерватории что-то не так.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832389
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинp.s. Представил 2005й в текущих разрешениях, про 4k говорить даже не буду - вдруг скажут, что это от сатаны!!!нормально там все было с разрешением, а блюрей вроде как в 2006 появился.

PS. ваш netflix бомжи какие-то, вот:

https://muchneeded.com/netflix-statistics/ Netflix users spend 1 billion hours watching movies weeklyт.е. в год 53 миллиарда часов, если думать что видосик полтора часа занимает, то всего-лишь 35 миллиардов видосиков в год (при этом его еще куча провайдеров форсят включая в свои тарифные планы), а вот реальный король стриминга:

https://www.pornhub.com/press Pornhub is one of the most prolific adult websites, averaging over 100 billion video views a year. That's about 12.5 porn videos per person on earth.
- Over 100 million daily visits to Pornhub, and over 36 billion visits per year.
- Over 125 million daily visits to the Pornhub Network of sites including YouPorn and Redtube.
- 20 million registered Pornhub users.
- Average streaming bandwidth of 120 Gigabytes per second.

какая инфраструктура у порнхаба? тоже микросервисы?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832399
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, даже если не брать в расчет тот факт, что ты несешь какой бред , измеря трафик в кол-ве видосиков, почему ты не взял среднее время видосика на порнхабе, чтобы быть до конца логичным?;)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832401
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerОзверинпропущено...


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


Этим же персонажам нечего по теме сказать, зато пофлудить ой как хочется. Вот только вопрос на кой им это надо.то есть ты пишешь прокси сервис, который обращается к внешнему чужому сервису и который жутко тормозит.
Так?
Или ты ничего не пишешь а только бла бла?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832402
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Я сожалею что вы не нашли других примеров и юзкейсов.
Туда Flux'y и дорога....для поддержки штанов микросервисов.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832403
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озвериндаже если не брать в расчет тот факт, что ты несешь какой бред , измеря трафик в кол-ве видосиков, почему ты не взял среднее время видосика на порнхабе, чтобы быть до конца логичным?;)Пока с вашей стороны был только один унылый пример превосходства WebFlux, да и тот кривой. Смысла сравнивать продолжительность видосика нет: запрос от клиента обработали, дальше ядро через DMA/sendfile гонит его в сеть или вы полагаете что видосики в базе в виде блобов лежат? Вот примеры:
- https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/
- https://tomcat.apache.org/tomcat-9.0-doc/aio.html
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832404
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзвериндаже если не брать в расчет тот факт, что ты несешь какой бред , измеря трафик в кол-ве видосиков, почему ты не взял среднее время видосика на порнхабе, чтобы быть до конца логичным?;)Пока с вашей стороны был только один унылый пример превосходства WebFlux, да и тот кривой. Смысла сравнивать продолжительность видосика нет: запрос от клиента обработали, дальше ядро через DMA/sendfile гонит его в сеть или вы полагаете что видосики в базе в виде блобов лежат? Вот примеры:
- https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/
- https://tomcat.apache.org/tomcat-9.0-doc/aio.html

с моей стороны вообще не было заявок на победу, я скзаал - что тут есть тесты. А ты несешь дикий бред про то, что вебсиры никому не упали и про пропускную способность в видосиках )))
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832405
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*вебсиры - микросервисы.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832407
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpОзверин,
Я сожалею что вы не нашли других примеров и юзкейсов.
Туда Flux'y и дорога....для поддержки штанов микросервисов.

мне, если честно, глубоко фиолетово, кто тут и о чем сожалеет.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832409
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озвериня скзаал - что тут есть тестыкомментами не сопроводил)))))
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832410
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Будем ждать других тестов). Занавес.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832411
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpОзвериня скзаал - что тут есть тестыкомментами не сопроводил)))))

ну когда 3 страницы разговоров без цифр - надо ж конструктива подкинуть ... а то тут видсиками трафик измеряют...я хз - совсем лето влияет.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832412
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpОзверин,
Будем ждать других тестов). Занавес.

вперед.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832413
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОзверинPetroNotC Sharpпропущено...
комментами не сопроводил)))))

ну когда 3 страницы разговоров без цифр - надо ж конструктива подкинуть ... а то тут видсиками трафик измеряют...я хз - совсем лето влияет.

Некоторым конструктив вообще не нужен. Достаточно просто писать что-то бессвязное.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832415
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Это тебе ниже
Озверинну когда 3 страницы разговоров без цифр
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832421
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинс моей стороны вообще не было заявок на победу, я скзаал - что тут есть тесты. А ты несешь дикий бред про то, что вебсиры никому не упали и про пропускную способность в видосиках )))Крутость микросевисов в нетфликсах начали измерять вы, на что получили разумное возражение, что объемы нетфликса хоть и внушительные, но не прямо TOP1. Какой-то странный у вас стиль общения: подпустить дешевого понта, что микросервисы - круто, сказать что оппонент пишет чушь и быстро слиться. Прямо пыонеры от разработки: сначала делаем еле-шевелящегося крокодила, создаем кучу проблем, а потом с гордостью их решаем (вот зачем в одном сервисе проксировать другой, а не сразу клиенту эндпойнт выставлять? давайте угадаю: авторизация-то у нас офигеть какая дорогая, и нужно ее в одном месте делать, а в эндойнты ходить уже с чем-то более лайтовым - не кажется что на пустом месте проблема возникает?). Какой следующий шаг будет в строительстве микросервисов? DMA-over-HTTP?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832427
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Пусть ТС отдувается. Зачем это тебе?)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832443
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфилови в случае "классики" основная беда в recv, потому что он блокирующий в большинстве случаев и в больших send, поэтому чтобы одновременно обрабатывать много соединений нужно много потоков (условно поток на соединение). В случае же асинхронного I/O много потоков не нужно, потому что там сценарий работы отличается: мы открываем сокетов столько сколько захотим, а у ядра ОС спрашиваем расклад по нашим сокетам, т.е. ответ будет:
- сюда можно писать
- отсюда можно читать
- здесь ошибка


А это мы должны сами опрашивать или всё это скрыто от нас ?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832462
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerА это мы должны сами опрашивать или всё это скрыто от нас ?В C руками, пример: https://gist.github.com/josephg/6c078a241b0e9e538ac04ef28be6e787

в жаве по факту то же самое написано в sun.nio.ch.KQueuePort.EventHandlerTask#poll а разработчику отдали java.nio.channels.AsynchronousByteChannel
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832465
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerА это мы должны сами опрашивать или всё это скрыто от нас ?От реализации зависит.
В "классическом" варианте делается select на наборе сокетов и "по тайм-ауту" или "по результату" возвращается или "тайм-аут" или счётчики сокетов, доступных для операций ввода, вывода или "с ошибками". Какие конкретно - надо "бегать" по набору и смотреть.
Про устройство более современных и более продвинутых вариантов я не особо в курсе. Вроде, на обратные вызовы (calback) переходят и вообще - всячески минимизируют опросы.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832591
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот кстати есть пример:
https://github.com/violetagg/s1p2017-demo
и его видео представление:
[youtube=
YouTube Video
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832676
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Умеешь ты экзотику находить с одним коммитом в год.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832730
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
Умеешь ты экзотику находить с одним коммитом в год.

Зачем умственно отсталому смотреть видео, можно просто пофлудить
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832751
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Прекращай задавать вопросы по архитектуре, которые не относятся к твоей работе или без кода.
Тут ветка программистов а не теоретиков. Можешь плеваться и ругаться сколько влезет.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832752
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

правильно, тебе тут не место. Шёл бы ты отсюда, пет****
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832758
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
21918342
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832760
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Просто угомонись, засоряешь тему своими высерами. твоё мнение тут никому неинтересно
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832763
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Твои проблемы. Ты ТС? Значит будешь арбайтен и тесты строить.
А не чужие видосики постить.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832765
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Аргументов нет? Закрывай тему.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832769
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

читай пока осознание не придёт

Хотя до тебя не дойдёт, ты неизлечим
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832774
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Скучный ты.
Ждем другую твою тему без кода.
Удачи!
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832787
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestioner,
Скучный ты.
Ждем другую твою тему без кода.
Удачи!

Пойми одну простую вещь - если тебе не нравится моя тема ты можешь просто в неё не писать. Те, кто может ответить - ответят. Потом те, кто будут гуглить смогут почерпнуть для себя что-то. А ты просто в каждой бочке затычка.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832791
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerPetroNotC Sharpquestioner,
Скучный ты.
Ждем другую твою тему без кода.
Удачи!

Пойми одну простую вещь - если тебе не нравится моя тема ты можешь просто в неё не писать. Те, кто может ответить - ответят. Потом те, кто будут гуглить смогут почерпнуть для себя что-то. А ты просто в каждой бочке затычка.тебе 16 лет?
Нужно объяснять, что вопрос надо задавать возле компа и с кодом?
Абстрактно про технологии ты говорить не умеешь.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832793
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Вот здесь почему кода нет?
И так ты пол года вопросы задаешь.
Я последние 2 темы не вытерпел)
Dependency inversion
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832828
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Если не можешь терпеть - сходи в туалет, не надо тут это делать. Какое тебе вообще дело то? Ты понимаешь, что ты просто засираешь топик зачем-то? А вот нашлись люди, которые смогли внести конструктив. Разве это не доказательство того, что ты делаешь что-то не так?

Если хочешь больше кода - пиши что-то конструктивное с кодом, я только за, но от тебя конструктива ноль, только нытьё какое-то и поддакиванье.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832844
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerпиши что-то конструктивное с кодомзайди в мой профиль. Так и делаю когда вопрос задаю.
И веду себя очень тихо))).
Эх, всё тебе объяснять надо).
Код давай! Развел сопли.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832872
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestionerпиши что-то конструктивное с кодомзайди в мой профиль. Так и делаю когда вопрос задаю.
И веду себя очень тихо))).
Эх, всё тебе объяснять надо).
Код давай! Развел сопли.

Разница в том, что мне твои темы не интересны и заходить я туда не буду, а ты докопался как пьяный до радио со своими советами на которые мне абсолютно плевать. Избавь меня от своего внимания
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39832886
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerИзбавь меня от своего внимания100 баксов. Либо кодом меня, кодом))
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39833052
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerИзбавь меня от своего внимания100 баксов. Либо кодом меня, кодом))

Ты столько не стоишь
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39833146
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинс моей стороны вообще не было заявок на победу, я скзаал - что тут есть тесты. А ты несешь дикий бред про то, что вебсиры никому не упали и про пропускную способность в видосиках )))Крутость микросевисов в нетфликсах начали измерять вы, на что получили разумное возражение, что объемы нетфликса хоть и внушительные, но не прямо TOP1. Какой-то странный у вас стиль общения: подпустить дешевого понта, что микросервисы - круто, сказать что оппонент пишет чушь и быстро слиться. Прямо пыонеры от разработки: сначала делаем еле-шевелящегося крокодила, создаем кучу проблем, а потом с гордостью их решаем (вот зачем в одном сервисе проксировать другой, а не сразу клиенту эндпойнт выставлять? давайте угадаю: авторизация-то у нас офигеть какая дорогая, и нужно ее в одном месте делать, а в эндойнты ходить уже с чем-то более лайтовым - не кажется что на пустом месте проблема возникает?). Какой следующий шаг будет в строительстве микросервисов? DMA-over-HTTP?


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

Нетфликс предоставляет услугу более 100млн пользователей - это стриминговое телевидение ультравысокого качества в том числе. По трафику с такими требованиями(стриминг высокого качестве как замена телевидения) с ним может соперничать разве что тытруба.

Замечу, что это ТЫ Нетфликс называешь идиотами и лохами, а манера общения все еще тупая у меня?

Форум давно приобрел схожесть с политическими помойками, потому что уровень компетенций и выдержанности людей напоминает именно помойку.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39833162
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озвериня хотел обнаружить вдруг, где я говорил, что микросервисы настолько круты, что прямо везде необходимы. Есть подозрение, что я сказал, что у микросервисов есть своя ниша. Тогда ты просто говоришь , что фуфло для лохов, не так ли? И это у меня странная манера общения?
Ты первый ввел в тему микросервисы. И что обижаться?
То что во всем инете это buzzword?
OK. Я готов принять, что webFlux пишут с микросервисами. ПИШИТЕ.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39833168
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинФорум давно приобрел
А) почему то другого такого нет
Б) ты не был в ветке шарп))). Там аргументы типа: "Фаулер придурок...
Так что не оффтопь.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39833657
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озвериня хотел обнаружить вдруг, где я говорил, что микросервисы настолько круты, что прямо везде необходимы. Есть подозрение, что я сказал, что у микросервисов есть своя ниша. Тогда ты просто говоришь , что фуфло для лохов, не так ли? И это у меня странная манера общения?Ну вот опять, то не говорил, этого не писал и пр. 21918030 :
ОзверинЕсть среды, где необходимо масштбаривание и где монолит не тянет. Если такие среды и задачи есть - к чему подобные комментарии?
Масштабируемость в микросервисах - это то на что пытаются поймать лохов: сначала мы впариваем всем что в микросервисах какая-то необычайная масштабируемость и всем срочно их нужно использовать, а потом, спустя некоторое время говорим, что все что рассказывали ранее - все неправда, и теперь нужно срочно использовать WebFlux, потому что раньше масштабируемость была ненастоящая, а теперь будет настоящая.
ОзверинНетфликс предоставляет услугу более 100млн пользователей - это стриминговое телевидение ультравысокого качества в том числе. По трафику с такими требованиями(стриминг высокого качестве как замена телевидения) с ним может соперничать разве что тытруба.Еще раз, для специально одаренных: прикладное ПО в генерации трафика не участвует - все делает ядро через DMA/sendfile, если у кого-то видосики раздаются не ядром ОС, то он явно что-то делает не так.
ОзверинЗамечу, что это ТЫ Нетфликс называешь идиотами и лохами, а манера общения все еще тупая у меня?А это разве не netflix изначально написали хрень, растрындели всем про масштабируемость, а потом все переделали на то как нужно? Netflix Zuul Gets a Makeover to a Asynchronous and Non-Blocking Architecture


ОзверинФорум давно приобрел схожесть с политическими помойками, потому что уровень компетенций и выдержанности людей напоминает именно помойку.Я вот тоже не понимаю зачем приходить в каждый топик и нудеть про микросервисы.
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39833791
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей ПанфиловМасштабируемость в микросервисах - это то на что пытаются поймать лохов: сначала мы впариваем всем что в микросервисах какая-то необычайная масштабируемость и всем срочно их нужно использовать, а потом, спустя некоторое время говорим, что все что рассказывали ранее - все неправда, и теперь нужно срочно использовать WebFlux, потому что раньше масштабируемость была ненастоящая, а теперь будет настоящая.


У WebFlux применение только для криворуких программистов использующих ужасные микросервисы, которые были выбраны по ошибке, чтобы хоть как-то улучшить производительность?

Я всё правильно понял?
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39833804
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
"Как же тебя понять, если ты ничего не говоришь"? (с) Иван Васильевич.
Применительно к твоему вопросу, глянь соседний топик где чел пишет и спрашивает одновременно.
Если бы ты сделал пример WebFlux руками, то и вопрос бы твой давно отпал. Что делал неделю?
...
WebFlux годится для проектов ИЗНАЧАЛЬНО с реактивной парадигмой (вики)
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39833810
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Ну и
авторЧем асинхронные сервлеты отличаются от Sping WebFlux
доказывать что классика Хуже webFlux лежит на авторе топика или альтруистах. Что справедливо.
Так получается что у тебя корысть в продвижении этой технологии)))
...
Рейтинг: 0 / 0
Чем асинхронные сервлеты отличаются от Sping WebFlux
    #39833825
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerУ WebFlux применение только для криворуких программистов использующих ужасные микросервисы, которые были выбраны по ошибке, чтобы хоть как-то улучшить производительность?

Я всё правильно понял?Вам для начала нужно понять откуда у асинхронного выполнения вообще ноги растут. А растут они из жава-скрипта: в браузере движок JS устроен таким образом, что есть один поток для UI и воркеры для всего остального, поэтому разработчикам JS просто необходимо исполнение всего что можно запихивать в воркеры, в противном случае у пользователя начинает тупить UI. Для всего этого там придумывают разного рода API, чтобы конечному разработчику было проще, однако путь устаканивания всего этого API не быстрый, в итоге в JS сейчас существует куча разных способов делать одно и то же: Async/await, Coroutines, Promises, Callbacks, может еще что забыл. WebFlux - это попытка принести то что сейчас есть в JS в мир Java (видимо, потому что одним только Future<?> пользоваться довольно уныло), однако реальных кейсов для использования не особо-то и много (ну вот нет у нас браузера, у которого существует ряд ограничений).
...
Рейтинг: 0 / 0
146 сообщений из 146, показаны все 6 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Чем асинхронные сервлеты отличаются от Sping WebFlux
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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