簡體   English   中英

[設計]:具有數千個輪詢器的分布式應用程序

[英][Design]: A distributed application with thousands of pollers

由於我每次都需要最新數據的應用程序不會發送更改通知,因此我需要每秒輪詢一次以獲得更新。 由於每秒都有成千上萬的項目需要我進行更新,因此我想到了設計具有成千上萬個輪詢器的應用程序(當然,我歡迎您提出更好的解決方案的建議)。

這篇文章中知道,每台服務器上的Java VM可以支持很多線程。 只是說我不受語言的約束。

現在,我試圖找出如何使其可擴展並使其在分布式環境中工作。

一個想法是創建一個主服務器,其中包含要輪詢的數千個項目的列表。 它會將其中一些傳遞給從屬服務器進行輪詢,同時從它們獲取心跳。 另一個是關於服務器彼此交談,共享關於誰在處理哪些項目的索引范圍(可能是S3中的文件)。 我什至不確定他們中的任何一個是否也能正常工作。

我找不到任何可以幫助我解決問題的框架。 或者作為新手,可能我不知道要尋找什么。

您的建議是什么? 任何指針都會有所幫助。 真的很感激。

輪詢不會擴展到某個特定點,在該點上需要擴展(而不是擴展)到多個使用者。 您將不得不考慮一個反應式(pub-sub)模型,該模型可讓您在需要更高吞吐量時無縫地向應用程序中添加更多使用者。

您的主服務器可以發布有關狀態更改的事件,並且當消費者正在監聽這些事件時,他們可以選擇一個事件並根據需要對其進行處理。 消費者可以過濾其訂閱,以僅接收僅對他們感興趣的消息的通知。

看一下像RabbitMQ這樣的基礎消息路由服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM