簡體   English   中英

Storm中的延遲隊列/消息處理

[英]Delayed queue / message processing in Storm

在我的Storm拓撲中,在處理流時,我想延遲處理某些消息,直到將來某些時間點。 這樣做的合理選擇是什么?

到目前為止,我已經考慮過以下幾點:

  • 使用Java的Thread.sleep (但是,根據一些討論,這不是有效利用Storm資源的推薦方法。)
  • 使用延遲隊列......
  • Storm是否有一些API來延遲我忽略的消息?
  • ZeroMQ是否提供Storm(如果已修改)可以利用的延遲消息傳遞API?

我們使用拓撲結構元組來批量處理掛起的元組。 它基本上只是將它們存儲在每個正常元組的內存中,當它收到一個tick元組時,它使用批量/流水線處理將它們處理成存儲/索引。

如果卷的峰值檢測到所有元組都重定向到每個主機上的本地redis存儲,然后在卷停止后被推回拓撲處理,我們也會在數量激增的情況下使用redis。 我們的情況可能不適用於你的,只是我的2c。

使用外部消息隊列來實現延時隊列。

由於Storm是容錯的並且是水平分布的,因此選擇適合該樣式的消息隊列是有意義的,例如:

  • 卡夫卡
  • 亞馬遜SQS
  • 的RabbitMQ

暫無
暫無

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

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