gRPC学习笔记

gRPC 是 google 最新发布的开源 RPC 框架, 声称是"一个高性能,开源,将移动和HTTP/2放在首位的通用的RPC框架.". 技术栈非常的新, 基于HTTP/2, netty4.1, proto3, 拥有非常丰富而实用的特性, 堪称新一代RPC框架的典范.

//上面这段话是我抄的,其实我之前连RPC是什么都不知道,

关于RPC,如果你和我一样根本不知道是什么,请参考这里 

我对RPC的理解就是,一层封装,使得不在同一个机器上的程序A可以一个调用另一个程序B,而不需要考虑这两台机器,以及这两个程序使用的语言的不同。

而gRPC是诸多RPC框架中比较新,也比较好用的一个。

学习gRPC需要会使用protobuf3,关于protobuf,可以参考protobuf学习笔记

官方文档 还是要给出的,虽然我没怎么看就是了orz

gRPC的安装

参考这个,从源码编译安装

 $ [sudo] apt-get install build-essential autoconf libtool pkg-config
 $ [sudo] apt-get install libgflags-dev libgtest-dev
 $ [sudo] apt-get install clang libc++-dev
 $ git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc
 $ cd grpc
 $ git submodule update --init
 $ make
 $ [sudo] make install

如果出现

configure: error: cannot find install-sh, install.sh, or shtool <span class="pl-k">in</span> <span class="pl-s"><span class="pl-pds">"</span>.<span class="pl-pds">"</span></span> <span class="pl-s"><span class="pl-pds">"</span>./..<span class="pl-pds">"</span></span> <span class="pl-s"><span class="pl-pds">"</span>./../..<span class="pl-pds">"</span></span>

参考

Compile fails on Ubuntu 14.04 ?  发现是protobuf的锅,需要手动编译一下:

cd third_party/protobuf
sudo ./autogen.sh (not sure why this requires sudo - maybe it has been
fixed now)
sudo ./configure CC=clang CXX=clang++ (requires sudo because previous step
polluted things) (clang is optional)
sudo make (requires sudo because previous step polluted things)
sudo make install
sudo ldconfig

gRPC的使用

grpc/examples下有一些例子,自己搞搞就会写基本的了。(已经硬着头皮用gRPC写了一个项目的通信部分了orz...其实还挺容易的。但是项目的代码没办法放上来。。。所以。。直接看examples的代码就好了。