服务/数据库/技术来模拟长序列对象(不是UUID)

时间:2017-02-15 14:07:08

标签: java architecture sequence apache-zookeeper hazelcast

我正在寻找第三方服务,以便创建/模拟类似于Postgres序列数据库对象的东西。

我需要这种线程安全功能,以便能够询问下一个唯一的Long值。我将使用此值作为Spring Boot / Neoj4应用程序实体的代理键。

主要标准是速度。它应该非常快速和耐用(不仅在内存中,而且还可以持久保存到硬盘以便在崩溃和重启后继续存在)

此外,我不想使用UUID,因为我必须在我的网络应用程序网址参数中公开这些ID,如果UUID我的网址看起来很糟糕。我想使用ID的简单Long值。

您能否建议一些可以安装在我的服务器上的数据库/服务/技术,并要求提供唯一的ID?

已更新

是否可以使用Apache ZooKeeper或Hazelcast实现容错(持久)AtomicLong序列?如果是这样,是否有可以下载和使用的解决方案的任何开源实现?

2 个答案:

答案 0 :(得分:1)

Snowflake(https://github.com/twitter/snowflake/releases/tag/snowflake-2010)或snowcast(https://github.com/noctarius/snowcast)之类的东西可能会让您感兴趣。

答案 1 :(得分:0)

如果您只想要数字,为什么不想连接UUID的两个长片(most + least

根据您的评论问题: 是的,这个方法的连接(不是求和!)值与前导0到完全长长度的数字将保持与UUID本身相同(因为它有点UUID s视图)。