|
|
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
dimonz80, ну я вобщем не про скалу, а про клиент-сервер поверх http а что, в скале выдумали свой свой собственный хттп и там теперь по другому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 08:01 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
Юрий321dimonz80, ну я вобщем не про скалу, а про клиент-сервер поверх http а что, в скале выдумали свой свой собственный хттп и там теперь по другому? У ТС вопрос был про асинхронность в Play Framework, т.е. с серверной стороны. А вы начали про клиентские штуки, которые немного не то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 08:34 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
Юрий321dimonz80, ну я вобщем не про скалу, а про клиент-сервер поверх http Не нравится скала, вот про java))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 08:35 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
dimonz80Юрий321dimonz80, ну я вобщем не про скалу, а про клиент-сервер поверх http Не нравится скала, вот про java))) Упс! Поторопился ))) Не нравится скала, вот про java))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 08:37 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
Blazkowiczquestioner, Разговор опять сводится к "мне не понятно". Давай конкретные вопросы. Есть клиент, есть сервер. Клиент шлёт запрос на сервер, сервер в новом потоке начинает обработку запроса. Зачем делать в это в новом потоке мне непонятно потому что все равно надо будет ждать когда задача в новом потоке закончится. Или асинхронность в другом чем то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 09:55 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
questioner, questionerсервер в новом потоке начинает обработку запроса. Зачем делать в это в новом потоке сервер один, а запросов миллион. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 09:58 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
questionerИли асинхронность в другом чем то? 20349257 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 10:09 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
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) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 11:03 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
dimonz80Самый простой случай Тривиальный сервер 0) Запускаем основной процесс/поток (main) 1) main cлушает порт 2) При соединении клиента работает с клиентом (читает и пишет в сокет) 3) Goto п.1 Такой сервер может обслуживать только одного клиента за раз. Остальные - в очередь. А как будет поддерживаться очередь? сервер либо ждёт подключения от клиента, либо, если таковое есть, занимается обработкой этого соединения и соответственно не может слушать К ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 11:52 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
dimonz80 Классический сервер 0) Запускает основной процесс/поток (main) 1) main cлушает порт 2) При соединении клиента форкает себя (как httpd или postgresql например) или создает thread (или берет из пула). 3) В новом созданном процессе/потоке работает с клиентом (читает и пишет в сокет) 4) параллельно п.3 основной поток (main) продолжает слушать порт пока не случится п.2 (goto п.1) Такой сервер обслуживает пачку клиентов одновременно. Он по большому счету уже асинхронный. В моём представлении всякие джетти/томкаты так и работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 11:54 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
questionerdimonz80Самый простой случай Тривиальный сервер 0) Запускаем основной процесс/поток (main) 1) main cлушает порт 2) При соединении клиента работает с клиентом (читает и пишет в сокет) 3) Goto п.1 Такой сервер может обслуживать только одного клиента за раз. Остальные - в очередь. А как будет поддерживаться очередь? ОС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 12:13 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
questionerdimonz80 Классический сервер 0) Запускает основной процесс/поток (main) 1) main cлушает порт 2) При соединении клиента форкает себя (как httpd или postgresql например) или создает thread (или берет из пула). 3) В новом созданном процессе/потоке работает с клиентом (читает и пишет в сокет) 4) параллельно п.3 основной поток (main) продолжает слушать порт пока не случится п.2 (goto п.1) Такой сервер обслуживает пачку клиентов одновременно. Он по большому счету уже асинхронный. В моём представлении всякие джетти/томкаты так и работают. Тогда непонятно, что непонятно)))) Так работают все TCP серверы. Пресловутая асинхронность добавляет лишь еще одни уровень распараллеливания, чтобы быстрее высвобождать потоки, непосредственно обслуживающие соединения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 12:17 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
dimonz80Тогда непонятно, что непонятно)))) +1 ТС не play изучает, а работу контейнера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 12:19 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
dimonz80questionerпропущено... В моём представлении всякие джетти/томкаты так и работают. Тогда непонятно, что непонятно)))) Так работают все TCP серверы. Пресловутая асинхронность добавляет лишь еще одни уровень распараллеливания, чтобы быстрее высвобождать потоки, непосредственно обслуживающие соединения. А play приложение крутится на чем? оно ведь тоже во что-то пакуется наверное и куда-то деплоится. А как обычные сервлеты мешают этому дополнительному слою асинхронности? Или что-то из коробки добавляется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 13:40 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
questionerdimonz80пропущено... Тогда непонятно, что непонятно)))) Так работают все TCP серверы. Пресловутая асинхронность добавляет лишь еще одни уровень распараллеливания, чтобы быстрее высвобождать потоки, непосредственно обслуживающие соединения. А play приложение крутится на чем? оно ведь тоже во что-то пакуется наверное и куда-то деплоится. А как обычные сервлеты мешают этому дополнительному слою асинхронности? Или что-то из коробки добавляется? Play по дефолту никуда не пакуется. Play сам себе сервер. Там выше были ссылки с указанием, что используется под капотом (Netty или akka.http). При желании можно собрать war (есть плагин) для деплоя в сервлет-контейнере. Сервлеты с версии 3 вроде как умеют в асинхронность. Все эти серверы (как сервлет контейнеры так и и остальные) принципиально ничем не отличаются. Сначала пишем обработчик для запроса в виде колбека, сервлета, хендлера или как его там назовут авторы очередного фреймворка, мапим его на URL и все! Сервлет-контейнеры выделяются среди всего этого лишь наличием спецификации от Sun/Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 13:56 |
|
||
|
Как play работает без сервлетов?
|
|||
|---|---|---|---|
|
#18+
questionerdimonz80пропущено... Тогда непонятно, что непонятно)))) Так работают все TCP серверы. Пресловутая асинхронность добавляет лишь еще одни уровень распараллеливания, чтобы быстрее высвобождать потоки, непосредственно обслуживающие соединения. А play приложение крутится на чем? оно ведь тоже во что-то пакуется наверное и куда-то деплоится. А как обычные сервлеты мешают этому дополнительному слою асинхронности? Или что-то из коробки добавляется? tomcat, jetty реализуют спецификацию servlet api. По сути спецификация это описание того как url мапится на код который должен выполниться и как туда данные передать и получить. Знаешь servlet api значит можешь сделать приложение которое будет работать на любом контейнере с поддержкой servlet api. Стандарт ёпта. Легче найти разрабов, ибо тыщи их. Почти каждый в этой ветке наверняка работал с сервлетами. разработчики play сначала подумали а затем и вслух сказали " Мы сами себе господа " и написали свой сервер со своим api не забыв упомянуть о том что их сервер ассинхронный. Хочешь написать веб приложение play То развернуть получится только на их сервере ибо только он знает этот api ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 15:39 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39429952&tid=2123021]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 388ms |

| 0 / 0 |
