美文网首页
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