apache / apache/pulsar-client-cpp

Key-based batching and hashingScheme parameter for Python client

Abierto
#83 5 comentarios 6 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
71
Forks
90
Merge medio
2 h 33 min
PR fusionados (30 d)
3

Descripción

**Short intro**
We're running a platform that's effectively just a bunch of microservices written in Python, Java and Go which are communicating through Kafka. Currently we're considering moving from Kafka to Pulsar.
However, one of the main features we need is key-based message routing for solving concurrency problems. Pulsar has that option with KeyShared subscription mode.

**The problem**
In Python, KeyShared subscription works only if producer disables batching. I ran some tests in my local environment and disabling batching results in high decrease of throughput (~25k/s with batching vs ~9k/s without).

**Features that would've solved the problem**
- Key-based batching for Python client
- HashingScheme parameter when creating producer so all of our services (Java, Python and Go) could have the same hashing scheme

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza rastreando cómo gestiona actualmente el cliente de Python el batching de productores y cómo la creación de productores expone la configuración. Compara los esquemas de hashing utilizados por los clientes de Python, Java y Go. Se considera terminado cuando Python admite el batching basado en claves y los productores pueden seleccionar un esquema de hashing que produzca un enrutamiento compatible entre estos clientes.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
go, java, kafka, python
Área
distributed-systems
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.