网站首页 > 博客文章 正文
本文代码地址
https://gitee.com/shoothzj/grpc-examples
什么是gRPC
gRPC是基于http2实现的一种多语言RPC协议。主要特性有:
- 基于HTTP2,支持多路复用。
- 使用protobuf编码,编码效率高
- 支持10多种语言,如Python、Java、C#、nodejs、C、C++、php、go
gRPC实现细节
gRPC有三个完整实现:C/C++、Java、Go。其他语言底层都是warp C库来实现的。wrap C库的原因主要是出于开发成本、性能的考虑。
个人觉得开发成本非常重要,像pulsar、rocketmq的nodejs客户端,其实也是wrap C库实现的
gRPC定义
定义结构体
gRPC使用.proto文件进行消息格式的定义,我们定义示例如下,这是一个简单的Echo程序,即接收的收入再原封不动地返回回去
syntax = "proto2";
package proto;
enum Comic {
Bleach = 1;
Naruto = 2;
OnePiece = 3;
}
message EchoProto2Req {
required string str_req = 1;
optional string str_opt = 2;
repeated string str_rep = 3;
required int64 int64_req = 4;
optional int32 int32_opt = 5;
required Comic comic = 6;
}
message EchoProto2Resp {
required string str_req = 1;
optional string str_opt = 2;
repeated string str_rep = 3;
required int64 int64_req = 4;
optional int32 int32_opt = 5;
required Comic comic = 6;
}
定义service
service EchoProto2Service {
rpc EchoProto2(EchoProto2Req) returns (EchoProto2Resp);
}
猜你喜欢
- 2024-10-16 Spring Boot集成grpc快速入门demo
- 2024-10-16 如何在 Go 中使用 gRPC?(golang grpc etcd)
- 2024-10-16 gRPC 1.34.0 发布,高性能 RPC 框架
- 2024-10-16 gRPC入坑记(grpc教程 go)
- 2024-10-16 凌鲨(linksaas)的客户端架构(凌肖 鲨鱼)
- 2024-10-16 Python gRPC 入门(grpc python asyncio)
- 2024-10-16 纯干货:微服务开发手册之GRPC(微服务开发入门)
- 2024-10-16 golang中gRPC与gRPC-Gateway的结合使用
- 2024-10-16 gRPC学习记录(一) 概念性知识(grpc特点)
- 2024-10-16 GRPC-C++源码分析(六)--Server-Register
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)