【发布时间】:2011-02-11 05:11:04
【问题描述】:
我将开发一个系统,该系统将涉及一个数据采集服务器,每次采集都将填满一行。我还需要能够通知用户应用程序何时获取了新数据。
根据我的阅读,将数据库用作消息队列并不是一个好主意,反之亦然,但我想知道是否可以同时使用这两者?
采集应用程序可以将新行添加到数据库中,然后通知消息系统中的侦听器。这会是此类系统的最佳方法吗?会不会太复杂?是否有已经实现了这一点的设计模式?
【问题讨论】:
-
@CookieOfFortune- 我正在努力解决同样的问题。你有没有文章指出为什么要使用消息队列而不是数据库?
-
伙计,这个问题是很久以前的问题了。我认为我从中得出的观点是“事件”和“持久性”应该分开。如果您愿意,您可以使用数据库来实现事件,但您应该在概念上保持独立于存储。仅使用消息具有优势,因为您的流程可以在没有状态的情况下运行。这可以使您的代码更简单(特别是如果您想并行化它)。在使用消息队列方面,它们专门用于事件。这意味着它们可能会有更好的性能并允许更复杂的消息传递方案。
标签: database message-queue data-acquisition