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 摘要。