@symfony_php

Страница 200 из 1418
Sergey
29.04.2017
13:48:07
если ляжет мастер процесс - ляжет все

потому мастер процесс не должен делать вообще ничего

и все делигировать воркерам

тогда шанс падения будет существенно ниже

Google
Sergey
29.04.2017
13:48:32
чем тупее тем лучше

но не в этом дело

дело в том что php-pm общается с воркерами, а в моей схеме есть сферический сервер в вакууме (не обязательно на php) который умеет хранить очередь запросов

и ждет пока какой-то воркер возьмется его обрабатывать

направление взаимодействия в другую сторону, легко делать zero-downtime деплойменты

не надо делать супервизор - можно юзать любой готовый

Aleh
29.04.2017
13:50:03
короч тебе не нравится мастер процесс на пыхе?)

Sergey
29.04.2017
13:50:05
например я планирую юзать тупо docker демон как супервизор

мне не нравится тот факт что у процесса смешана зона ответственности, он и процессами рулит и http парсит

ну и я хочу go потыкать

как раз задачка

Aleh
29.04.2017
13:51:17
ну php-fpm также работает)

Google
Sergey
29.04.2017
13:51:18
но мне больше всего нравится в этой схеме то, что у тебя этот вот http сервер может быть на одной машине

а воркеры на другой

Aleh
29.04.2017
13:51:39
да

Sergey
29.04.2017
13:51:42
а моя штука будет по другому

между http и приложением будут ходить тупо psr-7 запросы/ответы

без http

Aleh
29.04.2017
13:52:22
сериалайзить будешь просто?

Sergey
29.04.2017
13:52:30
ну тип того, еще не уверен на 100%

это детали

ну и еще мне нравится идея этой "очереди" запросов

но я на 100% не уверен потому вбрсил сюда)

давай лучше придумай почему мой вариант говно

Aleh
29.04.2017
13:53:56
сложна

Sergey
29.04.2017
13:55:01
ну пока существенный минус это то что это все еще два разных контейнера

ну то есть я не могу тупо завести один контейнер с приложением и не париться

всеравно нужно что-то сверху что будет http обрабатывать

модель работы та же что у php-fpm но с очередью запросов и возможностью воркерам самим существовать и рулить тем как они живут

вечно, умирают после запроса, умирают после 10-ти запросов

еще из минусов - если процесс будет умирать после каждого запроса, то это будет вынуждать "рождать" процессы (то что фиксит php-fpm)

Google
Sergey
29.04.2017
13:58:18
плюс - штуки вроде "поработать после респонса" появляются автоматически

минус - php неудобно профайлить

надо бенчмарки подумать сделать

ну мол fpm vs symfony cli

если выхлоп будет и будет сильный - стоит имплементить

p.s. php-pm требует php-cgi которого нет официально в докерах и с php-cgi плохо работает opcache/apcu - не юзает шаред мемори

Sergey
29.04.2017
14:24:02
а зачем тебе опкеш для cli?

Sergey
29.04.2017
14:26:07
ну так... хотелось как-то получить буст от общей шаред мемори но я так понял что этого не получится

ну там буферы для строк всякие

но это только в fpm судя по всему

надо погонять бенчмарки короч

бо мне лично интересно

Sergey
29.04.2017
14:33:19
еще можно uwsgi попробовать

Алексей
29.04.2017
14:45:38
@fes0r Мне подумалось, что было бы круто такой демон, который форвардит воркерам сделать модулем nginx.

Ну, одну из реализаций демона. Чтобы nginx готовил объекты под PSR-7 и в приложение отдавал.

Sergey
29.04.2017
14:47:39
https://hub.docker.com/r/devtheops/php7-uwsgi/

вот еще интересный подход

для тех кто не хочет тащить nginx/php-fpm

ну мол все приложение в одном контейнере

особенно полезно тем кто хочет деплоиться на aws ecs и юзать тупо лоад балансер

Google
Sergey
29.04.2017
14:53:56
почему просто не взять spring boot, который собирается в одну jar вместе со встроенным веб сервером и без всякого головняка?)

Sergey
29.04.2017
14:54:16
а переписывать текущее приложение под kotlin как-то не удобно... хотелось бы но чет лень

Sergey
29.04.2017
14:54:52
а как ты через очереди будешь хендлить запросы?

Sergey
29.04.2017
14:56:17
в смысле?

ну там не совсем очереди

скорее отложенная обработка... типа как лоток в конвеере - туда складываются запросы и ждут что положат ответ

Sergey
29.04.2017
14:57:24
ну я так понял будут консьюмеры обычные, которые будут с поднятыми контейнерами и при получении меседжей будут вызывать метод кернела и потом ответ обратно пихать

Sergey
29.04.2017
14:57:26
воркер подрубается, забирает запрос, обрабатывает и ложит ответ как сигнал о том что все хорошо

Admin
ERROR: S client not available

Sergey
29.04.2017
14:58:12
ну эт уже такое. хоть сокетами)

Sergey
29.04.2017
14:58:53
ну по сути это и есть сокетами, просто с удобной оберткой

Sergey
29.04.2017
14:58:55
я правда хз как оно по памяти будет

Sergey
29.04.2017
14:59:02
что "оно"?

Sergey
29.04.2017
14:59:11
обработка запроса

и еще ж следить нужно за всякими доктринами, чтобы вызывались очистки uow после запроса

Sergey
29.04.2017
15:00:08
ну вот с этим особо проблем нет

ну мол после каждого респонса проверять открыт ли коннекшен (вдруг закрылся) и ресетить entity manager

Google
Sergey
29.04.2017
15:00:51
флашить всякие монологи

свифтмэйлеры

следить что бы requestStack был пустым

чистить TokenStorage

что там еще может подтекать

сессии отрубить к чертям

Boris
29.04.2017
16:24:49
во вы замороченные =) Сергей а с чем связана цель этих ново велосипедов? задача такая встала или просто ради эксперементов?

Sergey
29.04.2017
16:39:29
все ради скорости)

Алексей
29.04.2017
16:46:14
во вы замороченные =) Сергей а с чем связана цель этих ново велосипедов? задача такая встала или просто ради эксперементов?
Ну сейчас в PHP почти всё работает так, что дохнет после каждого запроса и бутстрапится при каждом новом. Хотя уже давно практически все языки-конкуренты поднимают процесс, который обрабатывает запросы и не выгружается из памяти необходимые данные между ними.

Sergey
29.04.2017
16:46:54
Да, любопытно что можно выжать из php

Алексей
29.04.2017
16:48:55
Плюс тот же Symfony считают одним из самых медленных фреймворков. Хотя в других языках есть и более тяжёлые решения, просто они не перезапускаются постоянно.

Sergey
29.04.2017
17:17:21
симфони сам по себе если ты выкинешь все что там не надо очень даже шустрый

или например взять ту же доктрину - если ты юзаешь свои гидраторы ты можешь выборки ускорить раза так в 2-3

Алексей
29.04.2017
17:18:02
Ну вот флекс обещает упростить эту процедуру :)

Sergey
29.04.2017
17:18:26
Ну вот флекс обещает упростить эту процедуру :)
ну оно и сейчас не особо муторно на самом деле)

Sergey
29.04.2017
17:22:45
берешь и выкидываешь

потом удаляем всякие ненужные листенеры

Sergey
29.04.2017
17:23:12
твиг)

Sergey
29.04.2017
17:23:19
твиг я оставил для profiler-а

Страница 200 из 1418