我之前问过一个关于延迟处理事件的问题:Grails non time based queuing .我开始使用 rabbitmq 插件:http://grails.org/plugin/rabbitmq ,事情一直很好。
现在我看到我有一些新的选择,我总是试图搞砸一件好事。有一个新插件,rabbitmq-tasks 插件,我不认为我完全理解它带来的新功能:http://grails.org/plugin/rabbitmq-tasks .此外,新的 grails 平台核心插件似乎有一个完全不同的方法,围绕 grails.events
http://grailsrocks.github.com/grails-platform-core/guide/events.html .
这三种处理任务的工具之间有哪些重要区别?在选择其中一个而不是另一个时,哪些考虑可能是重要的?
最佳答案
我也在尝试平台核心的事件总线。
这实际上是一个很好的问题,我想你已经找到了答案。
如我错了请纠正我!
如果我正确理解了平台核心的事件总线,区别在于事件总线仅在本地工作,并将事件委托(delegate)给同一主机上的监听器。 RabbitMQ 是一个消息传递框架。因此,您有一个服务器正在排队消息并将它们委托(delegate)给监听器,即使它位于另一台主机上。对于分布式系统,使用 RabbitMQ 会更舒服,因为使用事件总线将无法正常工作。
您将使用事件总线来解耦您的模块/组件。
关于events - Grails: rabbitmq plugin vs rabbitmq-tasks plugin vs Plugin Platform Core Events Bus API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12829894/