我什么时候应该从Symfony EventDispatcher切换到RabbitMQ(任何* MQ库)?

时间:2019-03-20 06:50:36

标签: symfony events rabbitmq event-dispatching symfony-eventdispatcher

我目前正在考虑的是,在我们的平台上,用户生成的事件数量每天都在增加(呼叫开始,呼叫结束,呼叫记录准备好,用户被阻止等),因此何时应该是正确的时间要从Symfony EventDispatcher切换到更高效,可扩展的功能?

如果我写错了,请纠正我:Symfony EventDispatcher将每个订户加载到服务器RAM中并保留它,直到处理请求为止?如果是,则意味着2个生成的事件将占用RAM中内存的2倍(所有订户类的总和),这将导致我增加服务器RAM,并导致我支付更多费用,而不是使用有效的事件处理方法(库,系统架构等。

1 个答案:

答案 0 :(得分:2)

IMHO切换到MQ的主要原因应该是代码执行时间长。

如果您有很多事件(例如,对数据库的操作),那么执行时间会增加。

事件在request-> response内部触发,使用MQ可以将其放置在应用程序之外,这意味着您将拥有更好的执行时间,但是所有事件操作都将在“后台”工作-因此它将不会是“实时”。

就我个人而言,我从未见过直接由订户/听众直接使用的高内存,即使在某些大型项目中也是如此。