apache / apache/pulsar-client-cpp

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

未关闭
#93 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
C++
星标
71
派生
90
平均合并
2 小时 33 分钟
30 天内合并 PR
3

描述

### 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!

贡献指南

打开贡献指南

调研方向

从 PIP-74 以及 PR 16969 中描述的 ConsumerBase 和 MultiTopicConsumer 更改开始,然后比较 PR 16933 中不完善的草案。完成的标准是为所请求的 C++ 和 Python 客户端定义并实现 consumer 内存限制控制,包括 MultiTopicConsumer 路径。

由索引模型根据 Issue 内容生成。

评估

技术栈
cpp, python
领域
backend-api-design, distributed-systems
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。