내 애플리케이션의 고유 ID 생성기로 Snowcast https://github.com/noctarius/snowcast을 사용하려고합니다. 이 ID를 웹 응용 프로그램 URL에 노출합니다.Hazelcast Snowcast 시퀀스 생성기 신기원 ID 길이
는 지금은 어떻게 내 봄 부팅 응용 프로그램과 함께 Snowcast 시퀀서를 구성하는 두 가지 옵션이 있습니다 :
@Bean
public SnowcastSequencer snowcastSequencer(Snowcast snowcast) {
Calendar calendar = GregorianCalendar.getInstance();
calendar.set(2017, Calendar.FEBRUARY, 1, 0, 0);
SnowcastEpoch snowcastEpoch = SnowcastEpoch.byTimestamp(calendar.getTimeInMillis());
return snowcast.createSequencer("sequence_generator", snowcastEpoch);
}
또는 Calendar
기반 시대의 경우 snowcastSequencer.next()
메소드 호출의 결과로
@Bean
public SnowcastSequencer snowcastSequencer(Snowcast snowcast){
SnowcastEpoch snowcastEpoch = SnowcastEpoch.byTimestamp(new Date().getTime());
return snowcast.createSequencer("sequence_generator", snowcastEpoch);
}
나는 다음과 같은 긴 가치를 얻고 있습니다 :
15617925960433665
하지만 Date
기반 시대의 경우 :
12046041089
내가 두 번째처럼 ... 짧은 ID에 더 관심이 있어요하지만 난 ID가 가능한 고유성 문제에 대해 우려하고있다.
고유 ID의 경우 날짜를 기준으로 에포크를 사용해도 되겠습니까?
답장을 보내 주셔서 감사합니다. 바로 지금 생각해야하거나 내 URL에 부정적인 가치가 괜찮습니다 .. – alexanoid
거기에 어떤 방법으로 부정적인 값 생성을 피하기 위해 무엇입니까? 내 솔루션은 음수 값을 허용 할 수 없습니다. ( – alexanoid
아니요 유감스럽게도 가능한 것은 아닙니다. 최상위 비트가 에포크 밀리 초에 사용되므로 항상 음수 값을 가질 가능성이 있습니다. – noctarius