gRPC简介

本文介绍了gRPC,一个由Google开源的高性能RPC框架,它支持多种语言和平台,利用Protocol Buffers(proto3)进行序列化。gRPC基于HTTP/2标准,支持双向流和连接多路复用。Protocol Buffers是一种可扩展的序列化机制,用于结构化数据的序列化和反序列化。文中还详细讲解了Protocol Buffers的语法,包括消息定义、服务定义、数据类型等。

gRPC,Protocol Buffers简介

  1. 简介
    • gRPC是由Google公司开源的高性能RPC框架。

    • gRPC支持多语言

      gRPC原生使用C、Java、Go进行了三种实现,而C语言实现的版本进行封装后又支持C++、C#、Node、ObjC、 Python、Ruby、PHP等开发语言

    • gRPC支持多平台

      支持的平台包括:Linux、Android、iOS、MacOS、Windows

    • gRPC的消息协议使用Google自家开源的Protocol Buffers协议机制(proto3) 序列化

    • gRPC的传输使用HTTP/2标准,支持双向流和连接多路复用
      在这里插入图片描述

  2. 架构

    C语言实现的gRPC支持多语言,其架构如下
    在这里插入图片描述

  3. 使用方法
    1. 安装

      pip install grpc
      pip install grpcio-tools
      
    2. 使用

      1. 使用Protocol Buffers(proto3)的IDL接口定义语言定义接口服务,编写在文本文件(以.proto为后缀名)中。

      2. 使用protobuf编译器生成服务器和客户端使用的stub代码

      3. 编写补充服务器和客户端逻辑代码

  4. Protocol Buffers

    Protocol Buffers 是一种与语言无关,平台无关的可扩展机制,用于序列化结构化数据。使用Protocol Buffers 可以一次定义结构化的数据,然后可以使用特殊生成的源代码轻松地在各种数据流中使用各种语言编写和读取结构化数据。

    现在有许多框架等在使用Protocol Buffers。gRPC也是基于Protocol Buffers。 Protocol Buffers 目前有2和3两个版本号。

    在gRPC中推荐使用proto3版本。

    1. 文档结构
      1. Protocol Buffers版本

        Protocol Buffers文档的第一行非注释行,为版本申明,不填写的话默认为版本2。

        syntax = "proto3";
        或者
        syntax = "proto2";
        
      2. Package包

        Protocol Buffers 可以声明package,来防止命名冲突。 Packages是可选的。

        package foo.bar;
        message Open { ... }
        

        使用的时候,也要加上命名空间,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值