|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Суть использования асинхронных сервлетов в том, что мы можем вернуть DefferedResult(Если работать через spring). Это приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов. Далее контроллер вызывает сервис, базу в отдельном треде и как только у нас есть ответ, то мы говорим, что досчитали defferedResult и работа передаётся в тред томката. Есть какой-то новый reactive spring webflux https://stackoverflow.com/questions/46606246/spring-mvc-async-vs-spring-webflux/46621923 Я что-то не могу понять в чём принципиальное отличие. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 16:59 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Зачем дубль темы? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 17:12 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
servlet 3.1 вполне себе использует NIO https://stackoverflow.com/questions/39802643/java-async-in-servlet-3-0-vs-nio-in-servlet-3-1 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 17:22 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Tomcat 8.5+ поддерживает это всё. https://dzone.com/articles/servlet-31spring-mvc-non-blocking-io Зачем тогда webflux? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 17:25 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerЗачем тогда webflux?а зачем ты подымаешь всё Г. которое на земле валяется? Это хайповое реактивное программирование. Совсем другое по сути. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 17:30 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpquestionerЗачем тогда webflux?а зачем ты подымаешь всё Г. которое на земле валяется? Это хайповое реактивное программирование. Совсем другое по сути. Ты тут чтоб на вентилятор накинуть? Нечего ответить - помолчи. Weblflux построен на servlet 3.1 для томката, так что никакой магии нет. Еще есть Фишечка, что эта либа умеет в рантайме размеры внутренних пулов тюнить ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 18:36 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
redwhite90Нечего ответить - помолчи.жду твое молчание на Flux<T> ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 18:53 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharpredwhite90Нечего ответить - помолчи.жду твое молчание на Flux<T> Что? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 19:08 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerСуть использования асинхронных сервлетов в том, что мы можем вернуть DefferedResult(Если работать через spring). Это приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов. Далее контроллер вызывает сервис, базу в отдельном треде и как только у нас есть ответ, то мы говорим, что досчитали defferedResult и работа передаётся в тред томката.В что что вы описали нет никакого смысла, какая разница между тем, что запрос обрабатывается в http-потоке или в каком-то другом? Разницы нет никакой, а профит появляется только тогда, когда мы умеем обрабатывать отложенные запросы пачками. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 19:19 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
redwhite90PetroNotC Sharpпропущено... жду твое молчание на Flux<T> Что?нечего по теме сказать - молчи. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 19:44 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловquestionerСуть использования асинхронных сервлетов в том, что мы можем вернуть DefferedResult(Если работать через spring). Это приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов. Далее контроллер вызывает сервис, базу в отдельном треде и как только у нас есть ответ, то мы говорим, что досчитали defferedResult и работа передаётся в тред томката.В что что вы описали нет никакого смысла, какая разница между тем, что запрос обрабатывается в http-потоке или в каком-то другом? Разницы нет никакой, а профит появляется только тогда, когда мы умеем обрабатывать отложенные запросы пачками. Это фича сервлет 3.0. Как я понимаю суть в том, чтобы сервер мог хотя бы принимать запросы даже если он не справляется с нагрузкой, чтобы все потоки контейнера не были заняты. Например в томкате 100 потоков по дефолту и скажем запрос занимает 5 секунд. И к нам прилетает 101-ый запрос В случае 2.5 мы не можем принять запрос вообще, а в случае 3.0 мы спокойно примем запрос и передадим в другой пул с очередью. Если я ошибаюсь - хочу доказательства ибо такое не в одном месте встречал - например тут: https://stackoverflow.com/a/18187372/2674303 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 23:48 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилов, https://stackoverflow.com/a/3810625/2674303 Вот вообще похожая формулировка вопроса ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 00:02 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
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 - а вот это дичь, на которую вы ведетесь: подменили одно выполнение другим и говорим что стало лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 01:23 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилов, +1 questionerЭто фича сервлет 3.0. Как я понимаю суть в том, Все время суть от вас ускользает. Вы писали хоть одно асинхронное на сервлетах? То которое, крнтейнер не смог, а вы своим кодом смогли? Теория без практики мертва. Опять рассуждаете о DI не написав ни строчки кода в топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 09:23 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловНу освободили вы поток, что это дало-то? OFF/2 В шарпе MS такая парадигма. Потому что у них нет контейнера с потоками и прогеры сами пишут Async через строчку. Типо помогают серверу. Но думаю что скоро перейдут к решению из java. Уж очень муторный код в итоге на бэке. Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 09:37 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpАндрей Панфилов, +1 questionerЭто фича сервлет 3.0. Как я понимаю суть в том, Все время суть от вас ускользает. Вы писали хоть одно асинхронное на сервлетах? То которое, крнтейнер не смог, а вы своим кодом смогли? Теория без практики мертва. Опять рассуждаете о DI не написав ни строчки кода в топике. Уважаемый(нет), уймись уже. от тебя толку ноль. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 11:17 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Почему то каждый, кто пилит код лет 5, или около того считает что может разговаривать про архитектуру. Увы. Это другая область знаний. ДРУГАЯ. Поэтому, мембер, мне не надо отвечать. Разговаривай по теме топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 11:31 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилов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 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 11:33 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Про очередь конкретно у томката я прогнал, признаю - https://tomcat.apache.org/tomcat-9.0-doc/config/executor.html ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 11:56 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerнагрузку не снимается, сервер имеет возможность лучше обрабатывать пиковые нагрузки.Физика под этим "лучше обрабатывать" какая лежит? Вот мы берем "типичное" приложение и затаскиваем весь говнокод из контроллеров в DefferedResult - в каком месте и из-за чего оно начнет что-то "лучше обрабатывать"? или таки есть специфичные кейсы где мы можем получить неиллюзорный профит а в остальных случаях ничего кроме геморроя не получить? Вы вообще задумывались по какой причине топят за всякие фиберы в жаве и реактивное программирование? почему поток - это плохо? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 12:22 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловquestionerСуть использования асинхронных сервлетов в том, что мы можем вернуть DefferedResult(Если работать через spring). Это приводит к тому, что тред томката освобождается после того как мы передали управление в контроллер(если код правильно написать) освобождается и сразу становится свободным для принятия новых запросов. Далее контроллер вызывает сервис, базу в отдельном треде и как только у нас есть ответ, то мы говорим, что досчитали defferedResult и работа передаётся в тред томката.В что что вы описали нет никакого смысла, какая разница между тем, что запрос обрабатывается в http-потоке или в каком-то другом? Разницы нет никакой, а профит появляется только тогда, когда мы умеем обрабатывать отложенные запросы пачками. почему нет смысла? а как на счет того, что поток это жирно для ОС(процесс для ОС еще жирнее, к примеру) и мы можем переложить выполнение некоторых задач(чтение-запись файла) на потоки ядра, которые еще сильнее оптимизированы и тоньше. nginx работающий по такому принципу, значительно производительнее apache, который создает потоки для каждого подключения ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 12:33 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerНу вот ещё(автор если что ROSSEN STOYANCHEV): вы у автора уточните. Он беспокоится за оптимизацию бэка или клиента? У клиента при асинхронном программировании методом AJAX и так всё шеколадно. Он ждёт Асинхронно ответ (в разумных пределах таймаута) и его ничего не парит. Ему не нужно сразу возвращать управление(ответ). Поэтому забудьте о клиенте при доказательствах нужности. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 12:37 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpquestionerНу вот ещё(автор если что ROSSEN STOYANCHEV): вы у автора уточните. Он беспокоится за оптимизацию бэка или клиента? У клиента при асинхронном программировании методом AJAX и так всё шеколадно. Он ждёт Асинхронно ответ (в разумных пределах таймаута) и его ничего не парит. Ему не нужно сразу возвращать управление(ответ). Поэтому забудьте о клиенте при доказательствах нужности. Вот неуёмный какой)) не угомониться ему никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 12:40 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
сладкий бубалехчто поток это жирно для ОС Контейнер создавали чтобы в прикладном коде программист меньше думал о потоках. Иначе нужны цифры и доказательства. Накладные расходы растут. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 12:40 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerВот неуёмный какой)) не угомониться ему никак. по теме, по теме пишите. А то вы сначала отвечаете, а потом ссылки читаете)). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 12:41 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилов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 мы одной волне? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 12:56 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
сладкий бубалехпочему нет смысла? а как на счет того, что поток это жирно для ОС(процесс для ОС еще жирнее, к примеру) и мы можем переложить выполнение некоторых задач(чтение-запись файла) на потоки ядра, которые еще сильнее оптимизированы и тоньше. nginx работающий по такому принципу, значительно производительнее apache, который создает потоки для каждого подключенияПотому что чтобы получить профит должен быть определенный паттерн работы сервиса, ну например как в сеансе одновременной игры в шахматы: гроссмейстер может одновременно с несколькими нубами играть, просто потому что может, а одновременно с такими же по уровню - кишка тонка. Здесь то же самое: тыще клиентов отправить один и тот же ответ с некоторой приемлемой задержкой - прекрасно перекладывается на асинхронную обработку, а посчитать классический Фибоначчи - профита не будет никакого. Хотим с СУБД как-то хитро работать? нет проблем, только нужно будет забыть про консистентность. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 13:04 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловЧтобы получить профит должен быть определенный паттерн работы сервиса Прям резюмировал топик +5. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 13:33 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpquestionerНу вот ещё(автор если что ROSSEN STOYANCHEV): вы у автора уточните. Он беспокоится за оптимизацию бэка или клиента? У клиента при асинхронном программировании методом AJAX и так всё шеколадно. Он ждёт Асинхронно ответ (в разумных пределах таймаута) и его ничего не парит. Ему не нужно сразу возвращать управление(ответ). Поэтому забудьте о клиенте при доказательствах нужности. Всё таки умение увидеть в тексте абсолютно противоположное это искусство. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 13:38 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
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 вряд ли будет радовать, но пропускная способность - да. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 13:48 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
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 репозиториями, без которых освобождение потока - такое себе счастье. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:01 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин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 для томката это по сути одно и то же. Я вот не могу понять смысла выделенной фразы. Что он имеет ввиду? в случае асинхронных сервлетов мы ведь уже принимаем запрос одним потоком, а возвращаем другим(скорее всего) Следующей статьи я не нашёл) Видимо он её так и не написал ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:11 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Ты не огрызайся, а думай. У тебя не первый топик с шиворот навыворот выводами. Пиши код вместе с рассуждениями. Про DI инверсию код написал? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:12 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин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) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:16 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, Ты не огрызайся, а думай. У тебя не первый топик с шиворот навыворот выводами. Пиши код вместе с рассуждениями. Про DI инверсию код написал? У тебя всё хорошо? я за тебя переживаю. Все люди как люди, вносят вклад в топик, а ты ничего не понимаешь, а чего-то всё строчишь. ЧСВ повышаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:18 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerВ общем суть в том, что есть 100500 клиентов которые ждут например какой-то котировки, которая обновляется раз в 5 секунд и соответственно для клиента это ОК ждать какое-то время. Соответственно мы должны просто принять запрос и положить его в очередь. Когда пришло событие с новой котировкой мы просто забираем из очереди все запросы и отправляем клиентам эту котировку. Throughput взлетел до небес, Latency тоже радует. Вы пытаетесь натянуть сову на глобус: чтобы отдать клиентам один и тот же ответ не нужно их ставить в очередь и обрабатывать запросы по два раза, достаточно результат в памяти разместить (или html под nginx положить и кроном обновлять ) и производительность будет заоблачной. questionerТеперь насчёт 3.0 мы одной волне?Определенно нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:18 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:20 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловquestionerВ общем суть в том, что есть 100500 клиентов которые ждут например какой-то котировки, которая обновляется раз в 5 секунд и соответственно для клиента это ОК ждать какое-то время. Соответственно мы должны просто принять запрос и положить его в очередь. Когда пришло событие с новой котировкой мы просто забираем из очереди все запросы и отправляем клиентам эту котировку. Throughput взлетел до небес, Latency тоже радует. Вы пытаетесь натянуть сову на глобус: чтобы отдать клиентам один и тот же ответ не нужно их ставить в очередь и обрабатывать запросы по два раза, достаточно результат в памяти разместить (или html под nginx положить и кроном обновлять ) и производительность будет заоблачной. 1. Где у меня по 2 раза обработка запроса? 2. Зависит от того чего хотим добиться. Если нужно отдавать старую котировку, то можно старую отдавать. Если хотят самую свежую, то придётся повисеть и подождать. Да и вообще, чтобы отдавать старую котировку асинхронные сервлеты вообще не нужны) По Вашему то какой для 3.0 сервлетов юзкейс ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:28 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, И где в топике прошлом по DI ты что нибудь понял? Вот поэтому ты и флудишь мне) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:39 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, И где в топике прошлом по DI ты что нибудь понял? Вот поэтому ты и флудишь мне) Все, я больше умственно отсталым не отвечаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 14:56 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
redwhite90, наконец то тебе дошло и больше флудить без аргументов не будем. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 15:25 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
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. Поток запроса отпустить. Как-то так я себе все это представляю. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 17:06 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 17:18 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, теперь к webflux. Скажем так, в основе его лежит СОВЕРШЕНО другая парадигма, тем не менее, которая решает похожие задчи. В основе лежат reactive streams - асинхроннные потоки которые можно СЛУШАТЬ. По сути - это event driven архитектура с продюсерами и подписчиками. Я думаю, не надо тут глубок расписывать плюсы от подобной архитектуры - итак понятно. В java8 никаких реактив стримов не было, была собственная имплементация от нетфликса - rxjava(вроде, если не ошибаюсь). Ее то и использовали поцоны из спринга. В java9 уже была rxjava2 вроде как, короче, реактив стримы стали ядром системы. И насчет потоков и разницы между tomcat и netty. Tomcat - стандартный веб контейнер, который имплементирует текущую реализацию http 1.1 с переиспользованием одного соединения для нескольких запросов, КАЖДЫЙ ИЗ КОТОРЫХ порождает один поток. Тогда как Netty - ну это в первую очреедь некий event driven инструмент, из которого МОЖНО сделать web сервер, у которого правда будет совершенно другая начинка, нежели чем у Tomcat`а. Но тут я честно сказать netty не использовал особо, потому ...не сварщик. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 17:20 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Жаль тут парень какой-то black чего-то там не пишет больше. И форум в руках ...короче не у кого даже спросить, чтобы поправили. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 17:23 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинСОВЕРШЕНО другая парадигма+1 Реактивная. Причем эта парадигма не подменяет и не улучшает rest. Она просто идет рядом и не факт что не сгинет через пару лет. Можно пробовать, но переписывать классику на "это" не стоит. Мои сожаления автору топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 17:33 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинМОЖНО сделать web сервер Угу. Типа HttpServer .create("localhost", 8080) .newHandler(new ReactorHttpHandlerAdapter(httpHandler)) .block(); ... MS счас этим балуется со своим kestrel. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 17:40 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинТут кроется проблема - скорость! http 1. 0 медленный из-за того, что на каждый запрос приходится открывать и закрывать соединениеНе совсем так, насколько я помню, разницы между включенным и выключенным keepalive нет, если не используется SSL/TLS, вот рукопожатие TLS действительно дорогое и без keepalive никуда, в тоже время всякие forward-proxy и терминаторы TLS к бэкенду как раз без keepalive ходят (не уверен как сейчас, но когда я этими вещами занимался года до 2008 все так и было) ОзверинДля чего вообще пул потоков существует? Само собой для latency - создание потока - дорогая операция(и по скорости, и по памяти). Потому web server`ы на старте создают пул потоков и используют потоки для request`ов из него.дорого - понятие относительное, относительно создания объекта или сложения 1+1, да, дорого, а в сравнении со "сходить в базу", уже и не дорого Основная проблема тут больше в том, что "глупый" планировщик ОС ничего о приложении не знает и наивно выдает кванты времени потокам, которым выполнение в данный момент не нужно ну и про между прочим контексты переключает и пр, вообщем performance penalty здесь очевидный, и пулы потоков используют больше не потому что дорого создавать, а потому что это довольно простой способ ограничить число экзекьюшн юнитов сверху. ОзверинВ чем плюс? В том, что мы возвращаем ссылку на поток из другого пула, либо вообще на новый поток, таким образом не расходуя пул потоков веб сервера.Ну вы рассказали что происходит, а в чем же плюс рассказать забыли :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 17:56 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
[quot Озверин] В чем плюс? В том, что мы возвращаем ссылку на поток из другого пула, либо вообще на новый поток, таким образом не расходуя пул потоков веб сервера. тут мы уже обсудили, что это весьма иллюзорно и иногда заменяемо конфигом сервера. ОзверинТут на сцену выходит блоикровка ресурсов. Не смотря на то, что мы пытаемся вернуть ответ асинхронно, все равно некоторые операции могут "держать" поток запроса. Например, чо нить мы заливаем на сервак долгое. Что делать? Да тоже самое, но немного в другом ключе: 1. Сказать, хочу асинхронной работы 2. Дождаться когда контекст вернет новый поток, в котором будут средства для неблокирующего чтения ваших данных 3. В этом потоке уже заливать данные 4. Поток запроса отпустить. Я вот это не совсем понял. Мне кажется это релевантно для медленного коннекшена или медленного клиента, который медленно шлёт или принимает. Какие ещё могут быть точки торможения я не представляю. То как там NIO будет работать с вводом выводом это уже не так интересно. Меня вполне удовлетворит абстракция, что она это сделает эффективно. Озверин В java8 никаких реактив стримов не было, была собственная имплементация от нетфликса - rxjava(вроде, если не ошибаюсь). Ее то и использовали поцоны из спринга. В java9 уже была rxjava2 вроде как, короче, реактив стримы стали ядром системы. WebFlux построен на основе своего же спрингового Proactor(Не Rxjava то бишь) авторЖаль тут парень какой-то black чего-то там не пишет больше. И форум в руках ...короче не у кого даже спросить, чтобы поправили. Ага вот он "Blazkowicz" Сгинул отсюда( ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 18:17 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловНу вы рассказали что происходит, а в чем же плюс рассказать забыли :) ешё раз повторю к Вам вопрос: Так просветите тогда уж раз уж Вы не согласны) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 18:22 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerешё раз повторю к Вам вопрос: Так просветите тогда уж раз уж Вы не согласны)Ваш вопрос на самом деле звучит так: я решил что с левой ноги вставать лучше, обоснуйте почему я неправ. Операционная система предоставляет две возможности, вокруг которых крутится вся оптимизация: Zero Copy (DMA и sendfile) - не копируем данные в user space, и Async I/O - не ждем ответа, а узнаем есть что новое для нас или нет. Если у вас приложение не умеет ни то, ни другое, то толку от асинхронной обработки http нет никакого, потому что совершенно нет никакой разницы в каком потоке выполнятьсяждать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 18:53 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилов, так плюсов в использовании servlet 3.1 нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 19:58 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове. авторЯ вот это не совсем понял. Мне кажется это релевантно для медленного коннекшена или медленного клиента, который медленно шлёт или принимает. Какие ещё могут быть точки торможения я не представляю. То как там NIO будет работать с вводом выводом это уже не так интересно. Меня вполне удовлетворит абстракция, что она это сделает эффективно. не понял, если честно ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 20:02 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинАндрей Панфилов, так плюсов в использовании servlet 3.1 нет? в плане производительности ? Тащем та я как понял, это еще один API который позволяте использовать потоки контейнера вместо самодельного велосипета что вкупе с особоненостями tomcat можно получить неприятные эффекты. Из гуд ньюз то потоки управляемые контейнером, контейнер имеет доступ и может управлять их жизненным циклом. Ежели томкату скажут "все" то он сможем им передать этим потокам что "все". С самодельными потоками часто никто не заморачивается их привзякой к томкату. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 20:22 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинquestioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове. авторЯ вот это не совсем понял. Мне кажется это релевантно для медленного коннекшена или медленного клиента, который медленно шлёт или принимает. Какие ещё могут быть точки торможения я не представляю. То как там NIO будет работать с вводом выводом это уже не так интересно. Меня вполне удовлетворит абстракция, что она это сделает эффективно. не понял, если честно ;) Вот что пишет чувак из Pivotal: https://stackoverflow.com/a/56808576/2674303 When using Servlet 2.5, Servlet containers will assign a request to a thread until that request has been fully processed. When using Servlet 3.0 async processing, the server can dispatch the request processing in a separate thread pool while the request is being processed by the application. However, when it comes to I/O, work always happens on a server thread and it is always blocking. This means that a "slow client" can monopolize a server thread, since the server is blocked while reading/writing to that client with a poor network connection. With Servlet 3.1, async I/O is allowed and in that case the "one request/thread" model isn't anymore. At any point a bit request processing can be scheduled on a different thread managed by the server. Servlet 3.1+ containers offer all those possibilities with the Servlet API. It's up to the application to leverage async processing, or non-blocking I/O. In the case of non-blocking I/O, the paradigm change is important and it's really challenging to use. With Spring WebFlux - Tomcat, Jetty and Netty don't have the exact same runtime model, but they all support reactive backpressure and non-blocking I/O. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 20:50 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфиловquestionerешё раз повторю к Вам вопрос: Так просветите тогда уж раз уж Вы не согласны)Ваш вопрос на самом деле звучит так: я решил что с левой ноги вставать лучше, обоснуйте почему я неправ. Операционная система предоставляет две возможности, вокруг которых крутится вся оптимизация: Zero Copy (DMA и sendfile) - не копируем данные в user space, и Async I/O - не ждем ответа, а узнаем есть что новое для нас или нет. Если у вас приложение не умеет ни то, ни другое, то толку от асинхронной обработки http нет никакого, потому что совершенно нет никакой разницы в каком потоке выполнятьсяждать. Продолжайте мысль.... Вопрос вполне конкретный. Приведите пример при каком юзкейсе servlet 3.0 даст преимущество перед servlet 2.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 20:53 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинплюсов в использовании servlet 3.1 нет?народ скорее кафкой масштабировать будет) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 21:03 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин1. В версии http 1.0 каждый запрос порождал соединение. Запрос - соединение создается - ответ - соединение закрывается 1.2. Один запрос - один поток. Причем это дорогой поток, потому что является блокироующим: и поток, и ресурсы(база, файл, io). Тут кроется проблема - скорость! http 1. 0 медленный из-за того, что на каждый запрос приходится открывать и закрывать соединение 2. В версии http 1.1 в рамках одного соединения может быть несколько запросов, каждый из которых будет в своем отдельном потоке. Скорость увеличивается для клиентов, которые посылают запросы пачками, но, возникает проблема, что web container быстро расходует pool потоков."Смешались в кучу кони, люди ..." Постоянные подключения появились уже в HTTP/1.0 (прагма keep-alive). HTTP/1.1 сделал постоянные подключения вариантом по умолчанию (Connection: close). Детали когда "можно постоянные подключения" - опускаются. Постоянные подключения сами по себе не увеличивают число потоков исполнения - запросы продолжают поступать и обрабатываться строго последовательно. Установление подключения - десятки-сотни миллисекунд и для запросов продолжительнее трёх-пяти секунд это не очень существенно. При некоторых оговорках, которые могут и не выполняться. Поток не может быть "дорогим" - если для исполнения требуются определённые ресурсы, то придётся их потратить в любом случае. Семантика асинхронного контекста сервлетов 3.0 позволяет контейнеру оптимизировать управление ресурсами. Реализованы эти оптимизации в конкретном контейнере и возможно ли их задействовать в конкретном сценарии - вопрос отдельный. Асинхронный ввод-вывод в сервлетах 3.1 позволяет задействовать (и достаточно просто) оптимизации ввода-вывода не только на уровне контейнера, но и в прикладном коде. Будет с этого какой-то выигрыш - вопрос, опять-таки, отдельный. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 21:23 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Basil A. SidorovБудет с этого какой-то выигрыш - вопрос, опять-таки, отдельный. если ты заметил, то ТС докопался до разницы между левой ногой и правой. Или между 3.1 и WebFlux )) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 22:22 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Basil A. SidorovСемантика асинхронного контекста сервлетов 3.0 позволяет контейнеру оптимизировать управление ресурсами. Реализованы эти оптимизации в конкретном контейнере и возможно ли их задействовать в конкретном сценарии - вопрос отдельный. Асинхронный ввод-вывод в сервлетах 3.1 позволяет задействовать (и достаточно просто) оптимизации ввода-вывода не только на уровне контейнера, но и в прикладном коде. Будет с этого какой-то выигрыш - вопрос, опять-таки, отдельный. Хотелось бы побольше конкретики ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 23:33 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинquestioner, чето был уверен, что все таки с rxjava они, оказалось да..Reactor у них свой. Просто они черпали идеи из rxjava - где-то читал, потому и осело в голове. авторЯ вот это не совсем понял. Мне кажется это релевантно для медленного коннекшена или медленного клиента, который медленно шлёт или принимает. Какие ещё могут быть точки торможения я не представляю. То как там NIO будет работать с вводом выводом это уже не так интересно. Меня вполне удовлетворит абстракция, что она это сделает эффективно. не понял, если честно ;) вот ещё по этому поводу что пишут: https://stackoverflow.com/a/40231294/2674303 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2019, 23:35 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинтак плюсов в использовании servlet 3.1 нет?Если видосики не стримить, то в текущей реализации/инфраструктуре как-то никаких преимуществ не видно - оно же определяет только общение с клиентом, а не весь стэк (медленный клиент - это страшилка из начала 2000-х, когда P4 с гигабайтом памяти считалось приличным железом, сейчас же мощности совсем другие, да и жава голой жопой в интернеты обычно не торчит: либо intranet, либо через балансировщик/reverse-proxy) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2019, 08:08 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Можно почитать некоторые тесты: https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 09:54 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин, Ссылка требует регистрации. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:37 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, у меня не требует, язх. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:38 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин, Открыл в режиме инкогнито - работает. Наверно куки влияют. Более 3х раз сайт читать не дает)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:46 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинтак плюсов в использовании servlet 3.1 нет?Если видосики не стримить, то в текущей реализации/инфраструктуре как-то никаких преимуществ не видно - оно же определяет только общение с клиентом, а не весь стэк (медленный клиент - это страшилка из начала 2000-х, когда P4 с гигабайтом памяти считалось приличным железом, сейчас же мощности совсем другие, да и жава голой жопой в интернеты обычно не торчит: либо intranet, либо через балансировщик/reverse-proxy) Как-то звучит странно. Особо никто про стриминг не пишет в описании servlet 3.1 Думается, что не идиоты это придумали и у них была мотивация делать то, что они сделали ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:54 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинМожно почитать некоторые тесты: https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 опять микросервисы) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 10:58 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинМожно почитать некоторые тесты: https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 Написанное можно по разному читать. Для начала, ну вот есть там ограниченные ресурсы и возможность использовать async i/o, ну и используют. С другой стороны получается так: был прекрасный монолит с общением через память, заменили микросервисами с тормозным http, с апломбом что якобы монолит не масштабируется, как итог сторонний сервис умеет 4 тыщи запросов в секунду, а тормознутые микросервисы и до 2 тыщ не дотянули, зато масштабируется. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 11:34 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerКак-то звучит странно. Особо никто про стриминг не пишет в описании servlet 3.1 Думается, что не идиоты это придумали и у них была мотивация делать то, что они сделалиНе представляю как можно так тупить-то.... вот зачем вы приводите ссылки, цитаты и прочую ересь, если сами их не читаете? questionerWhen using Servlet 3.0 async processing, the server can dispatch the request processing in a separate thread pool while the request is being processed by the application. However, when it comes to I/O, work always happens on a server thread and it is always blocking. This means that a "slow client" can monopolize a server thread, since the server is blocked while reading/writing to that client with a poor network connection. Вопрос: сколько можно в сокет написать без блокировки? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 11:57 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинМожно почитать некоторые тесты: https://medium.com/@filia.aleks/microservice-performance-battle-spring-mvc-vs-webflux-80d39fd81bf0 Написанное можно по разному читать. Для начала, ну вот есть там ограниченные ресурсы и возможность использовать async i/o, ну и используют. С другой стороны получается так: был прекрасный монолит с общением через память, заменили микросервисами с тормозным http, с апломбом что якобы монолит не масштабируется, как итог сторонний сервис умеет 4 тыщи запросов в секунду, а тормознутые микросервисы и до 2 тыщ не дотянули, зато масштабируется. читать можно как угодно, конечно. Но я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял. Есть среды, где необходимо масштбаривание и где монолит не тянет. Если такие среды и задачи есть - к чему подобные комментарии? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 12:08 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинНо я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял.Выглядит это все несколько притянутым за уши: у чувака без какой-либо пре/пост-обработки throughput в два раза упал в сравнении с оригинальным сервисом, скорее всего если добавить еще авторизацию, то наскребется на порядок. Получается что сначала мы сами придумываем себе проблемы, а потом героически их решаем, при всем при этом за "банкет" платит заказчик: вместо того чтобы разогнать дебилов и взять нормальный хостинг, приходится ютиться на t2.micro и оплачивать время идиотов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 12:39 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинНо я эту фразу(точнее, потаеенный ее смысл) - совершенно не понял.Выглядит это все несколько притянутым за уши: у чувака без какой-либо пре/пост-обработки throughput в два раза упал в сравнении с оригинальным сервисом, скорее всего если добавить еще авторизацию, то наскребется на порядок. Получается что сначала мы сами придумываем себе проблемы, а потом героически их решаем, при всем при этом за "банкет" платит заказчик: вместо того чтобы разогнать дебилов и взять нормальный хостинг, приходится ютиться на t2.micro и оплачивать время идиотов. ну других более гениальных тестов я не нашел, а от вас слышу только про идиотов, воду, бесполезность микросеврисов и уши ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 12:48 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин, Статья интересная, но я согласен с Андрей Панфиловым что аргумент с микросервисами притянут за уши. Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку. Без юз кейса общения микросервисов и побочных от этого эффектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 12:58 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озвериндругих более гениальных тестовза артистизм 5, за технику 3. Вот такая оценка статьи к данному сабжу. Можно пометить OFF/2. А то что нет статей, это ожидаемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 13:01 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpОзверин, Статья интересная, но я согласен с Андрей Панфиловым что аргумент с микросервисами притянут за уши. Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку. Без юз кейса общения микросервисов и побочных от этого эффектов. почему без? А если раскрывается все именно в микросервисах? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 13:05 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинраскрывается все именно в микросервисах?ты первый про это сказал. Это меняет дело. То есть сабж рассматриваем только как борьба с недостатками микросервисов. ОК. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 13:08 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилов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 это некая выведенная унифицированная абстракция над улучшениями ОС, которая на Юниксе дать один прирост, а на Винде ничего не дать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 13:34 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpОзверин, Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку. Кажется кому-то надо опохмелиться. Приведенная статья именно о теме топика. Микро, Макро сервисы....это вообще по барабану. Может код вообще в гугл ходит, зачем об этом думать даже. P.S. я конечно понимаю, что это русский форум, но всё таки ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 13:42 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинот вас слышу только про идиотов, воду, бесполезность микросеврисов и уши ;)Ну а как иначе? Вот пишут:автор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, вопрос: на сколько обули заказчика? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 13:44 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилов, я не понял: вы не отличаете stack memory от heap или не понимаеет, что у микросервисов есть своя ниша? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 13:55 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerАндрей Панфиловпропущено... Вопрос: сколько можно в сокет написать без блокировки? Вот вообще не представляю даже. И вообще не понимаю этот механизм. Для меня NIO это некая выведенная унифицированная абстракция над улучшениями ОС, которая на Юниксе дать один прирост, а на Винде ничего не дать.Ну а чего не нагулили-то? man 2 send : Код: plaintext 1. 2. 3. 4. 5.
размер send buffer по-умолчанию в linux 122Kb, причем его еще можно увеличивать, теперь второй вопрос: с повальным увлечением REST в вебе, 122Kb - это большой размер для ответа или маленький? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:00 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerКажется кому-то надо опохмелитьсяпродолжаете плеваться и сморкаться? questionerПриведенная статья именно о теме топика. Микро, Макро сервисы....это вообще по барабану. Вам по барабану или профисообществу? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:01 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Ты ТС, и за это время просто обязан был сделать собственные тесты. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:06 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфиловquestionerпропущено... Вот вообще не представляю даже. И вообще не понимаю этот механизм. Для меня NIO это некая выведенная унифицированная абстракция над улучшениями ОС, которая на Юниксе дать один прирост, а на Винде ничего не дать.Ну а чего не нагулили-то? man 2 send : Код: plaintext 1. 2. 3. 4. 5.
размер send buffer по-умолчанию в linux 122Kb, причем его еще можно увеличивать, теперь второй вопрос: с повальным увлечением REST в вебе, 122Kb - это большой размер для ответа или маленький? Процентное соотношение мне не известно, но с уверенностью можно сказать, что не редки случаи когда ответ превышает 122 кб ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:22 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинPetroNotC SharpОзверин, Статья интересная, но я согласен с Андрей Панфиловым что аргумент с микросервисами притянут за уши. Мы в сабже сравниваем сервлеты по классике и рактивное программирование библиотеку. Без юз кейса общения микросервисов и побочных от этого эффектов. почему без? А если раскрывается все именно в микросервисах? На этом месте мог быть сервис с котировками на бирже, который никогда не был и быть не мог частью монолита ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:26 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озвериня не понял: вы не отличаете stack memory от heap?Насколько я помню это у вас в прошлый раз возникали проблемы с размером стэка, вот из интернетов: 10 тысяч потоков на 2Gb кучи , чес про память из статьи, что вы привели, несостоятелен. Озверинили не понимаеет, что у микросервисов есть своя нишаПока понимание такое, что ниша микросервисов - обуть лохов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:29 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
redwhite90Процентное соотношение мне не известно, но с уверенностью можно сказать, что не редки случаи когда ответ превышает 122 кббольше 122Kb - это видосики чтоли? на странице A4 где-то 3000 печатных знаков, ну с пробелами пусть будет 4000, ладно, форум русскоязычный, пусть A4 - будет 8Kb, т.е. чтобы в попасть в блокировку на send() нужно отправить >15 страниц текста (и при этом ничего в ОС не крутить!)... вы точно адекватно оцениваете объемы передаваемой информации? или в JSON html пихаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:39 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловПока понимание такое, что ниша микросервисов - обуть лохов.кто сказал что профи обязан дипломатично выражаться))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 14:53 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфиловчес про память из статьи, что вы привели, несостоятелен.Дальше, смотрим на картинку где сравнивается 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.
я правильно понял, что автор статьи в случае "синхронного" выполнения утилизирует 2 потока одновременно: один с CompletableFuture, второй с join, а потом говорит потоков как-то много и памяти не хватает? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:10 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзвериня не понял: вы не отличаете stack memory от heap?Насколько я помню это у вас в прошлый раз возникали проблемы с размером стэка, вот из интернетов: 10 тысяч потоков на 2Gb кучи , чес про память из статьи, что вы привели, несостоятелен. Озверинили не понимаеет, что у микросервисов есть своя нишаПока понимание такое, что ниша микросервисов - обуть лохов. netflix горько плачет ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:13 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфиловquestionerпропущено... Вот вообще не представляю даже. И вообще не понимаю этот механизм. Для меня NIO это некая выведенная унифицированная абстракция над улучшениями ОС, которая на Юниксе дать один прирост, а на Винде ничего не дать.Ну а чего не нагулили-то? man 2 send : Код: plaintext 1. 2. 3. 4. 5.
размер send buffer по-умолчанию в linux 122Kb, причем его еще можно увеличивать, теперь второй вопрос: с повальным увлечением REST в вебе, 122Kb - это большой размер для ответа или маленький? Тут я что-то новое узнал)) Правильно я понимаю, что вся история с NIO(1 или 2 кстати?) в том, что мы можем записать/прочитать некоторое количество данных(122 кб для linux) не блокируясь, а если больше, то блокируемся? То бишь хотим мы зааплоадить видос на пару гигабайтов через NIO и это будет выглядеть примерно так: У нас есть колбеки, которые вызывает ОС, говорящие о том, что "ОС готова записать в сокет 122кб". Причём на это не тратится даже CPU как я понял. Ок, мы записали эти 122 кб и пока следующий раз колбек не вызывется, то приложение ресурсы не тратит на запись и может тратить ресурсы. похоже на правду? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:17 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинnetflix горько плачету них же бизнес видосики стримить, не? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:18 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинnetflix горько плачету них же бизнес видосики стримить, не? в том числе. Только микросервисы там выполняют совершенно разные ф-ии..идиоты, думаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:21 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинТолько микросервисы там выполняют совершенно разные ф-ии..идиоты, думаю.ну а как еще? сидит там отдел разработки и думает: как бы вытянуть из бизнеса еще денег! о! нужно сказать что все что мы до этого делали чуть собачья и нужно все переписать заново. Мы вон в 2005 киношки стримили с посредственного сервера и спокойно забивали 4 гигабита, и никаких микросервисов не было, только perl и nginx. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:40 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинТолько микросервисы там выполняют совершенно разные ф-ии..идиоты, думаю.ну а как еще? сидит там отдел разработки и думает: как бы вытянуть из бизнеса еще денег! о! нужно сказать что все что мы до этого делали чуть собачья и нужно все переписать заново. Мы вон в 2005 киношки стримили с посредственного сервера и спокойно забивали 4 гигабита, и никаких микросервисов не было, только perl и nginx. мне нравится. Согласен. ТыТруба вон же как-то жила раньше - и все ок было. p.s. Представил 2005й в текущих разрешениях, про 4k говорить даже не буду - вдруг скажут, что это от сатаны!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:48 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Любыю тему в микросервисы переведут) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:49 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpЛюбыю тему в микросервисы переведут) в любую тему ворвутся люди, которые скажут - что микросервисы никому не нужны. Это странно, потому что вопрос ведь касается совершенно других тем, например - производительности околоструктурных решений, которые идеально раскрываются в микросервисах. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 15:51 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинPetroNotC SharpЛюбыю тему в микросервисы переведут) в любую тему ворвутся люди, которые скажут - что микросервисы никому не нужны. Это странно, потому что вопрос ведь касается совершенно других тем, например - производительности околоструктурных решений, которые идеально раскрываются в микросервисах. Этим же персонажам нечего по теме сказать, зато пофлудить ой как хочется. Вот только вопрос на кой им это надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:08 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
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 видно, что в консерватории что-то не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:08 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин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. какая инфраструктура у порнхаба? тоже микросервисы? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:23 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилов, даже если не брать в расчет тот факт, что ты несешь какой бред , измеря трафик в кол-ве видосиков, почему ты не взял среднее время видосика на порнхабе, чтобы быть до конца логичным?;) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:42 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerОзверинпропущено... в любую тему ворвутся люди, которые скажут - что микросервисы никому не нужны. Это странно, потому что вопрос ведь касается совершенно других тем, например - производительности околоструктурных решений, которые идеально раскрываются в микросервисах. Этим же персонажам нечего по теме сказать, зато пофлудить ой как хочется. Вот только вопрос на кой им это надо.то есть ты пишешь прокси сервис, который обращается к внешнему чужому сервису и который жутко тормозит. Так? Или ты ничего не пишешь а только бла бла? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:44 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин, Я сожалею что вы не нашли других примеров и юзкейсов. Туда Flux'y и дорога....для поддержки штанов микросервисов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:48 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озвериндаже если не брать в расчет тот факт, что ты несешь какой бред , измеря трафик в кол-ве видосиков, почему ты не взял среднее время видосика на порнхабе, чтобы быть до конца логичным?;)Пока с вашей стороны был только один унылый пример превосходства WebFlux, да и тот кривой. Смысла сравнивать продолжительность видосика нет: запрос от клиента обработали, дальше ядро через DMA/sendfile гонит его в сеть или вы полагаете что видосики в базе в виде блобов лежат? Вот примеры: - https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/ - https://tomcat.apache.org/tomcat-9.0-doc/aio.html ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:49 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзвериндаже если не брать в расчет тот факт, что ты несешь какой бред , измеря трафик в кол-ве видосиков, почему ты не взял среднее время видосика на порнхабе, чтобы быть до конца логичным?;)Пока с вашей стороны был только один унылый пример превосходства WebFlux, да и тот кривой. Смысла сравнивать продолжительность видосика нет: запрос от клиента обработали, дальше ядро через DMA/sendfile гонит его в сеть или вы полагаете что видосики в базе в виде блобов лежат? Вот примеры: - https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/ - https://tomcat.apache.org/tomcat-9.0-doc/aio.html с моей стороны вообще не было заявок на победу, я скзаал - что тут есть тесты. А ты несешь дикий бред про то, что вебсиры никому не упали и про пропускную способность в видосиках ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:50 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
*вебсиры - микросервисы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:50 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpОзверин, Я сожалею что вы не нашли других примеров и юзкейсов. Туда Flux'y и дорога....для поддержки штанов микросервисов. мне, если честно, глубоко фиолетово, кто тут и о чем сожалеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:51 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озвериня скзаал - что тут есть тестыкомментами не сопроводил))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:55 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин, Будем ждать других тестов). Занавес. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:56 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpОзвериня скзаал - что тут есть тестыкомментами не сопроводил))))) ну когда 3 страницы разговоров без цифр - надо ж конструктива подкинуть ... а то тут видсиками трафик измеряют...я хз - совсем лето влияет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:57 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpОзверин, Будем ждать других тестов). Занавес. вперед. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 16:57 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинPetroNotC Sharpпропущено... комментами не сопроводил))))) ну когда 3 страницы разговоров без цифр - надо ж конструктива подкинуть ... а то тут видсиками трафик измеряют...я хз - совсем лето влияет. Некоторым конструктив вообще не нужен. Достаточно просто писать что-то бессвязное. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 17:00 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Это тебе ниже Озверинну когда 3 страницы разговоров без цифр ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 17:03 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверинс моей стороны вообще не было заявок на победу, я скзаал - что тут есть тесты. А ты несешь дикий бред про то, что вебсиры никому не упали и про пропускную способность в видосиках )))Крутость микросевисов в нетфликсах начали измерять вы, на что получили разумное возражение, что объемы нетфликса хоть и внушительные, но не прямо TOP1. Какой-то странный у вас стиль общения: подпустить дешевого понта, что микросервисы - круто, сказать что оппонент пишет чушь и быстро слиться. Прямо пыонеры от разработки: сначала делаем еле-шевелящегося крокодила, создаем кучу проблем, а потом с гордостью их решаем (вот зачем в одном сервисе проксировать другой, а не сразу клиенту эндпойнт выставлять? давайте угадаю: авторизация-то у нас офигеть какая дорогая, и нужно ее в одном месте делать, а в эндойнты ходить уже с чем-то более лайтовым - не кажется что на пустом месте проблема возникает?). Какой следующий шаг будет в строительстве микросервисов? DMA-over-HTTP? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 17:13 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озверин, Пусть ТС отдувается. Зачем это тебе?) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 17:31 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей Панфилови в случае "классики" основная беда в recv, потому что он блокирующий в большинстве случаев и в больших send, поэтому чтобы одновременно обрабатывать много соединений нужно много потоков (условно поток на соединение). В случае же асинхронного I/O много потоков не нужно, потому что там сценарий работы отличается: мы открываем сокетов столько сколько захотим, а у ядра ОС спрашиваем расклад по нашим сокетам, т.е. ответ будет: - сюда можно писать - отсюда можно читать - здесь ошибка А это мы должны сами опрашивать или всё это скрыто от нас ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 18:30 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerА это мы должны сами опрашивать или всё это скрыто от нас ?В C руками, пример: https://gist.github.com/josephg/6c078a241b0e9e538ac04ef28be6e787 в жаве по факту то же самое написано в sun.nio.ch.KQueuePort.EventHandlerTask#poll а разработчику отдали java.nio.channels.AsynchronousByteChannel ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 19:24 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerА это мы должны сами опрашивать или всё это скрыто от нас ?От реализации зависит. В "классическом" варианте делается select на наборе сокетов и "по тайм-ауту" или "по результату" возвращается или "тайм-аут" или счётчики сокетов, доступных для операций ввода, вывода или "с ошибками". Какие конкретно - надо "бегать" по набору и смотреть. Про устройство более современных и более продвинутых вариантов я не особо в курсе. Вроде, на обратные вызовы (calback) переходят и вообще - всячески минимизируют опросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 19:30 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Вот кстати есть пример: https://github.com/violetagg/s1p2017-demo и его видео представление: [youtube= ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 09:57 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Умеешь ты экзотику находить с одним коммитом в год. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 12:02 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, Умеешь ты экзотику находить с одним коммитом в год. Зачем умственно отсталому смотреть видео, можно просто пофлудить ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 13:17 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Прекращай задавать вопросы по архитектуре, которые не относятся к твоей работе или без кода. Тут ветка программистов а не теоретиков. Можешь плеваться и ругаться сколько влезет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 13:51 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, правильно, тебе тут не место. Шёл бы ты отсюда, пет**** ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 13:57 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, 21918342 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:04 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Просто угомонись, засоряешь тему своими высерами. твоё мнение тут никому неинтересно ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:07 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Твои проблемы. Ты ТС? Значит будешь арбайтен и тесты строить. А не чужие видосики постить. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:10 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Аргументов нет? Закрывай тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:11 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:20 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Скучный ты. Ждем другую твою тему без кода. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:26 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestioner, Скучный ты. Ждем другую твою тему без кода. Удачи! Пойми одну простую вещь - если тебе не нравится моя тема ты можешь просто в неё не писать. Те, кто может ответить - ответят. Потом те, кто будут гуглить смогут почерпнуть для себя что-то. А ты просто в каждой бочке затычка. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:46 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerPetroNotC Sharpquestioner, Скучный ты. Ждем другую твою тему без кода. Удачи! Пойми одну простую вещь - если тебе не нравится моя тема ты можешь просто в неё не писать. Те, кто может ответить - ответят. Потом те, кто будут гуглить смогут почерпнуть для себя что-то. А ты просто в каждой бочке затычка.тебе 16 лет? Нужно объяснять, что вопрос надо задавать возле компа и с кодом? Абстрактно про технологии ты говорить не умеешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:55 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Вот здесь почему кода нет? И так ты пол года вопросы задаешь. Я последние 2 темы не вытерпел) Dependency inversion ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 14:58 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Если не можешь терпеть - сходи в туалет, не надо тут это делать. Какое тебе вообще дело то? Ты понимаешь, что ты просто засираешь топик зачем-то? А вот нашлись люди, которые смогли внести конструктив. Разве это не доказательство того, что ты делаешь что-то не так? Если хочешь больше кода - пиши что-то конструктивное с кодом, я только за, но от тебя конструктива ноль, только нытьё какое-то и поддакиванье. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 15:48 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerпиши что-то конструктивное с кодомзайди в мой профиль. Так и делаю когда вопрос задаю. И веду себя очень тихо))). Эх, всё тебе объяснять надо). Код давай! Развел сопли. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 16:04 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC Sharpquestionerпиши что-то конструктивное с кодомзайди в мой профиль. Так и делаю когда вопрос задаю. И веду себя очень тихо))). Эх, всё тебе объяснять надо). Код давай! Развел сопли. Разница в том, что мне твои темы не интересны и заходить я туда не буду, а ты докопался как пьяный до радио со своими советами на которые мне абсолютно плевать. Избавь меня от своего внимания ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 16:46 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerИзбавь меня от своего внимания100 баксов. Либо кодом меня, кодом)) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2019, 16:59 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
PetroNotC SharpquestionerИзбавь меня от своего внимания100 баксов. Либо кодом меня, кодом)) Ты столько не стоишь ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 01:14 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинс моей стороны вообще не было заявок на победу, я скзаал - что тут есть тесты. А ты несешь дикий бред про то, что вебсиры никому не упали и про пропускную способность в видосиках )))Крутость микросевисов в нетфликсах начали измерять вы, на что получили разумное возражение, что объемы нетфликса хоть и внушительные, но не прямо TOP1. Какой-то странный у вас стиль общения: подпустить дешевого понта, что микросервисы - круто, сказать что оппонент пишет чушь и быстро слиться. Прямо пыонеры от разработки: сначала делаем еле-шевелящегося крокодила, создаем кучу проблем, а потом с гордостью их решаем (вот зачем в одном сервисе проксировать другой, а не сразу клиенту эндпойнт выставлять? давайте угадаю: авторизация-то у нас офигеть какая дорогая, и нужно ее в одном месте делать, а в эндойнты ходить уже с чем-то более лайтовым - не кажется что на пустом месте проблема возникает?). Какой следующий шаг будет в строительстве микросервисов? DMA-over-HTTP? я хотел обнаружить вдруг, где я говорил, что микросервисы настолько круты, что прямо везде необходимы. Есть подозрение, что я сказал, что у микросервисов есть своя ниша. Тогда ты просто говоришь , что фуфло для лохов, не так ли? И это у меня странная манера общения? Нетфликс предоставляет услугу более 100млн пользователей - это стриминговое телевидение ультравысокого качества в том числе. По трафику с такими требованиями(стриминг высокого качестве как замена телевидения) с ним может соперничать разве что тытруба. Замечу, что это ТЫ Нетфликс называешь идиотами и лохами, а манера общения все еще тупая у меня? Форум давно приобрел схожесть с политическими помойками, потому что уровень компетенций и выдержанности людей напоминает именно помойку. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 11:18 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озвериня хотел обнаружить вдруг, где я говорил, что микросервисы настолько круты, что прямо везде необходимы. Есть подозрение, что я сказал, что у микросервисов есть своя ниша. Тогда ты просто говоришь , что фуфло для лохов, не так ли? И это у меня странная манера общения? Ты первый ввел в тему микросервисы. И что обижаться? То что во всем инете это buzzword? OK. Я готов принять, что webFlux пишут с микросервисами. ПИШИТЕ. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 11:43 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
ОзверинФорум давно приобрел А) почему то другого такого нет Б) ты не был в ветке шарп))). Там аргументы типа: "Фаулер придурок... Так что не оффтопь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 11:46 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Озвериня хотел обнаружить вдруг, где я говорил, что микросервисы настолько круты, что прямо везде необходимы. Есть подозрение, что я сказал, что у микросервисов есть своя ниша. Тогда ты просто говоришь , что фуфло для лохов, не так ли? И это у меня странная манера общения?Ну вот опять, то не говорил, этого не писал и пр. 21918030 : ОзверинЕсть среды, где необходимо масштбаривание и где монолит не тянет. Если такие среды и задачи есть - к чему подобные комментарии? Масштабируемость в микросервисах - это то на что пытаются поймать лохов: сначала мы впариваем всем что в микросервисах какая-то необычайная масштабируемость и всем срочно их нужно использовать, а потом, спустя некоторое время говорим, что все что рассказывали ранее - все неправда, и теперь нужно срочно использовать WebFlux, потому что раньше масштабируемость была ненастоящая, а теперь будет настоящая. ОзверинНетфликс предоставляет услугу более 100млн пользователей - это стриминговое телевидение ультравысокого качества в том числе. По трафику с такими требованиями(стриминг высокого качестве как замена телевидения) с ним может соперничать разве что тытруба.Еще раз, для специально одаренных: прикладное ПО в генерации трафика не участвует - все делает ядро через DMA/sendfile, если у кого-то видосики раздаются не ядром ОС, то он явно что-то делает не так. ОзверинЗамечу, что это ТЫ Нетфликс называешь идиотами и лохами, а манера общения все еще тупая у меня?А это разве не netflix изначально написали хрень, растрындели всем про масштабируемость, а потом все переделали на то как нужно? Netflix Zuul Gets a Makeover to a Asynchronous and Non-Blocking Architecture ОзверинФорум давно приобрел схожесть с политическими помойками, потому что уровень компетенций и выдержанности людей напоминает именно помойку.Я вот тоже не понимаю зачем приходить в каждый топик и нудеть про микросервисы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 09:18 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
Андрей ПанфиловМасштабируемость в микросервисах - это то на что пытаются поймать лохов: сначала мы впариваем всем что в микросервисах какая-то необычайная масштабируемость и всем срочно их нужно использовать, а потом, спустя некоторое время говорим, что все что рассказывали ранее - все неправда, и теперь нужно срочно использовать WebFlux, потому что раньше масштабируемость была ненастоящая, а теперь будет настоящая. У WebFlux применение только для криворуких программистов использующих ужасные микросервисы, которые были выбраны по ошибке, чтобы хоть как-то улучшить производительность? Я всё правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 13:00 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, "Как же тебя понять, если ты ничего не говоришь"? (с) Иван Васильевич. Применительно к твоему вопросу, глянь соседний топик где чел пишет и спрашивает одновременно. Если бы ты сделал пример WebFlux руками, то и вопрос бы твой давно отпал. Что делал неделю? ... WebFlux годится для проектов ИЗНАЧАЛЬНО с реактивной парадигмой (вики) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 13:23 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questioner, Ну и авторЧем асинхронные сервлеты отличаются от Sping WebFlux доказывать что классика Хуже webFlux лежит на авторе топика или альтруистах. Что справедливо. Так получается что у тебя корысть в продвижении этой технологии))) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 13:32 |
|
Чем асинхронные сервлеты отличаются от Sping WebFlux
|
|||
---|---|---|---|
#18+
questionerУ WebFlux применение только для криворуких программистов использующих ужасные микросервисы, которые были выбраны по ошибке, чтобы хоть как-то улучшить производительность? Я всё правильно понял?Вам для начала нужно понять откуда у асинхронного выполнения вообще ноги растут. А растут они из жава-скрипта: в браузере движок JS устроен таким образом, что есть один поток для UI и воркеры для всего остального, поэтому разработчикам JS просто необходимо исполнение всего что можно запихивать в воркеры, в противном случае у пользователя начинает тупить UI. Для всего этого там придумывают разного рода API, чтобы конечному разработчику было проще, однако путь устаканивания всего этого API не быстрый, в итоге в JS сейчас существует куча разных способов делать одно и то же: Async/await, Coroutines, Promises, Callbacks, может еще что забыл. WebFlux - это попытка принести то что сейчас есть в JS в мир Java (видимо, потому что одним только Future<?> пользоваться довольно уныло), однако реальных кейсов для использования не особо-то и много (ну вот нет у нас браузера, у которого существует ряд ограничений). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2019, 13:55 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121217]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
118ms |
get tp. blocked users: |
2ms |
others: | 227ms |
total: | 410ms |
0 / 0 |