2015-06-26 65 views
1

Hazelcast具有內置的分佈式ID生成器,如http://docs.hazelcast.org/docs/latest/manual/html/idgenerator.html所述。挑戰在於無論何時緩存服務器重啓序列都會丟失並從零開始重啓。作爲一個解決方案,他們嘗試提供一個init函數,它可以從一個特定的int開始。使用它來生成連續ID的最佳方式是什麼?不會發生衝突,即使在服務器重新啓動並保持最佳性能的情況下,這種衝突仍會持續存在。hazelcast分佈式ID生成

回答

2

是的,您可以在節點重新啓動後保留ID並將其設置爲最後一個值。根據您連續ID的需要,您可能需要查看另一個外部(我的)項目https://github.com/noctarius/snowcast,它的工作方式不同。

+0

這是照顧在重新啓動榛樹服務器時id重置的風險。是否有任何配置/編碼需要遵守。 – rohit

+0

由於ID的上部塊是時間戳,因此重新啓動時不會重置ID。這意味着您沒有真正連續的ID,但您擁有支持訂購的唯一ID。如果你閱讀了snowcast的文檔,你會發現它是如何工作的。 對於Hazelcast中的IdGenerator,以及如果你從數據庫重新加載ID顯然它也可以。 – noctarius