1

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

4

1 回答 1

0

考虑反转信息流。让 App A 在发生变化时告诉 App B,可能通过使用消息队列的消息/事件。然后,应用 B 可以保留其自己的应用 A 数据的高可用性版本,并快速有效地查询它,而无需跨越线路或流程边界。这种高可用的存储可以简单地在内存中,或者某种高性能的键值存储。

于 2014-01-04T15:20:52.513 回答