编程语言
首页 > 编程语言> > java-使用票务服务器生成主ID?

java-使用票务服务器生成主ID?

作者:互联网

我正在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的票务服务器等方法有什么缺点(如果有)?

解决方法:

我不太喜欢尝试将含义附加到代理键上(如果您希望它们随着时间的推移而增加,则可以尝试这样做).如您所见,这使生成密钥的问题变得更加复杂.假设您只是希望键随时间增加,以便可以对数据进行排序,为什么不包括创建对象并将其存储在数据存储中的时间戳?这极大地简化了密钥生成,并允许您执行随时间增加的密钥几乎可以做的所有事情,并且增加了一个事实,那就是无论谁必须维护您的代码如何对对象进行排序,这都是显而易见的.

标签:primary-key,web-applications,java,mysql
来源: https://codeday.me/bug/20191102/1994698.html