-
Notifications
You must be signed in to change notification settings - Fork 26.4k
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 the decoding of generic http2 #14175
Conversation
75d0518
to
0237f80
Compare
@AlbumenJ The rest protocol has been migrated to the dubbo-spi-extension project. |
@oxsean @icodening PTAL |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## 3.3 #14175 +/- ##
==========================================
+ Coverage 38.55% 38.80% +0.25%
==========================================
Files 1895 1730 -165
Lines 79272 75341 -3931
Branches 11528 11099 -429
==========================================
- Hits 30560 29233 -1327
+ Misses 44439 41969 -2470
+ Partials 4273 4139 -134 ☔ View full report in Codecov by Sentry. |
Can you provider a test case? or how to test it? |
Okay, I will provider a demo later. |
@oxsean This is the demo: https://github.com/finefuture/triple-http2-demo/tree/main |
LGTM. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Native http2 does not support client stream and bi stream (streaming requests are not supported), so we only need to deal with unary and server streams, which means streaming responses are supported. Receiving the end_stream flag means that the unary data stream is complete and can be decoded. |
|
What is the purpose of the change
When native http2 sends a request, it is possible to send 1-2 data frames:
In the second case, when a data frame with the endStream identifier is received and the data is empty, the parameters will be set to null. Loss of parameters will cause the call to fail.
Receiving the end_stream flag means that the unary data stream is complete and can be decoded.
Brief changelog
Verifying this change
Checklist