HSF框架流程设计及原理.pdf
文本预览下载声明
简介:轻量封装 Ibatis3
因为本人在国内最大的电子商务公司工作期间,深感一个好的分表分库框架可以大大提高系统的承载能力及系统的
灵活性,而一个不好的分表分库方案,则让系统在大数据量处理的时候非常郁闷。所以, 在根据笔者在从事电子商务开发
的这几年中,对各个应用场景而开发的一个轻量封装 Ibatis3 的一个分表分库框架。
笔者工作的这几年之中,总结并开发了如下几个框架: summercool (Web 框架,已经应用于某国内大型网络公
司的等重要应用) 、summercool-hsf (基于Netty 实现的 RPC 框架, 已经应用国内某移动互联网公司) 、 summercool-ddl
(基于Mybaits 的分表分库框架,已经应用国内某移动互联网公司) ;相继缓存方案、和消息系统解决方案也会慢慢开源。
Summercool 框架做为笔者的第一个开源框架
summercool-hsf :/svn/trunk
我的官方微博: /vanwelldotcn
我的官方扣群: 102934900
1. 什么是 HSF 框架
HSF 框架是一个高性能远程通信框架,底层基于 Netty 实现 TCP 通信,对上层进行封装,提供易于使用和高度可扩展能力。
名词解译:
1)Channel :可以理解为一个通道,或者连接
2 )ChannelGroup :多个通道组合成为一个 ChannelGroup
2.HSF 工作流程
3. 消息协议设计
消息协议这里是指对消息编码和解码的规范的一种定义, HSF内置的消息协议采用如下结构:
Length :以 4 个字节表示,是指 ID + Content 的长度。
ID :以 1 个字节表示,1 表示 Content 部分被压缩,0 表示未被压缩。
Content :真实的消息内容。
4. 处理器
Netty 框架原生提供一个处理器链对事件进行处理,每个处理器均实现 ChannelHandler 接口, ChannelHandler 是个
空接口,拥有三个子接口: ChannelDownstreamHandler, ChannelUpstreamHandler 和
LifeCycleAwareChannelHandler 。这里我们主要关注前两个接口,因为它们被用来处理读与写的消息。
事件主要分为三种: ChannelEvent 、MessageEvent 和 ExceptionEvent ,一旦这些事件被触发,它们将从处理器链的
一端到另一端,被逐个处理器处理,注意,整个过程是单线程场景。一般而言, ChannelEvent 和 ExceptionEvent 事件都
是从底层被触发,因此,它们会被 ChannelUpstreamHandler 处理。而 MessageEvent 则需要根据读与写方式的不同,
分别从两个方向被 ChannelUpstreamHandler 和 ChannelDownstreamHandler 处理。
HSF 内置的编 ( 解 ) 码处理器、压缩 ( 解压 ) 处理器及序列化 ( 反序列化 ) 处理器等都是直接或间接实现 ChannelHandler 。
ChannelDownstreamHandler
Java 代码
1. public interface ChannelDownstreamHandler extends ChannelHandler {
2. /**
3. * Han
显示全部