2017-09-14 126 views
0

我有一個與Apache Storm有關的問題。目前我們使用一些服務器來實現Storm,我們的應用程序需要Facebook/Twitter令牌。因此我們要這樣設計:每個令牌都屬於特定的服務器,當一個螺栓接收到元組時,它會請求一個專門用於該螺栓運行實例的令牌,這是爲了防止如果不同的服務器阻塞令牌在短時間內使用相同的標記。如何知道哪個服務器風暴/螺栓正在運行

任何人知道如何做到這一點的方式,有沒有辦法知道螺栓的運行實例的哪些服務器?非常感謝。

回答

0

如果你想每個螺栓例如一個令牌,然後一個實例變量添加到您的螺栓類來保存該令牌和初始化/清理該標記在螺栓生命週期的適當時間。

如果您想爲每一臺機器,那麼你可以創建一個Singleton bean來持有一個令牌整個JVM的令牌。請注意,如果您希望在一臺計算機上有多個工作人員,那麼您需要對每臺計算機的多個令牌感興趣(每臺計算機上每臺JVM使用一個令牌),或者構建一個擁有該令牌的獨立中間件服務器,以及處理來自機器上多個JVM的請求。即使這是可以接受的,你仍然需要弄清楚如何使單個JVM/worker共享中的所有螺栓實例共享該JVM的一個令牌。

相關問題