GRPC
lookNo施
这个作者很懒,什么都没留下…
展开
-
10.grpc拦截器-interceptor
1.protosyntax = "proto3";option go_package = ".;proto";service Grenter { rpc TestLanjie (Urequest) returns (Uresponse);}message Urequest { string data = 1;}message Uresponse { string data =1;}2.serverpackage mainimport ( "cont原创 2021-11-08 10:13:01 · 326 阅读 · 0 评论 -
09.grpc发送验证信息-metadata
1.grpc的metadata类比学习:HTTP协议中Header一样存储一些key-value格式的数据。grpc底层采用的是http2也有支持传递数据,使用的就是metadata。在metadata中key的类型是字符串,而value是[]string。HTTP中header的生命周期是一次http请求,metadata的生命周期与header一样,metadata的生命周期是一次RPC调用。2.创建metadata创建metadata可以像创建普通的map类型类似,使用metadata下的ne原创 2021-11-07 01:02:54 · 523 阅读 · 0 评论 -
08.grp数据流模式-双向流
1.protosyntax = "proto3";option go_package = ".;proto";service Greenter { rpc PGStream (stream allStreamRequest) returns (stream allStreamResponse);}message allStreamRequest { string data = 1;}message allStreamResponse { string data原创 2021-11-05 12:06:13 · 173 阅读 · 0 评论 -
07.grp数据流模式-客户端发送-单向流
1.protosyntax = "proto3";option go_package = ".;proto";service Geenter { // 客户端推送流 rpc ClientPutStream (stream putRequest) returns (putResponse);}message putRequest { string data = 1;}message putResponse { string data = 1;}2.se原创 2021-11-04 16:48:40 · 135 阅读 · 0 评论 -
06.grp数据流模式-服务端发送-单向流
1.protosyntax = "proto3";//声明proto版本option go_package = ".;proto";//声明包名//声明grpc服务service Greeter { rpc ServerGet (streamRequest) returns (stream streamResponse);}//stream请求结构体message streamRequest { string data = 1;}//stream响应结构体mess原创 2021-11-04 15:44:58 · 277 阅读 · 0 评论 -
05.go初体验grpc开发
1.工具下载以及go的依赖下载2.proto 文件syntax = "proto3";option go_package = ".;proto";service Grennter { rpc SayHell (HelloRequest) returns (HelloResponce);}message HelloRequest { string name = 1;}message HelloResponce { string data = 1;}2.1 p原创 2021-11-04 14:36:17 · 134 阅读 · 0 评论 -
04.什么是GRPC与protobuf?
1.grpcgrpc是一个高性能,开源和通用的RPC框架,面向移动和HTTP/2设计。2.protobufProtocol Buffer 是Google出品的轻量级高效的通讯协议,与json xml属于同一类。目前流行使用的是pb3原创 2021-11-03 18:22:09 · 215 阅读 · 0 评论 -
03.RPC支持Json
标准库的RPC默认采用Go语言特有的gob编码,因此从其它语言调用Go语言实现的RPC服务将比较困难。在互联网的微服务时代,每个RPC以及服务的使用者都可能采用不同的编程语言,因此跨语言是互联网时代RPC的一个首要条件。得益于RPC的框架设计,Go语言的RPC其实也是很容易实现跨语言支持的。Go语言的RPC框架有两个比较有特色的设计:一个是RPC数据打包时可以通过插件实现自定义的编码和解码;另一个是RPC建立在抽象的io.ReadWriteCloser接口之上的,我们可以将RPC架设在不同的通讯协议.原创 2021-10-31 20:21:55 · 194 阅读 · 0 评论 -
02.Go语言RPC初步实现
Go语言的RPC包的路径为net/rpc,也就是放在了net包目录下面。因此我们可以猜测该RPC包是建立在net包基础之上的1.服务端package mainimport ( "net" "net/rpc")type HelloWordService struct{}func (h *HelloWordService) SayHelloWord(request string, reply *string) error { *reply = request + " 打印了'Hello原创 2021-10-31 20:03:19 · 143 阅读 · 0 评论 -
01.什么是RPC?
1.什么是RPC?RPC(Remote Procedure Call)远程过程调用,说人话就是,一个节点请求另一个节点提供的服务对比学习:RPC远程过程对比本地过程调用,将原本在本地运行的函数放到另外一台服务器上面运行。思考:将本地调用变成远程过程调用会面临那些问题?2.本地调用变成远程过程调用将面临的问题本地客户端如何准确找到远端服务器上面的函数?(Call的id映射)如果本地调用的函数有参数,如何将参数传递到远端服务器?(序列化与反序列化)客户端与服务器如何通讯?(网络传输)2.1原创 2021-10-31 19:19:52 · 117 阅读 · 0 评论