文档详情

HSF框架流程设计及原理.pdf

发布:2020-09-20约2.58万字共16页下载文档
文本预览下载声明
简介:轻量封装 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
显示全部
相似文档