我的编程空间,编程开发者的网络收藏夹
学习永远不晚

grpc python 和Java实现

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

grpc  python 和Java实现

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工程下class="lazy" data-src/main目录下建立proto文件夹(这个proto文件夹只能在这里建立,是为了下面更好的编译,减少不必要的麻烦),具体目录如下:

建立data.proto文件,

 

 

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

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

然后点击上图红色方框对应的按钮,就会编译data.proto(这也是上述为啥建立proto文件夹在class="lazy" data-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

grpc python 和Java实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

grpc python 和Java实现

Grpc实战教程:说一下目的:实现Python变成的服务端,Java作为客户端,实现二者的通信,实现的功能:传递过来的字符串全部转换为大写 一、安装(Java和Python)1、  Python安装grpc1)      gRPC 的安装,
2023-01-31

GoLang与Java各自生成grpc代码怎么实现

本篇内容介绍了“GoLang与Java各自生成grpc代码怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.背景由于公司的日志系统使
2023-07-05

Go gRPC怎么实现Simple RPC

本篇内容介绍了“Go gRPC怎么实现Simple RPC”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言gRPC主要有4种请求和响应模式
2023-07-02

怎么用Python语言的grpc实现消息传送

这篇“怎么用Python语言的grpc实现消息传送”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Python语言的gr
2023-07-05

gRPC超时拦截器如何实现

这篇文章主要介绍“gRPC超时拦截器如何实现”,在日常操作中,相信很多人在gRPC超时拦截器如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”gRPC超时拦截器如何实现”的疑惑有所帮助!接下来,请跟着小编
2023-07-02

grpc官方文档实验与翻译(python

tensorflow分布式与tensorflow serving底层通信都是是用的grpc,所以就看了一下grpc的基本用法(python版)首先是环境的安装,先要更新pip到version8或者以上$ python -m pip inst
2023-01-31

Golang语言实现gRPC的具体使用

Golang中gRPC的实现gRPC是一个用于构建分布式应用程序的高性能RPC框架。本文提供了分步指南,示范如何在Golang中实现gRPC服务端和客户端。服务端:创建protobuf定义文件生成gRPC代码实现服务接口注册服务客户端:生成gRPC代码创建客户端调用RPC方法双向流式RPC:服务端:使用ServerStream和ClientStream实现双向流式RPC客户端:使用BidirectionalEcho方法实现双向流式RPC本文还涵盖了安全性(TLS和mTLS)和gRPC网关(HTTP/JSO
Golang语言实现gRPC的具体使用
2024-04-23

Java gRPC拦截器如何实现分布式日志链路追踪器

这篇文章主要介绍“Java gRPC拦截器如何实现分布式日志链路追踪器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java gRPC拦截器如何实现分布式日志链路追踪器”文章能帮助大家解决问题。跨进
2023-07-05

Go gRPC服务proto数据验证怎么实现

今天小编给大家分享一下Go gRPC服务proto数据验证怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。创建prot
2023-07-02

python实现java的hashcod

def convert_n_bytes(n, b): bits = b * 8 return (n + 2 ** (bits - 1)) % 2 ** bits - 2 ** (bits - 1)def convert_4_bytes
2023-01-31

Go创建Grpc链接池实现过程详解

这篇文章主要为大家介绍了Go创建Grpc链接池实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-03

如何在 Golang 中使用 gRPC 实现文件上传?

如何使用 grpc 实现文件上传?创建配套服务定义,包括请求和响应消息。在客户端,打开要上传的文件并将其分成块,然后通过 grpc 流流式传输发送到服务端。在服务端,接收文件块并将其存储到文件中。服务端在文件上传完成后发送响应,指示上传是否
如何在 Golang 中使用 gRPC 实现文件上传?
2024-05-13

godoudou开发gRPC服务快速上手实现详解

这篇文章主要为大家介绍了godoudou开发gRPC服务快速上手实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录