Contribution Submission: MQTT v5 Input and Output components
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- go
- Lĩnh vực
- data-engineering, stream-processing
Hướng nghiên cứu
Bắt đầu bằng việc đọc CONTRIBUTING.md §3.1.1 và các component input và output mqtt hiện có, sau đó xem xét cấu hình được đề xuất dựa trên paho.golang và phạm vi metadata. Công việc được xem là hoàn tất khi Redpanda xác nhận rằng hỗ trợ MQTT v5 là cần thiết, phê duyệt phạm vi và xác định các yêu cầu kỳ vọng về triển khai và kiểm thử cho các component mqtt5 mới.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Background
We are evaluating Redpanda Connect for use in our data pipelines, but this use case requires MQTT v5 support, which currently does not exist for Redpanda Connect. Currently only MQTT v3.1.1 is supported via the mqtt input and output using the paho.mqtt.golang library.
Prior Work
There were two prior attempts to contribute MQTT v5 support to Redpanda Connect:
- PR #2197: Was closed due to withdrawal of the contribution on change from Benthos to Redpanda Connect.
- PR #3731: Was closed due to unaccepted CLA.
Kafka Connect Equivalent
There is no Kafka Connect equivalent since the Kafka Connect MQTT source connector is also based on an MQTT v3.1.1 paho library.
Proposal
We would like to contribute a new mqtt5 input and output component. Per §3.1.1 of the CONTRIBUTING.md, code written by non-Redpanda engineers needs to be reviewed and scoped by Redpanda. We are opening this issue to ask for comments on two points:
- Is an MQTT v5 input and output component still desired/wanted by Redpanda?
- Is the following scope properly sized for a MQTT v5 input and output component?
Intended Scope
- A new, separate
mqtt5input and output component. - Written in Go and based on paho.golang. This library is written by the same authors as the mqtt.paho.golang library that is already in use with the
mqttconnector. - Code structure will mirror the existing
mqttconnector where it makes sense. - All configuration fields shared with the existing
mqttconnector are carried over unchanged - New
mqtt5input config options:
| Field | Notes |
|---|---|
session_expiry_interval |
How long the broker retains session state after disconnect. |
receive_maximum |
Maximum in-flight QoS 1/2 messages the broker may send to this client simultaneously. |
maximum_packet_size |
Maximum packet size this client will accept from the broker. |
no_local |
Subscription option: do not receive messages published by this client. |
retain_as_published |
Subscription option: preserve the retain flag from the original publisher. |
retain_handling |
Subscription option: controls whether retained messages are sent on subscribe. |
topic_alias_maximum |
Maximum number of topic aliases this client will accept from the broker. 0 disables topic aliases. |
subscription_identifiers |
Enables the use of subscription identifiers by the client. |
will_* |
Full v5 will message config. |
- Metadata set by the
mqtt5input:
| Metadata key | Source |
|---|---|
mqtt5_user_properties_<key> |
User Properties from the PUBLISH packet. If a key appears only once, it is stored as-is. |
mqtt5_user_properties_<key>_<idx> |
User Properties from the PUBLISH packet can have the same key multiple times. If this happens they receive a zero-based index as a suffix |
mqtt5_content_type |
Content Type |
mqtt5_payload_format_indicator |
Payload Format Indicator |
mqtt5_response_topic |
Response Topic |
mqtt5_correlation_data |
Correlation Data |
mqtt5_subscription_identifier |
Subscription identifier sent by the broker |
- New
mqtt5output config options:
| Field | Notes |
|---|---|
session_expiry_interval |
How long the broker retains session state after disconnect. |
message_expiry_interval |
Per-message TTL. Broker drops the message if undelivered before expiry. |
topic_alias_maximum |
Maximum number of topic aliases this client will use when publishing. 0 disables topic aliases. |
will_* |
Full v5 will message config. |
- Metadata read by the
mqtt5output:
| Metadata key | Written to |
|---|---|
mqtt5_user_properties_<key> |
User Properties on the PUBLISH packet. Plain keys (mqtt5_user_properties_<key>) are written as single entries. Indexed keys (mqtt5_user_properties_<key>_0, _1, etc.) are reassembled into multiple User Properties with the same key, preserving order. |
mqtt5_content_type |
Content Type |
mqtt5_payload_format_indicator |
Payload Format Indicator |
mqtt5_response_topic |
Response Topic |
mqtt5_correlation_data |
Correlation Data |
- Other MQTT v5 Behavior:
- Shared Subscriptions are supported by the underlying library.
- Reason codes will be surfaced in error messages.
- Server-initiated DISCONNECT is handled by the underlying library.
- Ngôn ngữ chính
- Go
- Star
- 8.8k
- Fork
- 975
- Merge trung bình
- 2 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 72
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của redpanda-data/connect
-
InterpolatedString for S3 bucketĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
redpanda-data/connect#4837 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Iceberg output: the `row_operation` example uses a non-existent bloblang ternaryCó thể đã có người làm @Tyagiquamar đã nhận 24 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
redpanda-data/connect#4711 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
URL Secrets Exposure in LogsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
redpanda-data/connect#4705 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
opensearch output: action does not support "create"Có thể đã có người làm @highlyavailable đã nhận 92 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
redpanda-data/connect#4515 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Minor issue with slack_post component in Redpanda Connect.Có thể đã có người làm @hsdfat đã nhận 71 ngày trước. Đang mởneeds investigation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
redpanda-data/connect#4511 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của redpanda-data/connect
Issue tương tự
-
unbounded value for n in `/v1/logs` can panic/OOMCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởsmall item
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
canonical/pebble#1127 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 89/100
open-policy-agent/opa#9366 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
defect
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
nats-io/nats-server#8752 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement needs-acceptance wg/router-models-inference-runtime
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
vllm-project/semantic-router#5015 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
fileserver: precompressed sidecar's Content-Encoding and Content-Length end up on error responsesCó thể đã có người làm @NitinKumar004 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
caddyserver/caddy#8204 ·
Maintainer thường phản hồi trong vòng 1 ngày