簡體   English   中英

如何從Gemfire中獲得獨特的長度?

[英]How can I get a unique long from Gemfire?

我們正在開發一個直接與Gemfire對話的分層Java應用程序。

我們需要能夠生成唯一的“長”序列號,保證在應用程序的所有節點上都是唯一的。 (並非所有節點都是群集的)

通常我會在Oracle中創建一個序列,但在這種情況下,即使我們的Gemfire配置與關系數據庫有連接以進行寫后台持久性,我們的應用程序也沒有其他數據庫知識。

在不進入數據庫的情況下,生成那些保證唯一長值的最佳方法是什么?

問自己的第一個問題是你真的需要一個長序列號(單調增加長整數)或者你只需​​要一個全局唯一標識符(如UUID)。

最高性能的解決方案將是一個全球唯一的ID,我建議使用GUID。

如果您需要一個全局唯一的單調增加長值(長序列),那么您將不得不使用一些分布式鎖定並在該區域中增加一個值。 此方法和性能取決於您使用的區域類型。

查看Region.replace(K,V,V)。 它可以對特定區域定義下的值執行全局原子更新。 如果當前區域類型沒有充分定義,您可能需要考慮一個只包含序列的區域。

暫無
暫無

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

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