zoukankan      html  css  js  c++  java
  • grpc:What is gRPC

    本文将介绍gRPC和protocol buffers。gRPC可以利用protocol buffers作为其接口定义语言(Interface Definition Language,IDL)和信息交换格式。

    预览

    在gRPC中,一个客户端应用可以直接调用不同机器上的服务端应用的方法,就好像调用本地方法一样,这使得创建分布式应用和服务变得很容易。和许多RPC系统一样,gRPC基本思想是定义服务,指定可以被远程调用的方法及其入参和返回类型。在服务端一侧,服务端实现这个接口并运行一个gRPC服务来处理客户端调用。在客户端一侧,客户端有一个stub(在有些语言中叫做client),提供和服务端相同的方法。

    gRPC客户端和服务端可以用不同的语言,如客户端用java,服务端用python。支持的语言有java、python、c、c++、c#、go等。

    默认情况下,gRPC用protocol buffers。protocol buffers是google开源的一套数据序列化方案,目前已经很成熟。当然,gRPC也可以用json。当用protocol buffers时,首先要在proto文件中定义要序列化的数据的结构。示例:

    message Person {
        string name = 1;
        int32 id = 2;
        bool has_ponycopter = 3;
    }

    注意,数据类型都是小写的。

    之后,用protocol buffer编译器protoc来生成数据访问类,里面有各属性的getter/setter方法以及序列化/反序列化方法。

    在proto文件中还要定义service,入参和返回类型都是protocol buffer message。示例:

    message HelloRequest {
        string name = 1;
    }
    
    message HelloReply {
        string message = 1;
    }
    
    service Greeter {
        rpc SayHello (HelloRequest) returns (HelloReply)
    }

    注意,方法名是大写的。

  • 相关阅读:
    三部曲搭建本地nuget服务器(图文版)
    用批处理编译*.sln工程
    一组无序的整数找出出现次数大于一半的数字
    程序打怪升级之旅
    web开发有那些牛逼东西可以用
    Visual Studio for mac从入门到放弃1
    svn自动更新服务器最新代码
    WinRT支持GB2312
    初试Node —— node.js的安装
    为什么要重写equals方法和hashcode方法
  • 原文地址:https://www.cnblogs.com/koushr/p/11428806.html
Copyright © 2011-2022 走看看