分散式系統中實現遞增序列該怎麼做呢?steven2014-12-16 21:12:52

非要實現的話,可以有幾種方式吧:

1。 使用資料庫的主鍵遞增來實現,優點是穩定可靠,缺點是存在單點問題,一旦資料庫出現問題,那個分散式序列服務將不可用。

2。 使用阿里巴巴推出的DRDS服務(分散式關係型資料庫服務_DRDS_詳情介紹),其提供全域性唯一數字id服務,幫助您在分散式環境下,繼續保持類似唯一鍵、主鍵等資料的全域性(所有節點)唯一性。

3。 使用ZooKeeper ZNode的順序性特點來生成全域性序列。

分散式系統中實現遞增序列該怎麼做呢?匿名使用者2014-12-16 22:20:11

固定主機數K的系統中,主機編號為i,以i為初始值,以K為步長自增。缺點,不能動態擴充套件

分散式系統中實現遞增序列該怎麼做呢?kaifeng Jin2015-07-10 19:24:08

id生成服務啊,可以看看twitter開源的snowflake演算法

分散式系統中實現遞增序列該怎麼做呢?餘米知2017-02-16 08:43:38

alisql新增引擎支援id持久化遞增

分散式系統中實現遞增序列該怎麼做呢?劉偉2017-03-04 19:59:45

最方便的,自己搞一個適用於所在公司所有服務的發號器。

對外協議搞成redis或者memcache的,任何語言只要支援socket都能拿號,並且不會重號,程式碼本身抄 snowflag 過來就可以。

時間戳+分割槽ID+自增數 三個欄位每個欄位多少位元組看自己需求定。

如果有專職DBA, alisql 的儲存引擎可以試試,或者每秒發號不超過1000的話,可以用MySQL的自增列。

回答中說ZK的,生產環節ZK作為發號器效能很值得商量的,分散式服務沒必要往發號器上使,效能非常受限制的。

或者可以搞redis。