apache / apache/pulsar-client-cpp
Key-based batching and hashingScheme parameter for Python client
- 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
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