
Maksim
05.10.2018
10:52:49
В 99,9999% случаев, если воркеры хэндлят хттп, то это сраный треш.
Я саксесс стори не видел ещё

%
05.10.2018
10:54:36
да это второй вопрос. хотелось бы не супервизорское решение для процессов.

Max
05.10.2018
10:54:40

Google

Maksim
05.10.2018
10:54:50
У тебя каша в бошке
В которой всё перемешалось

Max
05.10.2018
10:55:07
вообще не понимаю зачем в контейнер супервизор ставить

Sergey
05.10.2018
10:56:35
Как зачем, что бы юзать контейнер как виртуалку

%
05.10.2018
10:56:55
какую виртуалку?

Vitaliy
05.10.2018
10:57:21

%
05.10.2018
10:57:44
супервизор главный принцип докера нарушает, однако его рекомендуют ставить для запуска воркеров, к примеру

Sergey
05.10.2018
10:58:03

Max
05.10.2018
10:58:06

Vitaliy
05.10.2018
10:58:11

%
05.10.2018
10:58:14
попробую сейчас

Max
05.10.2018
10:59:20

Google

Sergey
05.10.2018
10:59:37
Есть ситуации когда рестарт воркера штука частая и не хочется накладных расходов на рестарт контейнера, но это не решение основной проблемы

Vitaliy
05.10.2018
11:00:12
что проще, управлять только контейнерами или управлять и контейнерами и еще и процессами внутри?

Max
05.10.2018
11:00:25

%
05.10.2018
11:00:37
нет. ничего не стоит

Anton
05.10.2018
11:00:50
Рр может гонять и без хттп
Но чисто как супервизор он бессмысленнен
Для Джобов на нем есть отдельный пакет

%
05.10.2018
11:01:32

Sergey
05.10.2018
11:01:52
короч - контейнеры это про изоляцию процессов (групп процессов, как например php-fpm со своими воркерами). Это не про виртуалки

Anton
05.10.2018
11:02:05
Хотя вообще можно и супервизор, но смысла не вижу

%
05.10.2018
11:02:06

Sergey
05.10.2018
11:02:27
ну и в целом системе плевать 1 контейнер и 10 процессов внутри (11 если с супервизором) или 10 контейнеров
есть конечно накладные расходы по памяти но они столь незначительны что ими можно пренебречь
но в целом все намного проще когда один "сервис" - один контейнер. Их проще потом скейлить, реплецировать, масштабировать, раскидывать по сервакам

%
05.10.2018
11:04:18
но не могу разобраться как правильно запускать процессы для обработки чего-либо. дело не в производительности или еще чем-то, а в не понимании темы вообще. действительно каша...

Anton
05.10.2018
11:04:26
Зато можно через него очередь балансить, на гошке общаться с брокером а на пхп выполнять
Пример есть в spiral/jobs, но он ещё не релизнут до стабильной версии

%
05.10.2018
11:04:56

Max
05.10.2018
11:05:03

Google

%
05.10.2018
11:05:04
спасибо! йоу!

Anton
05.10.2018
11:05:23
Докер тебе не будет балансировать сообщения, только сами контейнеры

%
05.10.2018
11:05:26
swarm в рамках одной машины уже не работает по-моему

Max
05.10.2018
11:06:30

Anton
05.10.2018
11:07:41
Он балансирует контейнеры с консюмерами, но у тебя же не по одному консюмеру в контейнере, на них тоже нужно раскидывать сообщения

Sergey
05.10.2018
11:08:09

%
05.10.2018
11:08:36

Sergey
05.10.2018
11:08:38

Anton
05.10.2018
11:09:02
Консьюмер = 1 воркер?

Sergey
05.10.2018
11:09:11
может быть 10 консюмеров - 10 контейнеров. или 100
можно роутить сообщения по топикам

%
05.10.2018
11:10:04
не вижу ничего про докер
вот собственно теперь про докер. я запускаю контейнер с коммандой "php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3" все? верно?

Sergey
05.10.2018
11:10:28
я может быть плохо понимаю о чем ты, но как по мне "отдельная тула которая там чето маршрутизирует" хотя твой брокер и так в состоянии это делать обычно... мне кажется это излишним

%
05.10.2018
11:10:54
ну это понятно
спасибо.

Sergey
05.10.2018
11:11:09
> sleep=3
а это че?

Google

f4rt~
05.10.2018
11:11:14

Anton
05.10.2018
11:11:39
Мы кажется о разном говорим) у меня в докере 1 консьюмер, но Джобы у него выполняют несколько воркеров

f4rt~
05.10.2018
11:11:39
а это че?
Worker Sleep Duration
When jobs are available on the queue, the worker will keep processing jobs with no delay in between them. However, the sleep option determines how long (in seconds) the worker will "sleep" if there are no new jobs available. While sleeping, the worker will not process any new jobs - the jobs will be processed after the worker wakes up again.
ларка чо уж

Anton
05.10.2018
11:11:43
Классический пул

Max
05.10.2018
11:11:47

Sergey
05.10.2018
11:12:00

Anton
05.10.2018
11:12:45
а смысл?
А смысл тогда вообще в многопоточности?)
1 родитель и несколько воркеров в зависимости от задачи

%
05.10.2018
11:13:07

Sergey
05.10.2018
11:13:09
А зачем мне многопоточность для воркеров?) мне многопроцессовоть там нужна

%
05.10.2018
11:13:16

Anton
05.10.2018
11:13:42
Да блин) воркер = процесс)

Sergey
05.10.2018
11:14:01
и контейнер = процесс, вот же совпадение

Max
05.10.2018
11:14:17

Anton
05.10.2018
11:14:48
Только по ресурсам скейтся оно по разному

Sergey
05.10.2018
11:14:49
Да блин) воркер = процесс)
проблема в том что если у тебя процессы скейлятся внутри контейнера - сложнее управлять ресурсами. Ну то есть пропадает часть выгоды контейнеров. А если у тебя скейлятся контейнеры - можно более грамотно автоскейлингом рулить

Anton
05.10.2018
11:14:50
Совсем

Google

Max
05.10.2018
11:14:57

Maksim
05.10.2018
11:15:01

Sergey
05.10.2018
11:15:09

Dmitry
05.10.2018
11:15:16
смысл есть если балансировать задачи по корутинам эффективнее, чем по процессам

Sergey
05.10.2018
11:15:29
треды тут нужны что бы пул корутин раскидывать по ядрам эффективно

Anton
05.10.2018
11:15:57
Я не говорю скейлить кол-во процессов в контейнере )

Dmitry
05.10.2018
11:16:02
ну корутины могут использовать треды

Anton
05.10.2018
11:16:07
Это глупо да
Но зачем в 1 контейнере гонять 1 процесс?)

Sergey
05.10.2018
11:16:32

Anton
05.10.2018
11:16:37
Ээээ
Неправда

Sergey
05.10.2018
11:16:44
что не правда?)

Maksim
05.10.2018
11:16:47
за тем же, зачем ставить между кроликом и пхп ещё проксю в виде го)

Sergey
05.10.2018
11:16:48
давай конкретику

Dmitry
05.10.2018
11:16:53
чтобы балансировать между нодами эффективно

Sergey
05.10.2018
11:17:05

Anton
05.10.2018
11:17:06
Ну ок, у тебя контейнеры не бесплатные, верно?₽

Sergey
05.10.2018
11:17:34

Maksim
05.10.2018
11:17:41

Dmitry
05.10.2018
11:17:47