apache / apache/pulsar-client-cpp

Key-based batching and hashingScheme parameter for Python client

Aberta
#83 5 comentários 6 reações 0 responsáveis Ver no GitHub
Linguagem predominante
C++
Estrelas
71
Forks
90
Merge médio
2h 33min
PRs com merge (30d)
3

Descrição

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

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece rastreando como o cliente Python lida atualmente com o batching de produtores e como a criação de produtores expõe a configuração. Compare os esquemas de hashing usados pelos clientes Python, Java e Go. O trabalho estará concluído quando o Python oferecer suporte a batching baseado em chave e os produtores puderem selecionar um esquema de hashing que produza um roteamento compatível entre esses clientes.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
go, java, kafka, python
Domínio
distributed-systems
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
30/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.