【问题标题】:Design pattern to monitor distributed system?监控分布式系统的设计模式?
【发布时间】:2013-06-11 19:21:33
【问题描述】:

我有一个分布式系统:12-14 个应用程序在 10 个机器上运行(每个机器大约有 8 个内核)。我的应用程序是大量多线程的。

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

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

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

【问题讨论】:

  • 在搜索同一类事物的模式时遇到了这个问题——低开销/延迟监控、C++、多线程(但不是分布式)。你最后选择了什么,你有什么建议吗?

标签: design-patterns distributed-computing


【解决方案1】:

您的问题非常广泛!

以下是一些初步想法:

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

  • EDA 还可以很好地与 Event Sourcing 策略一起用于状态管理。

  • Message queues 通常非常适合作为事件和消息的传输机制。它们通常遵循某些特定的性能特征集,但您必须查看它们是否足以满足您的目的。

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

我意识到我的回答非常笼统,但希望它会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2023-01-05
    • 2018-03-10
    • 1970-01-01
    相关资源
    最近更新 更多