Use ByteBuffers for message bodies
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
- 30/100
Hướng nghiên cứu
Bắt đầu với API channel.basicPublish(...) và kiểm tra cách các giá trị byte[] của phần thân thông điệp được chuyển đổi và gửi đi. So sánh các phương án thay thế ByteBuffer và độ lệch mảng được đề xuất, bao gồm cả cách xử lý java.nio.Channel, sau đó xác định API được chọn và xác minh rằng phần thân thông điệp tránh các bản sao không cần thiết trong khi vẫn giữ nguyên hành vi hiện có.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Hi all,
I would like to propose to use ByteBuffer for message bodies. Now, the API accepts a plain byte[], which forces intermediate copies of buffers if we are already working with ByteBuffer or similar representations of a buffer.
Internally, the client implementation can use array() and arrayOffset() to get the data to be sent over the wire if hasArray() returns true; or copy the contents with get() in the other case. In pure NIO mode, we could simply write the ByteBuffer to the java.nio.Channel without any intermediate overhead.
What do you think?
Thank you!
addendum
FWIW, although I believe native support for ByteBuffer is the preferred solution, we could also avoid the copy if the API would accept an offset in the provided array (+ optionally the length) as an alternative proposal:
channel.basicPublish(..., buffer.array(), buffer.arrayOffset());
channel.basicPublish(..., buffer.array(), buffer.arrayOffset(), <length>);
- Ngôn ngữ chính
- Java
- Star
- 1.3k
- Fork
- 588
- Merge trung bình
- 4 giờ 40 phút
- Pull request đã merge (30 ngày)
- 38
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- 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 rabbitmq/rabbitmq-java-client
-
Bump dependenciesĐang mởdependency-upgrade
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
rabbitmq/rabbitmq-java-client#2110 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add option to automatically set User-ID in basicPublishCó thể làm lại được @UmerQureshi21 đã nhận 285 ngày trước và không có pull request nào đang mở. Đang mởenhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
rabbitmq/rabbitmq-java-client#1748 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
rabbitmq/rabbitmq-java-client#1535 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 45/100
rabbitmq/rabbitmq-java-client#1421 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Thread Pinning occurs with VirtualThreads enabled (spring boot 3)Có thể làm lại được @acogoluegnes đã nhận 953 ngày trước và không có pull request nào đang mở. Đang mởenhancement help-wanted
rabbitmq/rabbitmq-java-client#1276 · 3 bình luận · 2 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của rabbitmq/rabbitmq-java-client
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
quarkusio/quarkus-agent-mcp#302 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
build
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
MetricsHub/metricshub-community#1472 ·
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 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
IdentityArrayObjectSet iterator remove may throw ArrayIndexOutOfBoundsExceptionCó thể đã có người làm @jiteshkhatri11 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
javapathfinder/jpf-core#660 · 1 bình luận ·