java - 如何在没有数据库的情况下为部署在多个服务器上的服务的每次调用生成 16 位唯一号码?

标签 java multithreading server cloud

我有一个 Java 服务,它使用当前时间以 yymmddhhmmssmsms 格式生成 16 位唯一编号。它使用 Atomic Long 在同一毫秒内处理多个调用。 但现在的问题是我需要在多台云机器上提供这个服务。如何在不同服务器上以同一微秒处理调用,并为每个调用生成唯一的号码。 我不想为此使用数据库。

编辑: 我知道 UUID 可以是一个解决方案。但UUID会生成一个随机编号。每次都不是唯一的,尽管碰撞的可能性非常低。

最佳答案

想想,你可以尝试使用UUID.randomUUID()对象

关于java - 如何在没有数据库的情况下为部署在多个服务器上的服务的每次调用生成 16 位唯一号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58707338/

相关文章:

java - 需要一个程序将用户输入的数字(使用 BufferedReader)转换为数字格式

java - 如何将包含字符串列表(内部列表)的对象列表转换为字符串列表

php - 将数据从 MYSQL 导入到网络服务器上的 JSON 文件

java - 来自 SyncAdapter 的 Realm 不正确线程错误

c++ - 子线程完成后更改 GUI - QT

linux - 编写 shell 脚本来编译和调度我的服务器程序?

python - 对于服务器端 python 代码,是否有比 virtualenv 更好的解决方案?

java - 使用logica smpp发送DeliverSMResp

java - 如何过滤来自 Firebase 的查询?

multithreading - 使用 NSOpenGLLayer 从单独的线程中绘制