美文网首页gRPC
gRPC(一)gRPC介绍

gRPC(一)gRPC介绍

作者: ShootHzj | 来源:发表于2022-07-09 16:35 被阅读0次

本文代码地址

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);
}

相关文章

网友评论

    本文标题:gRPC(一)gRPC介绍

    本文链接:https://www.haomeiwen.com/subject/thcibrtx.html