是否有可能为特定的 JVM 实例获取真正唯一的 ID?
2022-09-04 02:18:00
我需要一种方法来唯一且永久地从该JVM中运行的Java代码中识别JVM的实例。
也就是说,如果我在同一台机器上同时运行两个JVM,那么每个JVM都是可区分的。它还可以与其他机器上运行JVM以及将来在同一机器上执行(即使重用进程ID)区分开来。
我想我可以通过识别开始时间,机器MAC和进程ID并以某种方式组合它们来实现这样的东西。我想知道是否有一些标准的方法来实现这一点。
更新:我看到每个人都建议整个会话使用UUID。这似乎是一个好主意,尽管可能有点太重量级了。这是我的问题:我想使用JVM id在每个JVM执行中创建多个唯一标识符,这些标识符以某种方式合并了JVM实例。
我的理解是,您不应该将其他数字混合到UUID中,因为不再保证唯一性。另一种方法是将 UUID 设置为字符串并将其链接起来,但随后它变得太长。有什么想法可以克服这一点吗?