gRPC基础教程总结

简介: gRPC基础教程总结

gRPC基础教程总结

七篇阅读日记写完了,做个总结

从protocol buffers开始

基础教程的 .proto 文件routeguide/route_gudie.proto

protocol buffer除了定义好了消息中字段序列化的方式,还定义了服务双方的通信接口。

生成客户端和服务端的代码

除了在 .proto 文件中定义好上述内容后,还需要使用protoc工具编译,使用:

$ 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: 生成了 proto 文件中定义的消息的结构体,相关填充,序列化方法
  • route_guide_grpc.pb.go: 则是面向服务,定义了RPC服务需要实现的接口,还有一个重要的是,有一个客户端存根

type routeGuideClient struct {
    cc grpc.ClientConnInterface
}
func NewRouteGuideClient(cc grpc.ClientConnInterface) RouteGuideClient {
    return &routeGuideClient{cc}

这个在后续实现客户端的时候,创建client时需要使用

服务端和客户端的实现

这方面在以前阅读笔记已经详细的解读过了,如何实现,比如,客户端在处理Server-side流式请求,和服务端处理Client-side流式请求的实现上是有相似的地方的,都是在读到io.EOF的时候证明请求消息的读取,或是响应消息的读取已经完成了。

.proto 定义的rpc方法都需要实现。

外加经常重复的一句话就是,流式接口的请求喝接收,消息都是有顺序的,但客户端,喝服务端可以不按照消息顺序来处理(那这么说的话,也要按顺序返回吧)


相关文章
|
7月前
|
JSON 负载均衡 Java
Springboot整合gRPC
Springboot整合gRPC
127 0
|
2月前
|
网络协议 安全 Go
|
JSON Cloud Native Go
gRPC-GateWay Swagger 实战
gRPC-GateWay Swagger 实战
|
JSON Cloud Native Linux
gRPC-Gateway 快速实战
gRPC-Gateway 快速实战
gRPC-Gateway 快速实战
|
Go API 微服务
Golang微服务框架Kratos轻松集成并使用Swagger UI
在我们的开发当中,调试接口,测试接口,提供接口文档给前端,那都是非常频繁的工作内容。 那么,我们需要用什么方法和工具来实施这些工作内容呢? Swagger,或者说OpenAPI。
301 0
|
负载均衡
gRPC源码分析(二):从官网文档看gRPC的特性
在第一部分,我们学习了gRPC的基本调用过程,这样我们对全局层面有了一定了解。接下来,我们将结合官方文档,继续深入学习、探索下去。
88 0
|
Java 编译器 API
gRPC 初探与简单使用
gRPC 初探与简单使用
72 0
|
Kubernetes 前端开发 Dubbo
Spring Boot+gRPC构建微服务并部署到Istio(详细教程)
Spring Boot+gRPC构建微服务并部署到Istio(详细教程)
|
Dubbo Java 应用服务中间件
SpringBoot集成Dubbo启用gRPC协议
本文记录下SpringBoot集成Dubbo启用gRPC协议,以及与原生 gRPC 在代码编写过程中的区别。
245 0
|
负载均衡 安全 Cloud Native
2023-5-15-gRpc框架学习
2023-5-15-gRpc框架学习
156 0