2017-09-14 2 views
0

Ich habe eine Frage zu Apache Storm. Derzeit verwenden wir einige Server, um Storm zu implementieren, unsere Anwendung benötigt Facebook-/Twitter-Tokens.Wie man weiß, welcher Server Sturm/Bolzen läuft

Also wollen wir so aussehen: jeder Token gehört zu einem bestimmten Server, wenn eine Schraube Tupel erhalten hat, wird es ein Token anfordern, das speziell für diese Bolzen laufende Instanz ist, um Token zu blockieren, wenn verschiedene Server blockieren Verwenden Sie das gleiche Token in kurzer Zeit.

Wer weiß, wie man dies erreicht, gibt es eine Möglichkeit zu wissen, welche Server einer laufenden Instanz der Schraube? Danke vielmals.

Antwort

0

Wenn Sie einen Token pro Bolt-Instanz wünschen, fügen Sie Ihrer Bolt-Klasse eine Instanzvariable hinzu, um diesen Token zu halten und das Token zu den entsprechenden Zeiten im Bolt-Lebenszyklus zu initialisieren/bereinigen.

Wenn Sie für jede Maschine ein Token haben möchten, können Sie eine Singleton-Bean erstellen, die ein Token für die gesamte JVM enthält. Beachten Sie, dass Sie, wenn Sie mehr als einen Worker auf einer einzelnen Maschine haben möchten, mit mehreren Tokens für jede Maschine zufrieden sein müssen (eine pro JVM auf der Maschine) oder einen eigenständigen Middleware-Server erstellen, dem das Token gehört verarbeitet Anfragen von mehreren JVMs auf dem Computer. Auch wenn dies akzeptabel ist, müssen Sie dennoch herausfinden, wie alle Bolt-Instanzen in einer einzigen JVM/Worker-Instanz das eine Token für diese JVM freigeben.

Verwandte Themen