170 похожих чатов

Как связано использование nio и thread per request?

22 ответов

12 просмотров

Не совсем поняла вопрос, в чем смысл использовать thread per request, если используешь nio(epoll, в частности). Кажется, весь смысл асинхронных серверов чтоб не плодить дорогие потоки.

Анастасия
Не совсем поняла вопрос, в чем смысл использовать ...

Если заблочить поток томката ещё не страшно, а если заблочить поток нетти будет очень плохо

Владислав Хакин
Если заблочить поток томката ещё не страшно, а есл...

Ну это понятно, так как он создает поток на запрос, но где тогда асинхронность?

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Не создаёт. Потоки берутся из пула

Ну так это не то. То, что потоки берутся из пула никак не решает проблемы, которые решает нетти, та же 10к problem.

Анастасия
Ну так это не то. То, что потоки берутся из пула н...

Какую именно проблему вы пытаетесь решить? Если вы заблокировали все рабочие потоки в томкате, то вы так же заблокируете потоки и с нетти

Арег-Coder Автор вопроса
Анастасия
Не совсем поняла вопрос, в чем смысл использовать ...

Использование nio коннектора использует все тот же пул тредов для вызова твоих контроллеров и также блочит если ты не future отдаешь

Арег Coder
Использование nio коннектора использует все тот же...

Понятно, что он использует пул, но ведь не с той же целью, что и томкат, worker group’ы и все такое, а томкат использует новый поток на каждый запрос, где нетти должен просто проходить по иветам, в теории даже в одном потоке может обрабатывать. И мой вопрос не про то, умеет ли томкат работать с future, а в том, может ли он работать без модели thread per request, а так как это сделано в нетти, допустим для того, чтобы решить 10k problem.

Анастасия
Понятно, что он использует пул, но ведь не с той ж...

Мне кажется, вы не понимаете, как оно работает и просто повторяете "умные слова"

Анастасия
Понятно, что он использует пул, но ведь не с той ж...

Мое мнение не умеет, чтобы сделать completablefuture в тот метод он заходит тредом из своего пула. Да конечно, ваша completableFuture может быть запущена в каком-нибудь event loop, но все же сам факт, что томкат не имеет собственного event loopа

Анастасия
Вот я примерно так и представляла себе.

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

Арег-Coder Автор вопроса
Aleksander Melnichnikov
Мое мнение не умеет, чтобы сделать completablefutu...

Об этом и речь, если все неблокирующе отдается в future то будет гуд

Анастасия
Вот я примерно так и представляла себе.

netty - nio (selector, channel) tomcat, jetty - io + async servlet Вот так можете запомнить, этих знаний достаточно

Aleksander Melnichnikov
Мое мнение не умеет, чтобы сделать completablefutu...

Чем acceptor'ы в томкате хуже? Точно так же принимают входящие соединения, кладут их в очередь, откуда их берут воркеры

Арег-Coder Автор вопроса
Aleksander Melnichnikov
Ваше представление абсолютно верно. Можно сделать ...

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

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Чем acceptor'ы в томкате хуже? Точно так же приним...

Почитала, звучит как классический Nio, а спринг по-дефолту использует это режим? Ну и полагаю, что если в этом режиме заблокировать поток, то будет та же беда, что и в нетти

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Чем acceptor'ы в томкате хуже? Точно так же приним...

Да вы правы. Посмотрел с какого-то момента оно действительно стало так же. Async i/o и backpressure support.

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта