内容简介:之前写了几篇关于 Protoco Buffer 的文章。
之前写了几篇关于 Protoco Buffer 的文章。
gRPC in ASP.NET Core 3.x - gRPC 简介(1)
gRPC in ASP.NET Core 3.x - gRPC 简介(2)
当gRPC使用Protocol Buffer作为传输协议的时候,Protocol Buffer里所有的规则仍然都适用。但是在gRPC使用Protocol Buffer的时候,会添加一些额外的规则和语法,以便让gRPC能和它完美配合。
首先就是service关键字,它用来定义一个gPRC service:
在service里面,可以定义rpc调用,也就是client想让server做的事情。
-
这里面就定义了一个rpc调用,名字叫GetByName。
-
在调用里,我们还需要发送一个Request(请求消息),Request必须是消息类型, 不可以发送整型,bool等原始类型,更不可以是void。
-
同样的,Response(响应消息)也是 消息类型,也不可以使用整型,bool,void等等。
如果请求或响应没有任何东西,那么就使用空的消息类型,但是必须带有消息。
一旦service定义好之后,我们就使用带有这个service的Protocol Buffer消息定义所在的文档,调用Protoc编译器来对它进行编译,编译后:
-
首先会生成一个client的stub(桩),也就是为client生成的用于来server交互的代码。我们只需要调用这个生成的client即可,其它的一些诸如序列化、反序列化的细节都不用我们操心。
-
然后也会生成server interface,server这部分分为两块:
-
一部分是消息接口的定义,这些接口我们需要去实现。例如C#,就会生成IEmployeeService之类的接口。
-
另外一部分就是负责序列化、反序列化等工作的代码。
一个 service 定义的例子
service Employee {
rpc GetByName (Request) returns (Response)
rpc GetAll (Request) returns (stream Response)
rpc UploadFile (stream Request) returns (Response)
rpc Save(stream Request) returns (stream Response)
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Protocol Buffers 学习(1):定义一个消息
- Protocol Buffers 学习(1):定义一个消息
- 顺序消息管道 message pipe v1.0.3 发布,新增消息元数据定义
- 顺序消息管道 message pipe v1.0.3 发布,新增消息元数据定义
- knockout.js – 自定义错误消息和位置
- Laravel Validator 自定义错误返回提示消息以及前端展示
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
编写可读代码的艺术
Boswell, D.、Foucher, T. / 尹哲、郑秀雯 / 机械工业出版社 / 2012-7-10 / 59.00元
细节决定成败,思路清晰、言简意赅的代码让程序员一目了然;而格式凌乱、拖沓冗长的代码让程序员一头雾水。除了可以正确运行以外,优秀的代码必须具备良好的可读性,编写的代码要使其他人能在最短的时间内理解才行。本书旨在强调代码对人的友好性和可读性。 本书关注编码的细节,总结了很多提高代码可读性的小技巧,看似都微不足道,但是对于整个软件系统的开发而言,它们与宏观的架构决策、设计思想、指导原则同样重要。编......一起来看看 《编写可读代码的艺术》 这本书的介绍吧!