gRPC实现java调用python服务

      最后更新:2022-06-10 18:23:05 手机定位技术交流文章

      RPC和gRPC

      RPC(Remote Procedure Call)是一种远程程序调用,它简单地理解一个请求从另一个节点提供服务的节点。
      在微型服务时代,rpc通常被用作技术解决方案,而不是单一服务内部的本地调用。rpc需要处理不同进程之间的调用,通常是机器间调用(与IPC解决方案(如同一机器下的通道)相反),而机器间调用主要针对网络通信。

      因此,机器间的网络通信主要通过TCP/IP,而RPC则更关注应用层协议。 一般的RPC通信协议是json(http)和二进制(grpc, dubbo)。

      Json的话很容易分析, 但需要带宽.
      双向系统需要一种特殊的分析过程,它需要小带宽,但也依赖于协议分析性能。该分析过程也称为序列化或逆序列化

      grpc是谷歌的双向通信框架
      高性能的开源通用RPC框架。 开源高性能RPC框架

      gRPC基于HTTP/2协议标准设计,使用protobuf序列开发,它支持许多开发语言。在gRPC中,客户端可以使用直接调用另一个无法访问的机器上的服务端的方法,如调用本地对象,更容易创建分布式应用程序和服务。

      Java

      依赖安装

      一个新地图项目
      项目结构如下
      在这里插入图片描述

      pom.xml

      Newxx在src/main/proto/.Protofile下,是实现跨语言的关键,在传输过程中被Python和Java使用。
      as.proto

      item_info.proto

      user_info.proto

      然后在控制台输入

      在编译后在目标文件夹下生成文件
      在这里插入图片描述

      将生成的文件移动到项目
      在这里插入图片描述

      Java客户端编写

      Client.java

      python服务结束

      启动服务端和客户端
      java客户端控制台显示
      在这里插入图片描述

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/27011.html

          热门文章

          文章分类