Thrift源码分析(九)-- 扩展Thrift框架来实现Attachable的RPC调用

最近有一个分布式调用跟踪系统,需要给基于Thrift的RPC调用添加调用链上下文信息,从而可以生成一次调用的调用链。这篇讲讲如何扩展Thrift框架来实现RPC过程中无侵入地添加额外attachment信息的场景。 Thrift框架本身提供了很多机制来支持扩展,比如 1. 实现TProtoco...

2015-04-20 18:27:55

阅读数:3959

评论数:4

Thrift源码分析(八)--总结加一个完整的可运行的Thrift例子

前面七篇文章分析了Thrfit的方方面面,看到这里时应该对Thrift有了深入的理解。 Thrift源码分析(一)-- 基本概念 Thrift源码分析(二)-- 协议和编解码 Thrift源码分析(三)-- IDL和生成代码分析 Thrift源码分析(四)-- 方法调用模型分析 Thri...

2014-09-30 16:32:58

阅读数:5702

评论数:0

Thrift源码分析(七)-- TServer服务器分析

Thrift采用了TServer来作为服务器的抽象,提供了多种类型的服务器实现。用TServerTransport作为服务器的Acceptor抽象,来监听端口,创建客户端Socket连接 先来看看TServerTransport。主要有两类 1. TNonblockingServerTra...

2014-09-30 16:20:24

阅读数:4842

评论数:0

Thrift源码分析(六)-- Transport传输层分析

RPC作为一种特殊的网络编程,会封装一层传输层来支持底层的网络通信。Thrift使用了Transport来封装传输层,但Transport不仅仅是底层网络传输,它还是上层流的封装。 关于Transport的设计,从架构上看,IO流和网络流都是IO的范畴,用一个统一的接口来抽象并无不可,但是个人感...

2014-09-30 13:58:03

阅读数:6340

评论数:0

Thrift源码分析(五)-- FrameBuffer类分析

FrameBuffer是Thrift NIO服务器端的一个核心组件,它一方面承担了NIO编程中的缓冲区的功能,另一方面还承担了RPC方法调用的职责。 FrameBufferState定义了FrameBuffer作为缓冲区的读写状态 private enum FrameB...

2014-09-30 11:34:06

阅读数:5781

评论数:0

Thrift源码分析(四)-- 方法调用模型分析

RPC调用本质上就是一种网络编程,客户端向服务器发送消息,服务器拿到消息之后做后续动作。只是RPC这种消息比较特殊,它封装了方法调用,包括方法名,方法参数。服务端拿到这个消息之后,解码消息,然后要通过方法调用模型来完成实际服务器端业务方法的调用。 这篇讲讲Thrfit的方法调用模型。Th...

2014-09-30 10:12:46

阅读数:4572

评论数:2

Thrift源码分析(三)-- IDL和生成代码分析

IDL是很多RPC框架用来支持跨语言环境调用的一个服务

2014-09-24 14:10:11

阅读数:8285

评论数:0

Thrift源码分析(二)-- 协议和编解码

协议和编解码是一个网络应用程序的核心问题之一,客户端和服务器通过约定的协议来传输消息(数据),通过特定的格式来编解码字节流,并转化成业务消息,提供给上层框架调用。 Thrift的协议比较简单,它把协议和编解码整合在了一起。抽象类TProtocol定义了协议和编解码的顶层接口。个人感觉采用抽象类而不...

2014-09-23 14:16:14

阅读数:7974

评论数:0

Thrift源码分析(一)-- 基本概念

我所在的公司使用Thrift作为基础通信组件,相当一部分的RPC服务基于Thrift框架。公司的日UV在千万级别,Thrift很好地支持了高并发访问,并且Thrift相对简单地编程模型也提高了服务地开发效率。 Thrift源于Facebook, 目前已经作为开源项目提交给了Apahce。Thrif...

2014-09-23 11:56:27

阅读数:8685

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