前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gRPC- Go和Java的一次HelloWorld

gRPC- Go和Java的一次HelloWorld

作者头像
阿伟
发布2019-11-28 23:32:17
1.2K0
发布2019-11-28 23:32:17
举报
文章被收录于专栏:GoLang那点事GoLang那点事

都说grpc是跨语言的一个rpc框架,当团队内部有多种流行编程语言时,那么grpc可以为他们提供通信,今天我们就通过一个Hello World来看看Java和Go是怎么通信的,一起实践吧,只有亲身实践才能更好的掌握,理解。

下文所有程序源代码地址如下
代码语言:javascript
复制
https://github.com/sunpengwei1992/java_grp
https://github.com/sunpengwei1992/go_common/tree/master/grpc

我们以Go作为服务端,Java作为客户端

Go实现服务端

准备好Go版的proto文件

下载依赖的moudle,如下地址

代码语言:javascript
复制
google.golang.org/grpc v1.23.1
github.com/golang/protobuf v1.3.2

执行如下命令,生成proto.pb.go文件

代码语言:javascript
复制
protoc --goout=plugins=grpc:. helloworld.proto

服务端实现接口,提供服务

编写服务端代码,并启动服务端

到次为止,Go服务端启动完成,接下来我们准备Java客户端代码

Java实现客户端

准备好Java版的proto文件,和Go版的区别是多了一些Java的选项,其余的不能改变

新建一个maven项目,配置pom文件,依赖的jar包如下

编译配置如下

开始根据proto文件编译生成java文件,如下图所示,依次点击红色的插件

编写客户端文件,连接Go的服务端,发起请求

我们以Java作为服务端,Go作为客户端
Java实现服务端

上面Java客户端生成的文件不要动,另写一个服务的实现类,代码如下

写一个main方法启动服务端,代码如下

Go作为客户端

上面go服务端生成的proto文件依然不要变,编写自己的客户端代码,如下

总结

通过一个HelloWorld的案例带领大家实践多语言通过grpc通信,真实场景中,往往非常复杂,还需要大家多多研究,比如,负载均衡,限流,服务降级,protobuffer文件管理,版本升级等各种问题都需要考虑,grpc的专栏也就到这里了,希望大家通过这十篇文章能有有所收获,更加深入的需要大家在实践中自己摸索,思考,总结。想深入交流的可以留言获取我的邮箱地址。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GoLang那点事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下文所有程序源代码地址如下
  • Go实现服务端
  • Java实现客户端
  • 我们以Java作为服务端,Go作为客户端
    • Java实现服务端
      • Go作为客户端
      • 总结
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档