【发布时间】:2011-07-05 21:58:58
【问题描述】:
我正在 Java 和 Cassandra 之上构建一个分布式应用程序。要生成唯一的顺序 32 位和 64 位 ID,使用Flickr's ticket servers 生成主 ID 之类的方法是一种好方法吗?我对此感到特别兴奋,因为它可以帮助我根据需要将 ID 的大小减少到 32 位或 64 位,否则 UUID 可能会增加到 128 位。我不希望这些 ID 完全连续,但至少会增加!
但是,使用单个数据库服务器可能会引入 Cassandra 消除的单点故障。但是,这对于我们应用程序的初始阶段可能是可以的。稍后我们可能会引入两台服务器来缓解这些问题。
这听起来是个好策略吗?简而言之,我们将 MYSQL 和 Cassandra 混合在一个应用程序中。我知道,如果 mySQL 由于某种原因出现故障,那么我们无法单独使用 Cassandra。
我们已经寻找过像雪花这样的其他解决方案,但它并不完全符合我们的要求。
编辑:我正在寻求有关使用 MySQL 生成唯一主 ID 来键入存储在 Cassandra 数据库中的数据/实体的建议是否是一种好方法。像 Flickr 的票务服务器这样的方法有什么缺点(如果有的话)?
【问题讨论】:
-
我认为这里有一个问题,但很难确切地看到你在问什么。请澄清
-
骗子:stackoverflow.com/questions/3935915/…(但无解,仅供参考)
-
我检查过了.. 但没有用,因为没有答案
-
引入单点故障确实破坏了分布式系统的主要优势。那么你的要求是什么?为什么雪花不匹配他们?为什么 ID 的顺序很重要?
-
我需要生成 32 位和 64 位的 ID,它们按升序大致排序。我还想要一些空闲位(在 64 位 ID 中大约 4 个)根据数据类别将单个实体的数据分成两行。我会在 Id 的末尾附加一些额外的位,因此需要一些空闲位。
标签: java mysql web-applications primary-key