powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как play работает без сервлетов?
17 сообщений из 42, страница 2 из 2
Как play работает без сервлетов?
    #39429651
Юрий321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80,

ну я вобщем не про скалу, а про клиент-сервер поверх http

а что, в скале выдумали свой свой собственный хттп и там теперь по другому?
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429670
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Юрий321dimonz80,

ну я вобщем не про скалу, а про клиент-сервер поверх http

а что, в скале выдумали свой свой собственный хттп и там теперь по другому?

У ТС вопрос был про асинхронность в Play Framework, т.е. с серверной стороны. А вы начали про клиентские штуки, которые немного не то.
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429671
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Юрий321dimonz80,

ну я вобщем не про скалу, а про клиент-сервер поверх http


Не нравится скала, вот про java)))
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429673
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80Юрий321dimonz80,

ну я вобщем не про скалу, а про клиент-сервер поверх http


Не нравится скала, вот про java)))


Упс! Поторопился )))
Не нравится скала, вот про java)))
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429749
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczquestioner,

Разговор опять сводится к "мне не понятно". Давай конкретные вопросы.

Есть клиент, есть сервер. Клиент шлёт запрос на сервер, сервер в новом потоке начинает обработку запроса. Зачем делать в это в новом потоке мне непонятно потому что все равно надо будет ждать когда задача в новом потоке закончится. Или асинхронность в другом чем то?
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429754
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
questionerсервер в новом потоке начинает обработку запроса. Зачем делать в это в новом потоке
сервер один, а запросов миллион.
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429770
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerИли асинхронность в другом чем то? 20349257
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429837
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
questionerBlazkowiczquestioner,

Разговор опять сводится к "мне не понятно". Давай конкретные вопросы.

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


Попробую рассказать...

Самый простой случай

Тривиальный сервер
0) Запускаем основной процесс/поток (main)
1) main cлушает порт
2) При соединении клиента работает с клиентом (читает и пишет в сокет)
3) Goto п.1

Такой сервер может обслуживать только одного клиента за раз. Остальные - в очередь.



Классический сервер
0) Запускает основной процесс/поток (main)
1) main cлушает порт
2) При соединении клиента форкает себя (как httpd или postgresql например) или создает thread (или берет из пула).
3) В новом созданном процессе/потоке работает с клиентом (читает и пишет в сокет)
4) параллельно п.3 основной поток (main) продолжает слушать порт пока не случится п.2 (goto п.1)

Такой сервер обслуживает пачку клиентов одновременно. Он по большому счету уже асинхронный.


Однако сейчас принято считать что асинхронный сервер это тот, который в потоке из п.2 ничего не ждет
а просто вычитывает данные из сокета и передает их для обработки в другой поток, который после обработки сам ответит клиенту.

Такой сервер работает приверно так:
0) Запускает основной процесс/поток (main)
1) main cлушает порт
2) При соединении клиента берет thread из пула
3) В полученном потоке вычитывает данные из сокета и передает из другому потоку (опционально полученному из другого пула), который будет тупить, ждать IO и в отдаленном будущем ответит клиенту. Сам же поток из п.2 сразу возвращается в пул для обслуживания других запросов
4) параллельно п.3 основной поток (main) продолжает слушать порт пока не случится п.2 (goto п.1)
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429905
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80Самый простой случай

Тривиальный сервер
0) Запускаем основной процесс/поток (main)
1) main cлушает порт
2) При соединении клиента работает с клиентом (читает и пишет в сокет)
3) Goto п.1

Такой сервер может обслуживать только одного клиента за раз. Остальные - в очередь.



А как будет поддерживаться очередь?

сервер либо ждёт подключения от клиента, либо, если таковое есть, занимается обработкой этого соединения и соответственно не может слушать

К
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429908
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80 Классический сервер
0) Запускает основной процесс/поток (main)
1) main cлушает порт
2) При соединении клиента форкает себя (как httpd или postgresql например) или создает thread (или берет из пула).
3) В новом созданном процессе/потоке работает с клиентом (читает и пишет в сокет)
4) параллельно п.3 основной поток (main) продолжает слушать порт пока не случится п.2 (goto п.1)

Такой сервер обслуживает пачку клиентов одновременно. Он по большому счету уже асинхронный.


В моём представлении всякие джетти/томкаты так и работают.
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429936
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
questionerdimonz80Самый простой случай

