apache / apache/pulsar-client-cpp
[feature request] C++ and Python client support consumer memory limits.
- 主要言語
- C++
- スター
- 71
- フォーク
- 90
- 平均マージ
- 2時間 33分
- マージ済み PR(30日)
- 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 クライアント向けのコンシューマーのメモリ制限制御を、MultiTopicConsumer のパスを含めて定義・実装することです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp, python
- 領域
- backend-api-design, distributed-systems
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100