Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize : Eliminate RpcMessage and Encoder/Decoder dependencies #6209

Open
wants to merge 27 commits into
base: 2.x
Choose a base branch
from

Conversation

Bughue
Copy link
Contributor

@Bughue Bughue commented Dec 25, 2023

  • I have registered the PR changes.

Ⅰ. Describe what this PR did

新引入ProtocolRpcMessage(接口),用以解开rpcmessage和encoder/decoder的依赖关系。encoder/decoder只依赖ProtocolRpcMessage(支持不同版本协议的区分),而原有的RpcMessage继续服务于协议解析后的业务逻辑
A new ProtocolRpcMessage interface is introduced to decouple rpcmessage from encoder/decoder, which only relies on ProtocolRpcMessage (to support differentiation between different versions of the protocol), while the original RpcMessage continues to serve the The original RpcMessage continues to serve the business logic after the protocol is parsed.

Ⅱ. Does this pull request fix one issue?

fixes #6210

Ⅲ. Why don't you add test cases (unit test/integration test)?

Ⅳ. Describe how to verify it

Ⅴ. Special notes for reviews

@Bughue Bughue changed the title optimize : Unwinding RpcMessage and Encoder/Decoder dependencies optimize : Eliminate RpcMessage and Encoder/Decoder dependencies Dec 25, 2023
@codecov-commenter
Copy link

codecov-commenter commented Jan 4, 2024

Codecov Report

Attention: Patch coverage is 0% with 101 lines in your changes are missing coverage. Please review.

Project coverage is 50.28%. Comparing base (e72babb) to head (8e70690).
Report is 8 commits behind head on 2.x.

❗ Current head 8e70690 differs from pull request most recent head fa23e23. Consider uploading reports for the commit fa23e23 to get more accurate results

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##                2.x    #6209      +/-   ##
============================================
+ Coverage     50.19%   50.28%   +0.08%     
- Complexity     5232     5253      +21     
============================================
  Files           942      944       +2     
  Lines         33221    33382     +161     
  Branches       4022     4042      +20     
============================================
+ Hits          16676    16786     +110     
- Misses        14938    14969      +31     
- Partials       1607     1627      +20     
Files Coverage Δ
...che/seata/core/rpc/netty/v1/ProtocolV1Decoder.java 14.54% <0.00%> (ø)
...che/seata/core/rpc/netty/v1/ProtocolV1Encoder.java 4.87% <0.00%> (-0.26%) ⬇️
...ta/core/rpc/netty/AbstractNettyRemotingClient.java 20.00% <0.00%> (-0.20%) ⬇️
...ta/core/rpc/netty/AbstractNettyRemotingServer.java 15.30% <0.00%> (-0.32%) ⬇️
.../seata/core/rpc/netty/v1/ProtocolRpcMessageV1.java 0.00% <0.00%> (ø)
.../seata/core/rpc/netty/v0/ProtocolRpcMessageV0.java 0.00% <0.00%> (ø)

... and 55 files with indirect coverage changes

@Bughue Bughue closed this Jan 23, 2024
@Bughue Bughue reopened this Jan 23, 2024
…-msg

# Conflicts:
#	core/src/main/java/org/apache/seata/core/rpc/netty/AbstractNettyRemoting.java
#	core/src/main/java/org/apache/seata/core/rpc/netty/ProtocolRpcMessage.java
#	core/src/main/java/org/apache/seata/core/rpc/netty/v0/ProtocolRpcMessageV0.java
#	core/src/main/java/org/apache/seata/core/rpc/netty/v1/ProtocolRpcMessageV1.java
#	core/src/main/java/org/apache/seata/core/rpc/netty/v1/ProtocolV1Decoder.java
#	test/src/test/java/org/apache/seata/core/rpc/netty/v1/ClientChannelHandler.java
#	test/src/test/java/org/apache/seata/core/rpc/netty/v1/ProtocolV1SerializerTest.java
#	test/src/test/java/org/apache/seata/core/rpc/netty/v1/ServerChannelHandler.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Protocol layer strongly relies on rpcmessage, which has implications for multi-version protocol adaptation.
4 participants