|
Чем асинхронные сервлеты отличаются от 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 |
|
|
start [/forum/topic.php?fid=59&msg=39832304&tid=2121217]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 229ms |
total: | 393ms |
0 / 0 |