Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe what this PR does / why we need it
about the thoughts on issue #3750
Describe how you did it
不同RPC协议的本质区别在于序列化和数据格式,在原有的springcloud的REST/HTTP协议上添加dubbo(triple)和grpc协议,sca体系中,微服务之间的调用多为feign调用,为了不改变sca体系中client跟sever原有的rest风格(使用springboot)开发习惯,feign进行http请求关键的部分在Feign.Client中,我们实现Feign.Client,在execute方法中,建立与server的netty连接,通过这个netty我们将http请求涉及的(url,body,method,headers,封装为HttpMetadata对象)通过rpc协议(triple,grpc)进行传输,在server侧根据获取到的httpMetadata对象构建http请求,交由server侧的spring调用链(dispatcherServlet)进行处理
The fundamental differences between different RPC (Remote Procedure Call) protocols lie in their serialization and data formats. The existing Spring Cloud framework, which primarily uses the REST/HTTP protocols, can be extended by adding support for protocols like Dubbo (Triple) and gRPC, In the SCA system, the invocation between microservices is mostly done through Feign calls. In order to not change the original REST style (using SpringBoot) development habits of the client and server in the SCA system, the key part of Feign's HTTP request is in the Feign.Client. We implement the Feign.Client, and in the execute method, we establish a Netty connection with the server. Through this Netty, we encapsulate the HTTP request-related information (URL, body, method, headers) into an HttpMetadata object, and then transmit it through the RPC protocol (Triple, gRPC). On the server side, we construct the HTTP request based on the obtained HttpMetadata object and pass it to the Spring call chain for processing(dispatcherServlet)