设计模式监控分布式系统?

时间:2013-06-11 19:21:34

标签: design-patterns distributed-computing

我有一个分布式系统:12个应用程序在10个盒子上运行(每个盒子有大约8个核心)。我的应用程序是多线程的。

在一天中我的应用程序非常繁忙。延迟对我的工作至关重要。

鉴于这种情况,我有一个新的额外要求,我必须监视分布在这些应用程序中的一堆内存对象并生成一些报告(可能是网页或文本文件无关紧要)。

我正在寻找与监控工作相关的设计模式。困扰我的是,我不应该通过某些监视/观察者线程做任何令人讨厌的事情来引入任何延迟。如果它有所帮助,我现在主要是C ++,所以像共享内存等低级别的东西肯定在桌面上。

1 个答案:

答案 0 :(得分:6)

你的问题非常广泛!

以下是一些开始的想法:

  • Event driven architecture允许您反转消息流,并使异步工作流更容易。

  • EDA也适用于Event Sourcing州管理策略。

  • Message queues通常非常适合作为事件和消息的传输机制。它们通常遵循一些指定的性能特征,但您必须确定它们是否适合您的目的。

  • 如果您需要更高的速度,可以使用像ring buffer这样的无锁结构作为内存中队列,将主业务逻辑与报告逻辑分离。

    < / LI>

我意识到我的答案非常通用,但希望它会有所帮助。