Когда мне следует перейти с Symfony EventDispatcher на RabbitMQ (любая библиотека * MQ)? - PullRequest
0 голосов
/ 20 марта 2019

В настоящее время я думаю о том, что на нашей платформе число событий, генерируемых пользователями, увеличивается каждый день (звонок начался, звонок завершен, запись звонка готова, пользователь заблокирован и т. Д.), Поэтому , когда должно быть подходящее время переключиться с Symfony EventDispatcher на что-то более эффективное, масштабируемое?

Поправьте меня, пожалуйста, если я не прав: Symfony EventDispatcher загружает каждого подписчика в оперативную память сервера и удерживает его до тех пор, пока запрос не будет обработан? Если да, это означает, что 2 сгенерированных события будут занимать 2x (сумма всех классов подписчиков) памяти в ОЗУ, что приведет меня к увеличению ОЗУ сервера и приведет к тому, что я буду платить больше вместо использования эффективных методов обработки событий (libs, архитектура системы и т. д.).

1 Ответ

2 голосов
/ 20 марта 2019

ИМХО основной причиной переключения на MQ должно быть большое время выполнения кода.

Если у вас много событий (например, с операциями над базой данных), тогда ваше время выполнения увеличивается.

События запускаются внутри запроса-> ответа, и с помощью MQ вы можете поместить его вне своего приложения, это означает, что у вас будет лучшее время выполнения, но все операции с событиями будут работать "в фоновом режиме" - такон не будет «в реальном времени».

Лично я никогда не видел большого использования оперативной памяти, которое приходит напрямую от подписчиков / слушателей - даже в некоторых крупных проектах.

...