当前位置: 首页 > news >正文

卖主机网站幼儿保育专业建设规划

卖主机网站,幼儿保育专业建设规划,aso优化什么意思,网站开发与维护宣传册在做go和Java之间gRPC调用之前需要完成以下两项工作: go语言版本的gRPC调用,实现server端和client端Java语言版本的gRPC调用,实现server端和client端 由于gRPC是跨语言的通信协议,所以我们可以相互调用,有以下2种调用…

在做go和Java之间gRPC调用之前需要完成以下两项工作:

  1. go语言版本的gRPC调用,实现server端和client端
  2. Java语言版本的gRPC调用,实现server端和client端

由于gRPC是跨语言的通信协议,所以我们可以相互调用,有以下2种调用方式:

  1. go程序作为server端,Java程序作为client端
  2. Java程序作为server端,go程序作为client端

还是拿之前写的一个student.proto文件为例

step1.student.proto文件定义

syntax="proto3";
option go_package="./;student"; //关于最后生成的go文件是处在哪个目录哪个包中,.代表在当前目录生成,student代表了生成的go文件的包名是studentoption java_multiple_files = true; //表示下面的message需要编译成多个java文件
option java_package = "grpc.student"; //指定该proto文件编译成的java源文件的包名
option java_outer_classname = "StudentProto"; // 表示下面的message编译成的java类文件的名字package student; // 定义作用域service DemoService {rpc Sender(StudentRequest) returns (StudentResponse){}
}message StudentRequest {string Id = 1;
}message StudentResponse {bytes result =1;
}message Student {int64 Id = 1;string Name =2;string No =3;
}

step2.生成各自的代码程序

这里不详细写生成过程了,之前写了两篇文章可参考:

1.Java生成gRPC程序:【JAVA】Maven构建java-grpc-protobuf代码生成测试-CSDN博客

2.Go生成gRPC程序:【GO】protobuf在golang中的测试用例-CSDN博客

step3.接口调用测试

选择以下两种方式都可以测试

  1. go程序作为server端,Java程序作为client端
  2. Java程序作为server端,go程序作为client端

根据接口定义调用Sender方法时发现一个问题

UNIMPLEMENTED: unknown service student.DemoService

经过排查发现go程序里的student.proto没有定义package ,而Java程序里的student.proto有package定义。修改保持student.proto文件一致,即我文章开始贴的proto文件即可,测试通过。

测试过程简单描述如下:

  1. go程序作为server端,Java程序作为client端

        启动go rpc server,运行Java rpc client 调用Sender接口测试

  1. Java程序作为server端,go程序作为client端

        启动Java rpc server,运行go rpc client 调用Sender接口测试

通过查阅资料proto文件定义需要满足以下要求:

1.package 必须一致,package限制说明你所定义的接口属于那个作用域下的。

例如student.proto文件定义package student,也就是DemoService Sender接口属于student作用域下,如果go或者java或者其他语言定义的package不相同是无法相互调用的,就是报错类似:UNIMPLEMENTED: unknown service student.DemoService

package student; // 定义作用域

生成go程序和Java程序会发现程序里有所对应代码指定

go程序:student_grpc.pb.go文件里定义常量如下

const (DemoService_Sender_FullMethodName = "/student.DemoService/Sender"
)

Java程序:

public class DemoServiceGrpc {private DemoServiceGrpc() {}public static final String SERVICE_NAME = "student.DemoService";.....}

 2.接口名称和方法名称定义签名必须一致,需要维护一套proto文件即可解决此类问题。

3.proto文件编写注意事项,可参考

protobuf一些注意事项_proto [packed = true]-CSDN博客

.proto 文件中 import 其他 .proto 文件时的注意事项_proto可以import远程proto-CSDN博客

 

http://www.yayakq.cn/news/569433/

相关文章:

  • wordpress主题 建站iphone app wordpress
  • 延庆青岛网站建设青岛 google seo
  • 如何做英文网站的中文网区块链开发用什么语言
  • 天行健公司网站建设网站建设方面的书
  • 设计网站的收费图是怎么做的摄影网站规划设计书
  • 08r2 搭建php网站有人用dw做网站吗
  • 手机网站建设目标wordpress logo主题
  • 一个人做网站需要多久wordpress 手机端api
  • 单县网站开发熊掌号网站改造绑定织梦网站
  • 网站空间要备案吗清远网站关键词优化
  • 幼教网站建设分析虚拟商品自动发货网站搭建教程
  • 南宁网站建设牛易飞网络营销工作内容是什么
  • 建设假网站北京 外贸网站
  • 京东网站建设的目的怎么做自己的推广网站
  • 做网站1天转多钱win10搭建wordpress
  • 网站和app可以做充值余额功能外贸网站运营
  • 做旅行网站坑梓网站建设流程
  • 墙绘做网站推广有作用没网站换程序 搜索引擎
  • 广州哪家网站建设好手工网站怎样做三角包
  • 怎么查看一个网站页面的seo优化情况盐城seo快速排名
  • 南通网站建设找哪家好做网站要找什么
  • 外链网站大全网站主机和空间
  • 网站建设社团活动宗旨网页一般用什么语言编写
  • 望牛墩镇网站建设公司玄武建设局网站
  • 做网站注册营业执照室内装修设计软件哪个最好
  • 导航网站制作 zhihu武昌专业的网络推广团队
  • 同一人做多个主体网站负责人跑业务怎么找客户
  • 个人网站用什么域名互联网站安全
  • 超越时空网上书城网站策划书网站建设服务定制
  • 建功能网站沈阳妇科检查