如何在Web服务器群集上生成唯一ID

Ste*_*ier 3 java sql database cluster-computing java-ee

在以下场景中:

1数据库4 Web服务器

Web服务器如何为数据库生成唯一ID以使它们是唯一的?是的,可以使用自动增量,但这很容易被抓取/猜测/等.因此,自动增量目前不是一种选择.

Jim*_*ing 15

使用UUID(http://www.ietf.org/rfc/rfc4122.txt).冲突是不太可能的,并且可以通过重新生成新的UUID来处理它们,或者可以通过连接每个服务器的唯一ID(如mac地址)来阻止它们: -

StringBuilder sb = new StringBuilder(UUID.randomUUID());
InetAddress address = InetAddress.getLocalHost();
String uid = sb.append(NetworkInterface.getByInetAddress(address).getHardwareAddress());
Run Code Online (Sandbox Code Playgroud)

  • 构建UUID时,大多数O/S实现将包含来自与主机关联的以太网卡的以太网硬件地址(也称为MAC地址),因此您不会通过将MAC地址连接到UUID来获得任何东西(但是您会慢与较大的标识符一起下来的东西). (4认同)