apache / apache/pulsar-client-cpp
[feature request] C++ and Python client support consumer memory limits.
- Ngôn ngữ chính
- C++
- Star
- 71
- Fork
- 90
- Merge trung bình
- 2 giờ 33 phút
- Pull request đã merge (30 ngày)
- 3
Mô tả
### 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!
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với PIP-74 và các thay đổi đối với ConsumerBase và MultiTopicConsumer được mô tả trong PR 16969, sau đó so sánh với bản nháp chưa hoàn thiện trong PR 16933. Được xem là hoàn thành khi việc kiểm soát giới hạn bộ nhớ của consumer cho các client C++ và Python được yêu cầu, bao gồm cả đường đi MultiTopicConsumer, đã được định nghĩa và triển khai.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp, python
- Lĩnh vực
- backend-api-design, distributed-systems
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100