gRPC---proto文件编写及文件介绍

这篇具有很好参考价值的文章主要介绍了gRPC---proto文件编写及文件介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

gRPC—proto文件编写

// 说明我们使用的时proto3语法
syntax = "proto3";

option go_package = ".;service";

// 类似于方法
service SayHello{
    rpc SayHello(HelloRequests) returns(HelloResponse){}
}

// 类似于结构体
message HelloRequests{
    string requestName = 1;
}
message HelloResponse{
    string responseName = 1;
}

在编写完上面的内容后,在/proto目录下执行如下命令:

protoc --go_out=. /hello.proto
protoc --go-grpc_out=. hello.proto

运行完代码后会在proto目录下生成两个.go文件:

hello_grpc.pb.go
hello.pb.go

gRPC—proto文件介绍

message

message关键词类似于结构体,在消息中承载的数据分别对应于每一个字段,其中每一个字段都有一个名字和一种类型

一个proto文件中可以定义多个消息类型

字段规则

required:消息体中必填字段。不设置会导致编码异常,在protobuf2中使用,在protobuf3被删去

optional:消息体中可选字段,protobuf3中没有了required,optional等关键字,都默认为optional

repeate :消息体中 可重复字段,重复的值的顺序会被保留在go中重复的会被定义为切片

消息号

在消息体的定义中,每个字段必须要有唯一的标识号,标识号是[1,2^29-1]范围内的一个整数

嵌套消息

message PersonInfo{
    message Person{
        string name = 1;
        int32 height = 2;
        repeated int32 weight = 3;
    }
    repeated Person info = 1
}

服务定义

如果想要将消息类型用在RPC系统中,可以在 .proto文件中定义一个RPC服务接口,protocol buffer 编译器将会根据所选择的不同语言生成服务器接口代码及存根。

service SearchService{
	rpc Search(SearchRequest) returns (SearchResponse)
}

上述表示定义了一个RPC服务,该方法接受SearchRequest返回SearchResponse文章来源地址https://www.toymoban.com/news/detail-420626.html

到了这里,关于gRPC---proto文件编写及文件介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • launch文件的编写及ROS配置文件的详细介绍

    根据ROS的架构和通信机制来看,ROS的各个功能的实现离不开 节点(node) 和 话题(topic)、参数(parameter)、服务(service) 等构成的 网络拓扑(rosgraph) ,其中每个j节点 都可以完成对应的功能。而一个机器人完整功能的实现,通常需要启动多个节点,如果一个节点一个节点的启动,比较

    2024年02月03日
    浏览(30)
  • webots学习笔记——URDF和PROTO文件生成及导入综述参考

        在学习webots过程中,对于URDF文件生成、PROTO文件的生成,学习了CSDN上的多篇博客,终于实现了自己的文件导入及初步仿真动作的实现。现做一简单汇总,并简要介绍,希望能帮助到有需要的人。       一点体会,有时候很难照着一篇博客从头到尾跟下来就能复现,涉及

    2024年04月22日
    浏览(31)
  • 编写Bash脚本程序从记录文件中提取history命令的优化,再介绍linux bash语法和结构

    目        录 一、引言 二、脚本代码实现 三、bash语法和结构 (一)基本语法 1、脚本开始与结束 2、注释 3、变量 4、数据类型 5、控制结构 6、循环控制 7、函数 8、算术运算 9、算术操作符和逻辑操作符 (二)命令相关 1、命令执行 2、命令的执行顺序 3、命令的执行优先级

    2024年01月25日
    浏览(42)
  • [golang 微服务] 4. gRPC介绍,Protobuf结合gRPC 创建微服务

    gRPC是一个 高性能 、 开源 和 通用 的 RPC 框架 , 面向移动端 和 HTTP/2 设计,目前提供 C、Java 和 Go语言版本,分别是:grpc, grpc-java, grpc-go, 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持 (1).提供几乎所有主流语言的实现, 打破语言隔阂 (2). 基于 HTTP/2 标准设计

    2024年02月04日
    浏览(36)
  • grpc介绍(二)——认证方式

    HTTP是明文传输的,即客户端与服务端之间通信的信息是可见的,这就存在被窃听、冒充或篡改的风险。HTTPS在HTTP和TCP之间加入了TLS协议,如图所示: TLS协议主要解决了以下三个网络安全问题: 信息加密 : HTTP 交互信息是被加密的,第三方就无法被窃取; 校验机制 :校验信

    2023年04月23日
    浏览(25)
  • gRPC-gateway使用介绍

    参考资料:gRPC-Gateway使用指南 服务中,使用了gRPC gateway(代理)来将外部的http请求映射为内部rpc调用。 接下来还需进行一些配置才能完成映射。 (8080端口提供gRPC API服务,8090端口提供HTTP API服务)

    2024年01月23日
    浏览(29)
  • gRpc的四种通信方式详细介绍

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月11日
    浏览(26)
  • golang gRPC:根据.protobuf文件生成go代码

    安装 protoc 编译器。如果没有安装,可以参考官方文档进行安装。 使用 protoc 命令生成 gRPC 代码: 此命令将生成 .pb.go 和 _grpc.pb.go 文件,其中包含 protobuf 和 gRPC 的代码实现. –go_out选项会生成纯粹的Protocol Buffer消息代码,这包括Go语言的消息结构体和一些辅助方法。如果你只

    2024年02月14日
    浏览(37)
  • grpc --- protoc生成的pb.go文件的位置

    一、环境相关版本 protoc-gen-go版本过高时需要指定包名,即go_package   二、go_package配置为当前目录下  /表示生成的pb.go文件在当前目录下。     此时是在demo下执行,所以pb.go文件生成在demo下。       此时是在demo/api下执行,所以pb.go文件生成在demo/api下。   三、go_package配置

    2024年02月16日
    浏览(30)
  • proto中service 作用的理解

    转载请注明出处: 在 proto 文件中,service 用于定义一组 RPC 方法,在服务端实现这些方法,并在客户端调用这些方法进行远程过程调用。 service 的定义方式如下: 其中,MyService 是服务的名称,MyMethod 是方法的名称,MyRequest 和 MyResponse 分别是输入和输出消息的类型。 在 Java

    2024年02月05日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包