apache / apache/pulsar-client-cpp

Key-based batching and hashingScheme parameter for Python client

Ouverte
#83 5 commentaires 6 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C++
Étoiles
71
Forks
90
Merge moyen
2 h 33 min
PR mergées (30 j)
3

Description

**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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par retracer la manière dont le client Python gère actuellement le batching des producteurs et la manière dont la création des producteurs expose la configuration. Comparez les schémas de hachage utilisés par les clients Python, Java et Go. Le travail est terminé lorsque Python prend en charge le batching basé sur les clés et que les producteurs peuvent sélectionner un schéma de hachage produisant un routage compatible entre ces clients.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
go, java, kafka, python
Domaine
distributed-systems
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.