질문을 통해 구체화한 요구사항
- ID는 유일하다.
- ID는 숫자로만 구성된다.
- ID는 64비트로 표현될 수 있는 값이어야 한다.
- ID는 발급 날짜에 따라 정렬 가능해야 한다.
- 초당 10,000개의 ID를 만들 수 있어야 한다.
개략적 설계안 제시
4가지 방법 : 다중 마스터 복제, UUID, 티켓 서버, 트위터 스노플레이크 접근법
다중 마스터 복제
- 각 서버는 다음 ID의 값을 구할 때, 현재 사용 중인 데이터베이스 서버의 수만큼 증가시킨다.
- 단점 : 서버가 추가되거나 삭제될 때 잘 동작하지 않으므로 규모를 확장하기 어렵다. ID의 유일성은 보장되지만 그 값이 시간 흐름에 맞춰 커지도록 보장할 수 없다.
✅ UUID