Thrift_01——简介:远程过程调用协议

一、RPC (Remote produce call)远程过程调用协议

特点:使用自定义的TCP协议,请求报文体积小,基于Thrift可以实现高效的二进制传输,提高了传输性能,一般都会自带负载均衡,能做到自动通知,不会影响上游。

二、远程调用的步骤:

一次远程的调用经历了一下10个步骤:

1.调用客户端以本地方式调用远程服务
2.client stub将请求(方法和参数)组装成网络消息
3.client stub找得到服务器地址,将消息传送到远程主机
4.server stub得到传送过来的请求,进行解码
5.server stub 调用本地服务,处理请求
6.本地服务处理请求,并将处理结果返回给server stub
7.server stub将请求处理结果组装成网络消息
8.server stub找到客户端地址,将请求处理结果传送给客户端
9.client stub 接收到请求处理结果,进行解码
10.客户端最终接收到请求处理结果

RPC框架的目的就是将2-9步骤封装起来,对使用者透明,客户端只需要执行第一步调用接口,然后就能够得到结果。这样是不是很方便,而且省去了很多麻烦。

三、Thrift的特点:轻量级、跨语言

四、架构分层

服务层:提供具体网络线程、I/O服务模型

处理层:由具体的IDL(交互式数据语言 )生成具体的底层网络传输和序列化方式。

协议层:定义了数据传输的格式和负责数据的序列化和反序列化。

传输层:负责从网络中write/read,定义了网络的传输协议,如TCP/IP协议。

五、基本的数据类型:

基本:bool、byte、i16、i32、i64、double、string、binary(二进制)

结构体类型:struct

容器类型:list、set、map

异常:exception

服务:service具体对应的类

六、MacOs 安装过程:

http://thrift.apache.org/docs/install/os_x

https://www.jianshu.com/p/d6fa5e237d2d

遇到bison版本提示过低的错误,参考:
http://blog.sina.com.cn/s/blog_62c89b450102wehg.html
又遇到Mac OS 15 系统权限问题无法修改/usr/bin内容,参考:
https://blog.csdn.net/Bule_daze/article/details/102681313
最后安装成功。

你可能感兴趣的:(Golang,微服务,服务端)