下载对应的版本编译器,并把路径加入到环境变量中,执行如下命令生成代码java
protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto
-I
表示源码所在文件夹位置,--java_out
表示输出路径,空格后表示具体的 proto 文件位置,如下为示例命令git
protoc -I=C:\Users\JR\DaprDemos\java\examples\src\main\protos\examples --java_out=C:\Users\JR\DaprDemos\java\examples\src\main\java C:\Users\JR\DaprDemos\java\examples\src\main\protos\examples\helloworld.proto
启动 Dapr gRPC 服务端github
dapr run --app-id hellogrpc --app-port 5000 --protocol grpc -- mvn exec:java -pl=examples -Dexec.mainClass=server.HelloWorldService -Dexec.args="-p 5000"服务端主要实现说明
onInvoke()
函数,该函数为 Dapr gRPC 调用封装。该函数提供两个签名 InvokeEnvelope
和 StreamObserver<Any>
InvokeEnvelope
用于解析 gRPC 请求函数StreamObserver<Any>
用于疯转 gRPC 应答Say
SayRequest
SayResponse
onInvoke
函数中调用启动 Dapr gRPC 客户端app
dapr run --protocol grpc --grpc-port 50001 -- mvn exec:java -pl=examples -Dexec.mainClass=client.HelloWorldClient -Dexec.args="-p 50001 'message one' 'message two'"客户端主要实现说明
InvokeServiceEnvelope()
函数
gRPC 服务端收到消息ide
输出为:函数
Server: message one Server: message two
至此, Java 客户端服务端经过 Dapr 完成 gRPC 通信。code
源码地址server