简介
我司采用的RPC框架是apache开源的thrift,并在上层封装了服务注册和自动分配的功能,我将在两个部分分别介绍我司的RPC框架,首先是从底层进行分析整个的工作原理,下一步完成给thrift添加上下文,最终介绍我司的封装
Thrift源于Facebook, 目前已经作为开源项目提交给了Apahce。Thrift解决了Facebook各系统的大数据量传输通信和内部不同语言环境的跨平台调用。
官网
Thrift的官方网站: http://thrift.apache.org/
特点
作为一个高性能的RPC框架,Thrift的主要特点有
- 基于二进制的高性能的编解码框架
- 基于NIO的底层通信
- 相对简单的服务调用模型
- 使用IDL支持跨平台调用
核心组件
Thrift其中包含了如下的几个核心组件:
- TProtocol: 协议和编解码组件
- TTransport: 传输组件
- TProcessor: 服务调用组件
- TServer,Client: 服务器和客户端组件
- IDL: 服务描述组件,负责生产跨平台客户端
我会在后面的文章中依次介绍每一个组件
建议
在学习本系列文章之前,建议具备的知识点:
- socket网络编程
- NIO基础知识,以及nio、socket实现机制