grpc有什么用,grpc详解
gRPC在C++中的简单使用流程
参考:
????????????
1.gRPC默认使用protocal buffers
2.第一步是在.proto中定义service:service serviceName? {rpc function(){}}
? ? ? ? 有四种类型的方法:
? ? ? ? 1)简单的rpc,就像普通的函数调用一样
? ? ? ? 2)服务端流式rpc:在响应类型前加stream
????????3)客户端流式rpc:在请求类型前加stream
? ? ? ? 4)双向流失rpc:在请求和响应前加stream
3.从 .proto 的服务定义中生成 gRPC 客户端和服务器端的接口:make xx.grpc.pb.cc xx.pb.cc
4.创建服务器:
? ? ? ? 1)实现service定义的生成的服务接口:做服务的实际的“工作”。
????????2)运行一个 gRPC 服务器,监听来自客户端的请求并返回服务的响应。
5.创建客户端:
? ? ? ? 1)创建一个存根
? ? ? ? 2)调用服务的方法
手机grpc通道连接成功什么意思
gRPC协议是一个高性能。
通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(ProtocolBuffers)序列化协议开发,且支持众多开发语言。
本文作者深入研究了gRPC协议,对协议本身作出解构。gRPC是基于HTTP/2协议的,要深刻理解gRPC,理解下HTTP/2是必要的。
这里先简单介绍一下HTTP/2相关的知识,然后再介绍下gRPC是如何基于HTTP/2构建的。
go语言grpc的stream 使用
之前我们讲了 grpc 怎么简单的使用 ,这次讲讲 grpc 中的 stream,srteam 顾名思义 就是 一种 流,可以源源不断的 推送 数据,很适合 传输一些大数据,或者 服务端 和 客户端 长时间 数据交互,比如 客户端 可以向 服务端 订阅 一个数据,服务端 就 可以利用 stream ,源源不断地 推送数据。
其实这个流 已经 基本退化成 tcp了,grpc 底层为我们 分包了,所以真的很方便。
我们在 protobuf 里面 定义 要提供的服务,如果 你想把哪个数据 源源不断的 推送 就在前面加个stream 就好了,定义好记得编译。
知识点:
client 调用 流的函数, 就会 返回一个 流对象,只要 不断地 对它进行读取或者写入,对应方就能收到。
grpc 的 stream 和 go的协程 配合 简直完美。通过流 我们 可以更加 灵活的 实现自己的业务。如 订阅,大数据传输等。