You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shenyu.apache.org by Kunshuai Zhu <jo...@apache.org> on 2022/09/14 12:03:44 UTC

How about adding a plugin that proxy Triple protocol (Dubbo3)?

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.

Re: How about adding a plugin that proxy Triple protocol (Dubbo3)?

Posted by Yu Xiao <xi...@apache.org>.
Very Good.~

Best wishes!

Yu Xiao
Apache ShenYu

Kunshuai Zhu <jo...@apache.org> 于2022年9月14日周三 20:04写道:
>
> 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.