Ich lerne kürzlich, wie man UUID generiert. Ich finde die Klasse TimeBasedUUIDGenerator.java in elasticsearch.Warum elasticsearch MacAddressProvider munged bytes
Ich finde es Mac-Adresse verwenden, um aktuelle Maschine zu identifizieren (MacAddressProvide.java). Aber es XOR die MAC-Adresse mit zufälligen Bytes (als Code-Schnipsel unten). Wie ich weiß, wird dies die Mac-Adresse zufällig machen und die Wahrscheinlichkeit von Konflikten erhöhen. Warum verwenden wir nicht direkt mac address?
public static byte[] getSecureMungedAddress() {
byte[] address = null;
try {
address = getMacAddress();
} catch (SocketException e) {
// address will be set below
}
if (!isValidAddress(address)) {
address = constructDummyMulticastAddress();
}
byte[] mungedBytes = new byte[6];
SecureRandomHolder.INSTANCE.nextBytes(mungedBytes);
for (int i = 0; i < 6; ++i) {
mungedBytes[i] ^= address[i];
}
return mungedBytes;
}