- Alternativa open source de alto rendimiento a Kafka, escrita en Rust
- Plataforma distribuida de streaming de mensajes construida sobre un motor de almacenamiento de logs de alto rendimiento, que ofrece streaming estable y reemplazo automático de líderes
- Mantiene la consistencia de metadatos y permite recuperación ante fallas mediante el protocolo de consenso Raft
- Particionado basado en segmentos para distribuir automáticamente la carga y rotar el liderazgo con un esquema round-robin
- Funciones principales
- Divide los topics con sharding por segmento, y el nodo líder de cada segmento se encarga de las escrituras
- Write fencing basado en leases para que solo un líder pueda escribir, evitando split-brain
- Rollover automático que propone cambios de metadatos y realiza reemplazo de líder cuando se supera el tamaño del segmento
- Función Sealed Segment Reads para leer directamente desde réplicas de datos históricos
- I/O de alto rendimiento basado en io_uring para lograr alto throughput en entornos Linux
- Protocolo de cliente
- Usa un protocolo de texto con prefijo de longitud basado en TCP
- Soporta creación de topics, envío y recepción de mensajes, y consulta de estado con los comandos
REGISTER, PUT, GET, STATE, METRICS
- Gracias a su estructura de comandos simple, puede conectarse a cualquier nodo, con reenvío automático
- Características de rendimiento
- Throughput de escritura: mantiene un rendimiento estable con una estructura de un solo writer por segmento
- Throughput de lectura: escala en proporción al número de réplicas
- Latencia: en promedio de 1 a 2 RTT
- Sobrecarga mínima de consenso: Raft se aplica solo a metadatos, no a la ruta de datos
- Comparación de rendimiento
- Mayor throughput de escritura y ancho de banda que Kafka y RocksDB
- Más de 1.2 millones de operaciones por segundo con fsync desactivado, y un rendimiento estable de nivel similar incluso con fsync activado
- Licencia MIT
Aún no hay comentarios.