import ( "코딩", "행복", "즐거움" )

Snowflake, UUID 생성기 본문

Server Technique

Snowflake, UUID 생성기

더코드마니아 2022. 9. 29. 20:44

Snowflake ID ??

분산 컴퓨팅에서 사용되는 고유 식별 아이디로 사용 한다. Twitter에서 tweet ID를 생성 하기 위해 

고안된 Global Unique Object ID 이다. 

 

Snowflake 구조 

64비트를 사용 하고, 부호 있는 정수에 맞추기 위해 63비트 까지만 사용 한다. 

 

  • 41bits: timestamp ( 시간 ) 
  • 10bits: instance ( 장비 ID로 사용 ) 
  • 12bits: sequence  ( 연속된 값 ) 

출저: 위키피디아

인스타그램의 경우 아래와 같음

  • 41bits: timestamp ( 시간 ) 
  • 13bits: instance ( 샤드 ID로 사용 ) 
  • 10bits: sequence  ( 연속된 값 ) 

 

시퀀스 번호는 같은 시간이 나올 경우 증가한다고 알려져 있다. 

 

 

Golang으로 개발 시 UUID가 필요하다면 아래 링크를 사용!!

https://github.com/zheng-ji/goSnowFlake

 

GitHub - zheng-ji/goSnowFlake: 一个实现 Twitter SnowFlake 算法 的 Go 分布式 UID 生成器.A threadsafe unique ID gener

一个实现 Twitter SnowFlake 算法 的 Go 分布式 UID 生成器.A threadsafe unique ID generator inspired by Twitter SnowFlake theory - GitHub - zheng-ji/goSnowFlake: 一个实现 Twitter SnowFlake 算法 的 Go 分布式 UID 生成器.A threa...

github.com