la idea de cambio de bit en twitter copo de nieve IdWorker
Frecuentes
Visto 878 equipos
1 Respuestas
3
El servicio de copos de nieve de Twitter crea identificaciones únicas en un entorno distribuido. Varios procesos de trabajo pueden asignar identificaciones únicas cada uno. Los identificadores constan de tres componentes: la hora, un identificador de trabajador y un número de secuencia. La línea de código que muestra simplemente cambia esos tres componentes para que no se superpongan en el resultado de 64 bits y los junta para crear un solo resultado de 64 bits.
Respondido 02 Jul 12, 03:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas twitter bit shift or haz tu propia pregunta.
hola, Ned Batchelder, eso significa que puedo cambiar su algoritmo por mí mismo, como el siguiente código: long nextId = ((timestamp - twepoch) << 2) | (this.workerId << 3) | (esta.secuencia<<5); y es que como su respuesta? - snageyang
Estoy probando lo anterior del código por concurrencia 10 subprocesos: long nextId = ((timestamp - twepoch) << 2) | (this.workerId << 3) | (this.sequence<<5), el resultado de id se puede repetir, ¿qué pasa con el código? - snageyang
No dije que pudieras cambiar el código de cualquier manera y que continuaría funcionando. Las cantidades de cambio dependen del tamaño de los tres componentes. Es importante que no se superpongan. - Ned Batchelder
No puedo entender que el desplazamiento a la izquierda equivale a timestampLeftShift,workerIdShift y por qué la secuencia no se desplaza a la izquierda. Gracias. - snageyang
@snageyang: No tengo idea de lo que estás tratando de lograr. Experimente con diferentes valores de desplazamiento para ver qué hacen. - Ned Batchelder