用于在两个应用之间交换数据的数据库或消息队列

时间:2014-01-04 12:09:39

标签: database message-queue data-exchange

我有一个设计问题。 我有一个应用程序(让我们称之为应用程序A)从系统收集统计信息,通过定期轮询系统中的每个组件。 我有第二个应用程序(应用程序B)应该做出一些决定并将它们强制执行到同一系统中,应用程序B正在从中收集统计信息。对于决策过程,应用B需要来自应用A收集的统计信息中的一些信息。 因此,在某些时刻(这将是每秒10-100次),应用B向应用A发出请求以获取一些信息(即一些关于系统的最新统计信息)。 从app A到app B实现这种信息交换的最佳解决方案是什么? 我想到了两个解决方案:1)使用消息队列(RabbitMQ)的RPC式解决方案 2)基于数据库的解决方案,有一个表格,其中应用程序A发布最新的信息,应用程序B在需要时读取它。 请提供一些见解,了解这两者中是否有任何一个能够成为一个好的解决方案。欢迎任何其他建议。 谢谢!

1 个答案:

答案 0 :(得分:0)

考虑扭转信息流。让App A在某些事情发生变化时告诉App B,可能是通过使用消息队列的消息/事件。然后,应用B可以保留它自己的高可用版本的App A数据,并快速有效地查询它,而不会跨越线路或进程边界。这个高度可用的商店可能只是在内存中,或某种高性能的键值存储。