1

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

这篇文章中了解到,每台服务器上的 Java VM 都可以支持很多线程。只是提到我不受语言的约束。

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

一个想法是创建一个主服务器,其中包含数千个要轮询的项目列表。它将其中一些传递给从属服务器进行轮询,同时从它们那里获取心跳。另一个是关于服务器相互共享索引范围(可能是 S3 中的文件)关于谁在处理哪些项目。我什至不确定它们中的任何一个是否有效。

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

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

4

1 回答 1

0

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

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

看看像RabbitMQ这样的底层消息路由服务。

于 2017-09-17T23:31:18.487 回答