Hi community, Triple is a new rpc protocol defined by dubbo3. Its principle is similar to grpc, it is a streaming rpc protocol based on http2, and is compatible with grpc. It is recommended by Apache Dubbo community after dubbo 3.0 version.
For more introduction to the triple protocol, please refer to the following link (sorry for no English version, because Apache Dubbo community does not seem to provide it for the time being): [1] proposal: https://github.com/apache/dubbo-awesome/blob/master/proposals/D0-triple.md [2] Usage example: https://dubbo.apache.org/zh/docs3-v2/java-sdk/reference-manual/protocol/triple/guide/ Regarding the Triple protocol, I want to implement two plugins. First, we can provide an http to triple plugin, which is similar to our current grpc plugin. (Client -> [http msg] -> shenyu -> [triple msg] -> triple server) In shenyu, we need to serialize json messages into protobuf messages. This is mainly used for the scheduling of north-south traffic, we can call it "Http-To-Triple Plugin" Second, I want to provide a plugin that directly proxy triple. (Client -> [triple msg] -> shenyu -> [triple msg] -> triple server) In shenyu, we do not need to do serialization and deserialization, and directly perform triple protocol according to metadata and http2 header Forward. This is an important benefit of the triple protocol for gateway scenarios. This is mainly used for the scheduling of east-west traffic, we can call it "Triple-Proxy Plugin" For the second plugin, grpc can also implement a similar grpc-proxy plugin. The specific implementation may be similar to our mqtt plug-in, which opens a triple service on a certain port to handle triple rpc requests with unknown paths. Do you have any thoughts or suggestions about these two plugins? If there is no problem, I will provide a more detailed proposal later.