Тривиальный сервер
0) Запускаем основной процесс/поток (main)
1) main cлушает порт
2) При соединении клиента работает с клиентом (читает и пишет в сокет)
3) Goto п.1

Такой сервер может обслуживать только одного клиента за раз. Остальные - в очередь.



А как будет поддерживаться очередь?


ОС
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429946
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
questionerdimonz80 Классический сервер
0) Запускает основной процесс/поток (main)
1) main cлушает порт
2) При соединении клиента форкает себя (как httpd или postgresql например) или создает thread (или берет из пула).
3) В новом созданном процессе/потоке работает с клиентом (читает и пишет в сокет)
4) параллельно п.3 основной поток (main) продолжает слушать порт пока не случится п.2 (goto п.1)

Такой сервер обслуживает пачку клиентов одновременно. Он по большому счету уже асинхронный.


В моём представлении всякие джетти/томкаты так и работают.

Тогда непонятно, что непонятно))))
Так работают все TCP серверы. Пресловутая асинхронность добавляет лишь еще одни уровень распараллеливания,
чтобы быстрее высвобождать потоки, непосредственно обслуживающие соединения.
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39429952
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80Тогда непонятно, что непонятно))))
+1
ТС не play изучает, а работу контейнера.
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39430083
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimonz80questionerпропущено...


В моём представлении всякие джетти/томкаты так и работают.

Тогда непонятно, что непонятно))))
Так работают все TCP серверы. Пресловутая асинхронность добавляет лишь еще одни уровень распараллеливания,
чтобы быстрее высвобождать потоки, непосредственно обслуживающие соединения.

А play приложение крутится на чем? оно ведь тоже во что-то пакуется наверное и куда-то деплоится.

А как обычные сервлеты мешают этому дополнительному слою асинхронности?

Или что-то из коробки добавляется?
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39430108
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
questionerdimonz80пропущено...


Тогда непонятно, что непонятно))))
Так работают все TCP серверы. Пресловутая асинхронность добавляет лишь еще одни уровень распараллеливания,
чтобы быстрее высвобождать потоки, непосредственно обслуживающие соединения.

А play приложение крутится на чем? оно ведь тоже во что-то пакуется наверное и куда-то деплоится.

А как обычные сервлеты мешают этому дополнительному слою асинхронности?

Или что-то из коробки добавляется?


Play по дефолту никуда не пакуется. Play сам себе сервер. Там выше были ссылки с указанием, что используется под капотом (Netty или akka.http). При желании можно собрать war (есть плагин) для деплоя в сервлет-контейнере.

Сервлеты с версии 3 вроде как умеют в асинхронность.

Все эти серверы (как сервлет контейнеры так и и остальные) принципиально ничем не отличаются. Сначала пишем обработчик для запроса в виде колбека, сервлета, хендлера или как его там назовут авторы очередного фреймворка, мапим его на URL и все! Сервлет-контейнеры выделяются среди всего этого лишь наличием спецификации от Sun/Oracle.
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39430261
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerdimonz80пропущено...


Тогда непонятно, что непонятно))))
Так работают все TCP серверы. Пресловутая асинхронность добавляет лишь еще одни уровень распараллеливания,
чтобы быстрее высвобождать потоки, непосредственно обслуживающие соединения.

А play приложение крутится на чем? оно ведь тоже во что-то пакуется наверное и куда-то деплоится.

А как обычные сервлеты мешают этому дополнительному слою асинхронности?

Или что-то из коробки добавляется?

tomcat, jetty реализуют спецификацию servlet api. По сути спецификация это описание того как url мапится на код который должен выполниться и как туда данные передать и получить. Знаешь servlet api значит можешь сделать приложение которое будет работать на любом контейнере с поддержкой servlet api. Стандарт ёпта. Легче найти разрабов, ибо тыщи их.
Почти каждый в этой ветке наверняка работал с сервлетами.

разработчики play сначала подумали а затем и вслух сказали " Мы сами себе господа " и написали свой сервер со своим api не забыв упомянуть о том что их сервер ассинхронный. Хочешь написать веб приложение play То развернуть получится только на их сервере ибо только он знает этот api
...
Рейтинг: 0 / 0
Как play работает без сервлетов?
    #39430274
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ассинхронность это просто фича отчего бы не упомянуть ежели она имеется. В последних версиях сервелетов это пофиксили.
Как бэ не мешает и даже в некоторых случаях удобна.
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Как play работает без сервлетов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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