Java与Python使用grpc跨平台调用

本文通过grpc实现java与java之间的通信、java和python之间的相互调用、python与python之间的相互调用。

1、java实现grpc

(1)、创建一个maven项目,项目的整体结构如下图所示:

Java与Python使用grpc跨平台调用_第1张图片

(2)、给pom.xml文件添加依赖包

Java与Python使用grpc跨平台调用_第2张图片
Java与Python使用grpc跨平台调用_第3张图片
Java与Python使用grpc跨平台调用_第4张图片
Java与Python使用grpc跨平台调用_第5张图片

(3)、编写helloworld.proto文件

文件里定义了传入传出的数据,其中,HelloRequest为请求的参数,HelloReply为响应的参数

Java与Python使用grpc跨平台调用_第6张图片

(4)、在项目的根目录下输入:mvn compile命令

Java与Python使用grpc跨平台调用_第7张图片

这时,会生成响应的java文件:

Java与Python使用grpc跨平台调用_第8张图片

(5)、编写服务端代码

Java与Python使用grpc跨平台调用_第9张图片
Java与Python使用grpc跨平台调用_第10张图片
Java与Python使用grpc跨平台调用_第11张图片

(6)、编写客户端代码

Java与Python使用grpc跨平台调用_第12张图片
Java与Python使用grpc跨平台调用_第13张图片
Java与Python使用grpc跨平台调用_第14张图片

此时,代码编写完成,然后先执行服务端,再执行客户端,客户端会受到如下信息:

2、python实现grpc

grpc安装:pip install grpcio

grpcbuf相关库安装:pip install grpcbuf

编译工具:pip install grpcio-tools

(1)使用flask创建一个python项目,python项目的结构如下图所示:

Java与Python使用grpc跨平台调用_第15张图片

(2)创建proto文件(与java使用的proto文件相同):

Java与Python使用grpc跨平台调用_第16张图片

(2)在example目录下编译:

注意:在编译过程中,可能出现编译不成功的现象,可以试着一部分一部分加着编译,小编就是每次增加一点点才编译成功的。

编译成功后,会生成helloworld_pb2_grpc.py和helloworld_pb2.py文件

(3)、服务端编写:

Java与Python使用grpc跨平台调用_第17张图片
Java与Python使用grpc跨平台调用_第18张图片

(4)、客户端编写

Java与Python使用grpc跨平台调用_第19张图片

先启动服务端,再启动客户端:

在上述程序中,可以启动java服务端和python客户端,或者启动java客户端和python服务端,都可以调用成功。

你可能感兴趣的:(Java与Python使用grpc跨平台调用)