gRPC阅读日记(二)

简介: gRPC阅读日记(二)

gRPC基础教程(二)

生成客户端和服务端代码

官方给的.proto文件 routeguide/route_guide.proto

上文介绍了gRPC的几种RPC请求类型

下一步我们需要使用.proto文件生成gRPC客户端和服务端的接口代码。因为gRPC是支持多语言的,目前支持C#,c++,Go,Java,Python,PHP等。我选的Go的教程,其他的也一样,只不过生成对应语言的代码需要的插件不一样罢了。现在需要使用protocol buffer编译器protoc去生产Go的代码。

在同级目录下运行

$ protoc --go_out=. --go_opt=paths=source_relative \
    --go-grpc_out=. --go-grpc_opt=paths=source_relative \
    routeguide/route_guide.proto

在执行这条命令之后会生成以下文件

  • route_guide.pb.go,该文件包括所有protocol buffer代码包含填充,序列化,检索request和response的消息类型
  • route_guide_grpc.pb.go,包含
  • 客户端调用在RouteGuide服务中定义的方法接口
  • 服务端需要实现的接口,同样也在RouteGuide服务中预定义过

创建服务端

实现服务端的步骤分为两步

  • 实现我们先前在服务中定义的接口
  • 运行gRPC服务端去监听来在客户端的请求外加分发到正确的服务上去

用例server/server.go

下次会讲RouteGuide的具体实现


相关文章
|
6月前
|
Dubbo 中间件 应用服务中间件
【想进大厂还不会阅读源码】ShenYu源码-支持motan协议
ShenYu源码阅读📚。原来的插件只支持 motan2 协议,并且是硬编码的,本次修改使MotanRpcExt 得到增强。我们可以通过以上的线索来思考我们本次的阅读线索,贡献者是做了什么实现了增强motan插件、这个motan的插件的功能是什么。
|
Dubbo Java 应用服务中间件
Netty入门到超神系列-手撸简单版RPC框架(仿Dubbo)
原理还是比较简单 : 代理 + 线程池 + Netty 下面做一些解释: 首先需要定义一个统一的API接口,例:UserApi , 服务端(provider)需要实现这个接口,提供相应的方法UserApiImpl#save,客户端通过远程来调用该接口。 然后需要约定一个协议,服务器如何才能识别到客户端要调用哪个接口?:我这里用 “接口权限定名#方法名#参数” ,的方式来,因为是一个简单版本的RPC。服务端解析该内容就能匹配对应的接口的实现类,然后调用该方法。并把方法的返回值通过Netty写回给客户端 使用的编解码器都是比价简单的String的编解码器
166 0
|
6月前
深入浅出gRPC——极客时间李林锋
深入浅出gRPC——极客时间李林锋
110 0
|
存储 JSON 数据可视化
Swagger最基础整理(附赠项目源码和视频)
Swagger最基础整理(附赠项目源码和视频)
51 0
|
移动开发 网络协议 大数据
WebSocket全部内容及项目经验(一)
在websocket未出来之前,实现实时数据更新都是采用轮询http请求实现的,很明显这种方式有很大的缺陷,一条数据就需要发一次http请求。HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。而比较新的技术去做轮询的效果是Comet。这种技术虽然可以双向通信,但依然需要反复发出请求。而且在Comet中,普遍采用的长链接,也会消耗服务器资源。在这种情况下,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
103 0
|
网络协议 JavaScript
WebSocket全部内容及项目经验(二)
Socket.readyState: 只读属性 readyState 表示连接状态。 Socket.bufferedAmount: 只读属性 bufferedAmount 已被 send() 放入正在队列中等待传输,但是还没有发出的 UTF-8 文本字节数。 下面的代码展示一个使用bufferedAmount 特性每秒发送更新的例子。如果网络无法承受这一速率,它会相应作出调整。
|
编解码 运维 负载均衡
深入浅出RPC框架|青训营笔记
由于课程涉及到的RPC知识需要自己对其有较为全面的理解后才能比较好的get到课程中提及的各种框架设计的点,因此我建议阅读Kitex框架的源码,再结合课程目录去体会Kitex设计的初衷。
185 0
深入浅出RPC框架|青训营笔记
|
测试技术 数据库
gRPC阅读日记(三)rpc请求官方用例的实现
gRPC阅读日记(三)rpc请求官方用例的实现
105 0
|
Go 流计算
gRPC阅读日记(七)客户端的RPC构建2
gRPC阅读日记(七)客户端的RPC构建2
|
Go 流计算
gRPC阅读日记(六)来看看客户端的rpc请求如何实现
gRPC阅读日记(六)来看看客户端的rpc请求如何实现

相关实验场景

更多
下一篇
无影云桌面