GRPC works across languages and platforms

GRPC是google开源的一个高性能、跨语言的RPC框架,基于HTTP协议,基于protobuf 3.x。grpc的优点在这里不再赘述。本文只针对选定grpc作为服务框架的同学参考。


关于跨语言使用我们就拿前台编写比较火的Nodejs和分布云计算的宠儿golang作为例子。当然这里我们使用golang编写server端,nodejs编写client。首先我们先确定要想完成这个过程我们需要什么条件:

  • 安装golang和Nodejs的grpc库。

  • 安装protobuf编译器protoc(.proto文件作为输入完成代码的自动生成)。

  • 生成编译器protoc的各个语言的插件for example Nodejs:grpc_node_plugin, golang:protoc-gen-gogo

  • .proto文件相当于接口文档之类的文件,用于代码自动生成的原始文件,所以说grpc的跨语言转换no pain(我是这么理解的)

根据以上的分析大体的过程我们已经理解,下面我们将详细讲解各个步骤该如何完成:

  1. 安装grpc库

    golang:下载google.golang.org/grpc 包放到GOPATH中,用过golang的都知道怎么搞,这里不多说。
    Nodejs:

    • Clone the grpc Git Repository.
    • Run npm install from the repository root.
  2. 安装protobuf编译器protoc(3.0+)

curl -sSL https://github.com/google/protobuf/releases/download/v3.0.0-beta-3/protoc-3.0.0-beta-3-linux-x86_64.zip -o protoc-3.0.0-beta-3-linux-x86_64.zip
unzip protoc-3.0.0-beta-3-linux-x86_64.zip
sudo mv protoc /usr/bin/protoc
  1. 生成 protoc的各个语言的插件
$ [sudo] apt-get install build-essential autoconf libtool //准备编译环境
$ git clone -b $(curl -L http://grpc.io/release) https://github.com/grpc/grpc  //clone grpc project and checkout 到一个release版本
$ cd grpc
$ git submodule update --init
$ make //这是会在bins文件夹下生成很多个二进制可执行文件,其中包括 grpc_node_plugin
以上的插件生成适用于非golang,golang protoc 插件需要自己使用 github.com/gogo/protobuf库构建。
  1. 使用.proto文件进行代码的自动生成

    以Nodejs为例:

$ cd ../protos
$ protoc --js_out=import_style=commonjs,binary:../node/static_codegen/ --grpc_out=../node/static_codegen --plugin=protoc-gen-grpc=grpc_node_plugin helloworld.proto //注意这里grpc_node_plugin是能够找到插件的路径

执行完以上的命令后生成两个文件 helloworld_pb.js hellowprld_grpc_pb.js至此我们的工作可以说已经成功了一半,接下来要做的就是使用这两个文件构建client至于如何使用这两个文件构建client请戳这里

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值