Closed mxsm closed 2 months ago
🚀Thanks for your contribution🎉. CodeRabbit(AI) will review your code first🔥
The changes made to the RocketMQ codebase include enhancements to the handling of remoting requests and responses, with a focus on implementing read-write separation in connections. This involves modifying client and server structures to improve the processing of requests, along with the introduction of new modules and refactoring existing ones to streamline asynchronous operations.
Files | Change Summary |
---|---|
rocketmq-broker/src/out_api/broker_outer_api.rs , rocketmq-client/src/implementation/mq_client_api_impl.rs |
Updated RocketmqDefaultClient construction to include DefaultRemotingRequestProcessor . |
rocketmq-client/src/implementation/client_remoting_processor.rs |
Enhanced process_request method to handle request codes and log them appropriately. |
rocketmq-namesrv/src/bootstrap.rs |
Changed import paths for request processors and updated client instantiation to include a new processor. |
rocketmq-remoting/src/base.rs , rocketmq-remoting/src/base/response_future.rs |
Introduced response_future module for handling asynchronous responses and added ResponseFuture struct. |
rocketmq-remoting/src/clients.rs , rocketmq-remoting/src/clients/client.rs , rocketmq-remoting/src/clients/rocketmq_default_impl.rs |
Added register_processor method to RemotingClient and refactored Client to use ClientInner . |
rocketmq-remoting/src/connection.rs |
Replaced framed field with separate reader and writer fields for enhanced control over data flow. |
rocketmq-remoting/src/runtime/server.rs |
Updated connection handling methods to use new reader and writer interfaces. |
rocketmq-remoting/src/request_processor.rs , rocketmq-remoting/src/request_processor/default_request_processor.rs |
Introduced default_request_processor module and implemented DefaultRemotingRequestProcessor . |
Objective | Addressed | Explanation |
---|---|---|
Implement read-write separation in remoting connections (#926) | ✅ |
🐰 In the land of code, changes hop,
A new way to handle requests, we can't stop!
With processors to guide, and futures anew,
Asynchronous magic, in all that we do!
So let's celebrate, with a joyful cheer,
For RocketMQ's journey is bright and clear! 🌟
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Attention: Patch coverage is 0%
with 165 lines
in your changes missing coverage. Please review.
Project coverage is 23.84%. Comparing base (
a8a7984
) to head (9d0953e
). Report is 4 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Which Issue(s) This PR Fixes(Closes)
Fixes #926
Brief Description
How Did You Test This Change?
Summary by CodeRabbit
New Features
DefaultRemotingRequestProcessor
.response_future
module.RocketmqDefaultClient
with a generic parameter for request processors.Bug Fixes
Client
implementation.Refactor
Connection
handling with separatereader
andwriter
interfaces for better control.LocalRequestProcessor
to remove theSend
constraint, simplifying trait implementations.Documentation