首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计一个可伸缩的网站监控基础设施

设计一个可伸缩的网站监控基础设施
EN

Software Engineering用户
提问于 2017-07-23 20:23:12
回答 2查看 352关注 0票数 1

我正在设计一个监控网站和应用程序的基础设施。其思想是构建一个应用程序,它以一定的间隔(30秒、1分钟、5分钟等)检查用户网站/应用程序。重要的是网站检查接近于给定的时间间隔。该基础设施的目标是拥有一个可扩展的基础设施,具有较高的正常运行时间,而不存在单一的故障点(如果可能的话)。一个99%在线时间的监视器是不可接受的。

因此,经过一些集思广益,我想出了以下的基础设施。

此图表包含基础结构的所有不同部分/应用程序。每个应用程序都在自己的机器上运行。

此时,经理委托者的申请风险很高。如果该应用程序已关闭,则如果其中一个员工委派者已关闭,则不能将网站移动到另一个委派方。

因此,我的问题是,这个基础设施是否足够可靠和可扩展,足以监控数千个网站。假设有足够的工人来做所有的监控。欢迎推荐!

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2017-07-23 20:52:35

考虑使用Actor模型的设计。

使用Actor模型,您可以有几个容错代理,每个代理都能够监视一个或多个网站。Actor可以在世界上任何地方的任何机器上执行;您所需要的只是一些硬件来运行它们。软件架构是由参与者自己决定的。因此,与其拥有专门用于特定任务的机器,不如将软件代理专用于可在任何通用机器上运行的特定任务。

这允许您从一台机器开始,根据需要进行扩展,只需添加更多的机器,甚至在“云中”中运行整个程序。一个演员甚至可以管理运行的参与者总数。

进一步阅读

维基百科的演员模型

Akka (Java中的Actor模型实现)

用于.NET框架的Akka

票数 1
EN

Software Engineering用户

发布于 2017-07-23 20:53:16

有几件事你可能需要考虑:

  • 工人的地理分布。这可能有助于确定停运是网站还是互联网。
  • 设计任务,以便员工可以继续工作,即使其委派者无法沟通。这样就消除了风险,因为委派者只需要交流任务更改。
  • 如何/在何处汇总响应。
  • 需要什么样的历史数据。这对于正常运行时间/性能统计是必要的。

我希望服务器至少在99.9%的情况下可用。只要尽量减少工人的规模,就有可能大幅度提高可用性。

如果您正在执行停机通知,则消息传递的即时性可能很重要。通常,每次中断只需要一个通知。考虑委托给一个奇数的工人,并使用法定人数来确定一个网站是否已经倒闭。

现有的系统已经在做这样的事情了。在开放源码方面,查看Icinga/Nagios。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/354319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档