
Dmitriy
13.12.2017
07:24:22
теперь симфу нельзя будет упрекнуть в тормознутости?
ранее это был один из основных аргументов "против"

Sergey
13.12.2017
07:25:21
ну судя по бенчмаркам 4.0 довольно вкусная по сравнению с 3.4

Bohdan
13.12.2017
07:26:49
я думаю, там главное последний пункт в списке про скорость
я аж предчувствую бомбежку в твиттере и слова Тейлора о том, что сайт куплен и вообще все фигня

Google

Dmitriy
13.12.2017
07:27:24
я пару своих консольных команд перевел на 4ку, заметил что по памяти примерно на 20% меньше жору
да Тейлор неадекват или медийный образ такой у него )

Bogdan
13.12.2017
07:35:16
подскажите плс, когда внес изменения в конфиги, нужно докер контейнер билдить?
не нужно, подхватило

Gaiaz Iusipov
13.12.2017
07:47:15

Sergey
13.12.2017
07:47:39
совсем разные проблемы

Dmitriy
13.12.2017
07:47:59
говорю как есть

Sergey
13.12.2017
07:48:00
проблема с "висящие sql запросы" решается
а вот 50мс оверхед от симфони ты никуда не денешь

Dmitriy
13.12.2017
07:49:05
Очень часто я слышал следующее
Вопрос: Почему вы не выбрали симфони?
Ответ:
1. Порог входа высокий, сложная слишком
2. Тормознутая
и судя по тому куда двигается симфа и ее дока - они как раз с этими вопросами и разбираются в первую очередь

Gaiaz Iusipov
13.12.2017
07:50:02

Dmitriy
13.12.2017
07:50:34
фалкон не нужен

Google

Sergey
13.12.2017
07:50:38
ну как сказать не смертельно
если у тебя скажем цепочка из 4х сервисов которые надо вызвать последовательно
и на каждом звене по +50мс
помимо времени которое нужно для обработки
то 200мс это довольно много выйдет

Gaiaz Iusipov
13.12.2017
07:51:31
А зачем симфони в такой цепочке

Sergey
13.12.2017
07:52:26

Dmitriy
13.12.2017
07:53:18
смотря какие требования к времени выполнения всей цепочки

Gaiaz Iusipov
13.12.2017
07:53:35

Sergey
13.12.2017
07:53:36
а в этом случае оверхэда в 50 милисекунд не будет
ну а если ты решил мутить микросервисы и у тебя куча зависимостей между ними и каждый микросервис на ларавели какой с оверхэдом в 100 милисекунд... ну сам себе злой буратино)
опять же если нужно будет - уберешь оверхэд

Sergey
13.12.2017
07:55:32

Sergey
13.12.2017
07:55:56
не всегда это возможно
единственная причина по которой можно придумать кейс что "не возможно" - обратная совместимость и отсутствие контроля за частью сервисов

Sergey
13.12.2017
07:56:10
скорее это создание лишней сложности

Sergey
13.12.2017
07:56:21

Sergey
13.12.2017
07:56:37
если тебе нужна синхронная обработка

Google

Sergey
13.12.2017
07:56:44
то через pub/sub лепить rpc это сложно

Sergey
13.12.2017
07:57:02
начнем с того зачем ты вообще изначально начал пилить распределенное приложение
это уже сложно, и "лепить rpc на pub/sub" по сравнению со всеми остальными вариантами - это уже не так сложно как может показаться
раз уж решил нарушить первое правило распределенных приложений (не писать их если можешь) - то значит надо)

Антон
13.12.2017
07:59:20
сам ларавельщик, щас симфони изучаю

Sergey
13.12.2017
07:59:43
я не очень понимаю что ты имеешь ввиду

Антон
13.12.2017
07:59:53
User, Order

Sergey
13.12.2017
08:00:06

Антон
13.12.2017
08:00:10
и пошел фигачить все там. Active Record
порог входа действительно ниже

Sergey
13.12.2017
08:00:46
конкретно в моем кейсе щас цепочка из 3х сервисов, но будет 4 в будущем
запрос в веб -> сообщение ушло к воркеру -> ушло к другим воркерам -> вызывается сервис агрегатор -> агрегатор дергает другие сервисы конкретных провайдеров
вот то что "ушло к воркеру и ушло к другим воркерам" это станет 4м сервисом в цепочке
некоторые провайдеры дают SDK на jvm, и чтобы оно не подтекало и не выдавало фокусов, они все работают в изоляции в разных приложухах

Антон
13.12.2017
08:01:08
Евенты понятные, Service Container понятный. Нет миллиона yaml конфигов

Sergey
13.12.2017
08:01:12
порог входа действительно ниже
надо кривую обучения использовать и порог при котором сделать что-то более сложное будет требовать намного больше знаний...
хотя у симфони те же проблемы)

