분산 ID 시리즈 (2) - 분산 ID에 적합 UUID

UUID 발전 전략 :

UUID하게는, 상기 UUID 이더넷 주소를 사용 나노초 시간 생성 기준 설정 개방 소프트웨어 재단합니다 (OSF)에 따라 계산 된 랜덤 데이터의 스트링 인 32 비트 길이의 데이터의 고유 랜덤 문자열을 생성 할 상기 칩 ID 코드 및 가능한 숫자의 수. 기본이 UUID는 32 자리의 16 진수 숫자 집합, 실제 발생 UUID 이론적 총 구성되어 , 거의 동일한 , 즉, UUID는 100 만 나노초마다, 그것은 10,000,000,000년 지출 발생하는 경우 말을하는 것입니다 우리가 고유성을 보장하기 위해 또한 사용하고하는 것을 충분히 그래서 UUID는 모두 (10,000,000,000년 아, 지구가 사라)를 사용합니다.

UUID 형식 :

UUID 여섯 옥텟 32 형태 8-4-4-4-12 36 개 문자 (즉, 총 세에서 보여 다섯 개 그룹 하이픈으로 구분하여 16 진수로 표현되는 열두 숫자 어머니와 네 개의 하이픈). 예를 들면 :

123e4567-e89b-12d3-a456-426655440000

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

상기 네 개의 숫자 (1)의 오 개 버전 선택적 M 값, 2, 3, 4, 5를 M 버전 UUID 전류 UUID 명세의 시작이 나타내며 다음과 같이 구체적으로 설명 각 버전은 :

버전 1 : 0001. 시간과 MAC 주소를 기준으로합니다. MAC 주소의 사용은, 개인 정보가 충분하지 않습니다, 고유성을 확보 할 수있다,뿐만 아니라 MAC 주소를 노출.
버전 2 : 0010. DCE 보안 UUID. 이 버전은주의 깊게 코드에서 해결하지, 따라서 특정 구현하지 않습니다.
버전 3 : 0011. 기반 네임 스페이스 (MD5). 그리고 사용자는 MD5 해시를 통해 UUID를 생성, 네임 스페이스 문자열을 지정합니다. 캐릭터 자체가 고유해야합니다.
버전 4 : 0100. 임의의 수에 따라. 이 난수 기반으로하지만 있지만 반복의 확률은 무시할 수 있으므로이 버전은 또한 자주 버전을 사용합니다.
버전 5 : 0101. 기반 네임 스페이스 (SHA1). 마찬가지로 버전 3,하지만 해시 함수 프로그램 SHA1과 함께.

위 N의 UUID 변종 (변종)로 시작하는 네 자리 숫자로 표현, 변형은 지난 UUID와 호환 및 사용 UUID에로, 현재, 미래의 변화, 다음과 같은 범주의 현재 알려진 변종에 응답하는 것입니다 그들은 variant1이므로 값만 8,9, a는 B가 (각각 1000,1001,1010,1011)이다.

변형 0 : 0xxx. 이전 버전과의 호환성을 위해 보유.
변형 1 : 10xx. 현재 사용한다.
변형 2 : 11xx. 조기 예약 마이크로 소프트 GUID.
변형 3 : 111x. 미래의 확장을 위해 예약되어 있습니다. 현재 아직 사용하지 마십시오.

자바 구현 UUID :

우리가 사용할 수 있도록 다음과 같이 자바는 UUID 클래스를 작성했습니다

package com.one.util;

import java.util.UUID;

public class Test {

    public static void main(String[] args) {
        String uuid= UUID.randomUUID().toString().replace("-", "").toLowerCase();
        System.out.println(uuid);
    }
}

결과는 다음과 같다

UUID 적절한 분산 ID 여부 :

수요 만 고유성이 보장되는 경우 UUID를 사용하는 것도 가능하지만, 사실, 다음과 같은 이유로 UUID 분산 ID를 만들 수 없습니다, ID의 위의 요구 사항에 따라 배포 :

  1. 먼저 기본 키로 일반적으로 ID를 분산하지만, 짧은 더 나은 시도하는 MySQL의 기본 키 공식 추천을 설치, UUID는 각각 매우 긴, 그래서 사용하지 않는 것이 좋습니다
  2. 배포 ID는 기본 키 인덱스를 포함하는 기본 키이기 때문에, 달성 B + 트리 의해 다음 MySQL의 인덱스, 각각의 인덱스 기본 B + 트리를 수정해야한다, 질의 최적화 새로운 UUID 데이터 삽입 UUID를 데이터가 정렬되지 않은 때문에, 그래서 때마다 데이터가 크게 수정 B + 나무의 도시의 주요 열쇠가 될 것입니다 UUID에 삽입, 그것은 매우 나쁘다
  3. 안전하지 않은 정보 : 누출 될 수 있습니다 MAC 주소 생성 알고리즘 UUID 기반의 MAC 주소는이 허점 멜리사 바이러스 제작자의 위치를 ​​찾는 데 사용되었다.

그래서 UUID는 사용할 수있는

예를 들어, 알리,이 같은 공식 웹 사이트의 스크린 샷에서 알리 클라우드, 수 전송 된 각 문자 메시지에 대한 고유 ID를 클라우드

그때 당신이 칭찬이, 감사합니다 ♪ (· ω ·) 테크노 점을 도와, 좋은 느낌, 여기에 학생들을 볼

갱스터 URL :

https://tech.meituan.com/2017/04/21/mt-leaf.html
https://segmentfault.com/a/1190000011282426
https://www.jianshu.com/p/9d7ebe37215e
은 https : // www가 .jianshu.com / P / da6dae36c290

추천

출처www.cnblogs.com/mqk100/p/11307708.html