使用 Dubbo 开发 gRPC 服务
这个示例演示了如何使用 triple 协议实现 Dubbo 服务与标准 gRPC 服务的互相调用,可在此查看 示例完整源码
就像在 Triple协议规范 中所描述的,triple 协议与 gRPC 协议保持 100% 兼容,同时在易用性方面有了非常大的提升(比如支持 cURL、浏览器直接访问等),可以说 triple 是一个更好用的 gRPC 设计与实现。
运行示例
首先,可通过以下命令下载示例源码
git clone --depth=1 https://github.com/apache/dubbo-samples.git
进入示例源码目录:
cd dubbo-samples/2-advanced/dubbo-samples-triple-grpc
作为标准的 gRPC Server
在这一部分,我们会发布一个 Dubbo Triple Server,然后启动一个标准的 gRPC 消费端(采用谷歌官方发布的 grpc-java 编码)来调用 Triple 服务。示例源码在 dubbo-samples-triple-grpc,请下载源码并依照以下命令体验。
启动 Dubbo server
Make sure you are in dubbo-samples-triple-grpc
directory and then run the following command:
$ mvn compile exec:java -Dexec.mainClass="org.apache.dubbo.samples.tri.grpc.interop.server.TriOpServer"
使用标准 gRPC client 调用 Triple 服务
Open a new terminal, enter dubbo-samples-triple-grpc
directory and then run the following command:
$ mvn compile exec:java -Dexec.mainClass="org.apache.dubbo.samples.tri.grpc.interop.server.GrpcClient"
作为标准的 gRPC Client
This part showcases how Triple client written with Dubbo consumes gRPC service written with standard gRPC-java.
启动标准 gRPC server
$ mvn compile exec:java -Dexec.mainClass="org.apache.dubbo.samples.tri.grpc.interop.client.GrpcServer"
使用 Dubbo client 调用标准 gRPC 服务
$ mvn compile exec:java -Dexec.mainClass="org.apache.dubbo.samples.tri.grpc.interop.client.TriOpClient"
更多内容
本示例主要演示 triple 可以 100% 兼容谷歌发布的 gRPC 框架,而在 triple 相关部分具体代码与配置上,本示例与之前介绍的 基于 protobuf 的 triple 示例完全一致,因此我们不再重复讲解源代码与开发步骤。
本示例演示的是 unary 模式的通信兼容性,对于 streaming 模式同样适用。