文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

grpc python 和Java实现

2023-01-31 05:46

关注

Grpc实战教程:

说一下目的:实现Python变成的服务端,Java作为客户端,实现二者的通信,实现的功能:传递过来的字符串全部转换为大写

 

一、安装(Java和Python)

1、  Python安装grpc

1)      gRPC 的安装,执行命令:pipinstall grpcio

2)      ProtoBuf 相关的 python 依赖库,执行:pipinstall protobuf

3)      安装 python grpc 的 protobuf 编译工具,执行:pipinstall grpcio-tools

2、  Java安装grpc

3、  参考:https://github.com/grpc/grpc-java,添加对应的jar包和插件,我的测试是在idea下maven工程下进行的,只需在pom文件中,添加对应的依赖和插件即可。

二、编写对应的客户端(java)和服务端(Python)

1、首先编写proto文件,由于是测试,proto文件如下:

 

注意:编译成Python和Java都是使用的此文件内容

2、编译成Python和Java对应的文件()

首先变成Python所需要的文件,我的目录结构如下:


 

首先找到data.proto所在的目录,执行下列命令:

python –m grpc_tools.protoc –I=. –python_out=.–grpc_python_out=.

完成对data.proto的编译,生成

首先实现对应的服务端代码,建立serviceMain模块:

编写客户端代码,建立clientMain模块:

 

Python服务端和客户端测试,首先启动服务端,然后启动客户端:

 

下面编译Java对应的文件和代码,为了方便,首先建立一个maven工程,并在maven工程下src/main目录下建立proto文件夹(这个proto文件夹只能在这里建立,是为了下面更好的编译,减少不必要的麻烦),具体目录如下:

建立data.proto文件,

 

 

将建立的data.proto文件到proto文件夹中,然后打开pom文件,按照https://github.com/grpc/grpc-java,添加对应的jar包和插件即可。

然后通过maven下载好这些jar和插件好,打开工程右边的maven projects,可以看到如下:

然后点击上图红色方框对应的按钮,就会编译data.proto(这也是上述为啥建立proto文件夹在src/main下的原因),等待编译完成就会在工程目录target\generated-sources\protobuf\java看到编译后的文件(包含自己指定的package和生成的java类)。

 

这时只是生成了对应rpc传输的数据结构类,还没有生成对应的服务端的代码,下面就该生成服务端的代码了,同样打开项目右侧的maven projects,点击“package”将项目打包,如下图

此时在target/generated-sources/protobuf下会生成grpc-java文件,生成的服务端代码就在此文件中,将生成的类剪切(是剪切,当然复制完成删除也可以,避免报错)拷贝工程中对应的package下,如下图红色框内的类就是生成的文件:

 

这时在Java package下建立package的层次关系,

 

剩下的就是实现java服务端和客户端的内容,首先定义了一个常量类:

实现具体服务端的内容如下(实现在data.proto中定义的函数):

 

具体java服务端的实现如下(注意观察红色方框内)如下,需要两步:

第一步,实现服务端的具体操作(注意此时还是没有建立服务启动内容,嘿嘿,因为还没有设定具体的端口号,仅仅实现了服务端要做的操作而已)

建立服务端的服务:

 

 

 

具体java客户端的实现:

 

Java服务端和客户端测试,首先启动服务端,再启动客户端,然后运行DefinedClient.java的main函数,可以看到下面的输出就表示成功!

 

 

 

三、跨语言的测试:

第一种情况:Java客户端,Python服务端,启动上述对应的代码模块(先启动服务,然后运行客户端):

可以看到也

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