美文网首页
GRPC 浅析

GRPC 浅析

作者: 一只重拾梦想的小水 | 来源:发表于2019-08-29 19:12 被阅读0次

原理:

GRPC原理解析

IDL(proto buffer) + RPC
netty:异步/事件驱动的 网络应用程序服务器框架(高性能)
Http2:流式、双向
protobuf:序列化(节省网络带宽)

IDL定义示例:

rpc SayHello(HelloRequest) returns (HelloResponse){
}
message HelloRequest {
  string greeting = 1;
}
message HelloResponse {
  string reply = 1;
}

使用:

Starting from a service definition in a .proto file, gRPC provides protocol buffer compiler plugins that generate client- and server-side code.

grpc node文档

  • .proto
  • protoc编译
    静态:grpc-tools. grpc_tools_node_protoc
    动态:protoLoader.loadSync
  • server
  • client


    common
    server
    client

    key code:
    protoLoader.loadSync(proto_path: string): PackageDefinition


    packageDefinition
    grpc.loadPackageDefinition(packageDefinition: PackageDefinition): GrpcObject
    GrpcObject

与Http对比:

Http:如果没有API文档就不知道细节,
GRPC:IDL就相当于API文档,可以同时
开发顺序:
Http:先服务端后客户端
GRPC:可以同时

与Thrift对比:

跨语言:都支持多语言
性能:GRPC远差于Thrift,因为用了Http2,各大server目前支持不完善
易用性:GRPC尚未完全提供连接池、服务自动发现、进程内负载均衡等高级特性,需要开发人员额外的封装;

优点:

多语言
Http2特性:如stream

缺点:

易用性:GRPC尚未完全提供连接池、服务自动发现、进程内负载均衡等高级特性,需要开发人员额外的封装

相关文章

网友评论

      本文标题:GRPC 浅析

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