架构设计

服务化基石之远程通信系列三:I/O模型

chenssy阅读(581)评论(0)赞(1)

远程通信系列  I/O模型 I/O即输入/输出(Input/Output)。每个应用系统间都无法完全避免相互的依赖调用,称之为远程通信;每个应用系统自身也将或多或少的产生数据,称之为本地读写。I/O则是远程通信和本地读写的核心。虽...

服务化基石之远程通信系列六:远程调用

chenssy阅读(444)评论(0)赞(0)

远程调用(RPC) 的全称是 Remote Procedure Call 。它是一种网络间通信方式,允许程序调用共享网络中的另一台服务器中应用的方法或函数,而向应用开发者屏蔽远程调用的相关技术细节。RPC应该尽量做到简单、高效和透明化。客户...

Thrift源码分析

chenssy阅读(1102)评论(0)赞(5)

Thrift源码分析– 基本概念 Thrift源码分析– 协议和编解码 Thrift源码分析– IDL和生成代码分析 Thrift源码分析– 方法调用模型分析 Thrift源码分析– FrameBuffer类分析 Thrift源码分析– T...

gRPC 学习笔记

chenssy阅读(1184)评论(0)赞(4)

gRPC学习记录(一)–概念性知识 gRPC学习记录(二)–Hello World gRPC学习记录(三)–proto3知识 gRPC学习记录(四)–官方Demo gRPC学习记录(五)–拦截器分析 gRPC学习记录(六)–客户端连接池

Thrift源码分析– TServer服务器分析

chenssy阅读(430)评论(0)赞(0)

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

Thrift源码分析– Transport传输层分析

chenssy阅读(439)评论(0)赞(0)

RPC作为一种特殊的网络编程,会封装一层传输层来支持底层的网络通信。Thrift使用了Transport来封装传输层,但Transport不仅仅是底层网络传输,它还是上层流的封装。 关于Transport的设计,从架构上看,IO流和网络流都...

Thrift源码分析– FrameBuffer类分析

chenssy阅读(488)评论(0)赞(0)

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

Thrift源码分析– 方法调用模型分析

chenssy阅读(468)评论(0)赞(0)

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

Thrift源码分析– IDL和生成代码分析

chenssy阅读(522)评论(0)赞(0)

IDL是很多RPC框架用来支持跨语言环境调用的一个服务描述组件,一般都是采用文本格式来定义。 更多IDL的思考查看《理解WSDL, IDL》 Thrift的不同版本定义IDL的语法也不太相同,这里使用Thrift-0.8.0这个版本来介绍J...

Thrift源码分析– 协议和编解码

chenssy阅读(556)评论(0)赞(0)

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

Thrift源码分析– 基本概念

chenssy阅读(674)评论(0)赞(2)

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