[设计]:具有数千个轮询器的分布式应用程序

时间:2017-09-16 07:05:14

标签: architecture distributed poller

由于每次我需要大多数更新数据的应用程序都不会发送更改通知,因此我需要每秒轮询一次以获取更新。由于我需要每秒钟获得更新的数千个项目,我想到设计一个包含数千个轮询器的应用程序[当然,我欢迎您提出更好的解决方案]。

this post了解每台服务器上的Java VM可以支持很多线程。只是提到我不受语言约束。

现在,我正在试图弄清楚如何使其可扩展并使其在分布式环境中工作。

一个想法是创建一个主服务器,其中包含要轮询的数千个项目的列表。它将其中的一些传递给从属服务器进行轮询,同时从中获取心跳。另一个是关于服务器彼此交谈共享索引范围(可能是S3中的文件),彼此之间关于谁在处理哪些项目。我甚至不确定他们中是否有人工作过。

我找不到任何可以帮助我的框架。或者作为新手,可能我不知道该找什么。

你的建议是什么?任何指针都会有所帮助。真的很感激。

1 个答案:

答案 0 :(得分:0)

轮询不会超出特定点,您需要向多个消费者扩展(而不是向上)。您将不得不考虑一个被动(pub-sub)模型,它允许您在需要更多吞吐量时无缝地向应用程序添加更多消费者。

您的主服务器可以在状态更改时发布事件,当消费者正在收听这些事件时,他们可以选择一个事件并在他们感兴趣时对其进行处理。消费者可以过滤他们的订阅,只接收他们感兴趣的消息的通知。

查看RabbitMQ之类的内容作为基础邮件路由服务。