Антон
13.12.2017
08:01:40
ну когда ты начинаешь, ты же не осознаешь такие вещи
берешь то что смог

Sergey
13.12.2017
08:02:21

Антон
13.12.2017
08:02:24
почему kassir.ru, citilink, etc… не на симфони? крупные проекты

Google

Bohdan
13.12.2017
08:02:49
не осилили :D

Sergey
13.12.2017
08:02:49

Антон
13.12.2017
08:02:58
ну

Bohdan
13.12.2017
08:02:59
на самом деле - это все вкус и цвет

Sergey
13.12.2017
08:03:13

Sergey
13.12.2017
08:03:24
любой проект можно реализовать как угодно и на чем угодно. Дальше весь вопрос в стоимости поддержки и масштабировании (как с точки зрения производительности системы так и с точки зрения производительности труда)

Антон
13.12.2017
08:03:52
в ларавел много чего из коробки, не нужно столько бандлов. Jobs, Queues, JsonResponse, хуяк хуяк и вродакшен

Bohdan
13.12.2017
08:03:56
у меня коллега пилит на ларе систему, позволяющую лепить sql-запросы через интерфейс
причем запросы там дикие
приделал dbal и понеслась - на лару вроде не жалуется

Sergey
13.12.2017
08:04:04

Admin
ERROR: S client not available

Sergey
13.12.2017
08:04:05
do something -> something patially done -> something other partially done -> aggregated -> done

Bohdan
13.12.2017
08:04:15
зануда мод он: JsonResponse в симфе есть искаропки

Sergey
13.12.2017
08:04:47
а скажем такие вещи как контейнер зависимостей на данный момент, начиная с sf 3.3, сильно выигрывают у ларки

Sergey
13.12.2017
08:05:44
а завязывать целую цепочку на одну шину это не то

Sergey
13.12.2017
08:06:24

Google

Sergey
13.12.2017
08:06:33
если шина распределенная и не является единой точкой отказа - не вижу проблем)

Sergey
13.12.2017
08:07:25
окей, как вышестоящий сервис узнает о таймаутах, ошибках, как он будет дожидаться ответа?

Sergey
13.12.2017
08:07:27
да и шина то сама по себе тупая и никаких решений не принимает
окей, как вышестоящий сервис узнает о таймаутах, ошибках, как он будет дожидаться ответа?
еще раз схему опиши. У тебя сейчас есть скажем web который получает http запрос и запускает цепочку действий. Ну то есть "обработай что-то". Обработку действий мы можем представить в виде конвеера, так? ну мол есть этап A, B и C. После того как C отработал - надо что бы WEB отрепортовал пользователю что все гуд. Если на любом этапе произошла ошибка - надо отрепортовать что все не гуд.
так?

Sergey
13.12.2017
08:09:36
почти, только данные из C нужны в B, а из B нужны в A
конвеер в обратную сторону еще должен ехать в общем

Sergey
13.12.2017
08:10:22

Sergey
13.12.2017
08:10:54
а там изменений и нет, там опрос данных

Sergey
13.12.2017
08:11:07
ну мол, вот A все сделал и данные отправил в B, B зафэйлился - зачем об этому знать A?

Sergey
13.12.2017
08:11:35
чтобы вышла обработка A(B(C(data)))

Sergey
13.12.2017
08:12:00

Sergey
13.12.2017
08:12:02
если А это тот что с юзером связан, то юзеру как бы надо показать что у нас не все окей

Sergey
13.12.2017
08:12:31


Sergey
13.12.2017
08:12:49
давай упростим цепочку
есть веб, которому нужны результаты чтобы показать юзеру. это либо результаты проверки ценников, либо ошибки
есть шлюз, который опрашивает нужных провайдеров по ценникам
есть прокси апишка "трололо", которая выступает в роли провайдера, поверх какого-нибудь замудреного SDK
веб обращается к шлюзу с списком продуктов у которых нужно узнать ценник. шлюз определяет что часть продуктов относится к провайдеру "трололо"
трололо возвращает данные в своем формате в ответ шлюзу. шлюз эти данные колбасит в общий формат и возвращает вебу. веб показывает ценники
в случае ошибки трололо мы показываем конкретную ошибку(креденшиалы не подходят, провайдер недоступен и прочие ошибки которые нам возвращают из вне), эту ошибку передаем обратно шлюзу, шлюз знает че делать с этой ошибкой и в определенном виде отдает ее обратно в веб, веб показывает юзеру что конкретно пошло не так

Sergey
13.12.2017
08:19:12


Sergey
13.12.2017
08:20:01
хттп ошибками

Sergey
13.12.2017
08:22:14
rpc на rabbitmq делал когда-нибудь?)