apache / apache/pulsar-client-cpp

[feature request] C++ and Python client support consumer memory limits.

Aberta
#93 1 comentário 0 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

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar.

### Motivation

[PIP-74](https://github.com/apache/pulsar/wiki/PIP-74%3A-Pulsar-client-memory-limits)

C++ client consumers have not implemented memory limits yet.

### Solution

There are several key points to achieving this feature.
1. Reconstructing the consumer structure.
- https://github.com/apache/pulsar/pull/16969
- Abstract `ConsumerBase`, put together some common logic.
2. Refactoring single-consumer and MultiTopicConsumer transports type.
- In the current implementation of C++, messages are sent to multi-topic consumers by blocking queue + listener, which is an old historical implementation. If you want to achieve memory limits, you need to do the same as the current java implementation, let `MuiltiTopicConsumer` take the initiative to control the message.

### Alternatives

Here's an imperfect draft: https://github.com/apache/pulsar/pull/16933

### Anything else?

_No response_

### Are you willing to submit a PR?

- [x] I'm willing to submit a PR!

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece pelo PIP-74 e pelas alterações em ConsumerBase e MultiTopicConsumer descritas na PR 16969; em seguida, compare com o rascunho imperfeito da PR 16933. Considera-se concluído quando o controle do limite de memória do consumidor para os clientes C++ e Python solicitados, incluindo o caminho de MultiTopicConsumer, estiver definido e implementado.

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

Avaliação

Stack de tecnologia
cpp, python
Domínio
backend-api-design, distributed-systems
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

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