gRPC

gRPC(一)gRPC介绍

2022-07-09  本文已影响0人  ShootHzj

本文代码地址

https://gitee.com/shoothzj/grpc-examples

什么是gRPC

gRPC是基于http2实现的一种多语言RPC协议。主要特性有:

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);
}
上一篇 下一篇

猜你喜欢

热点阅读