`
xylong
  • 浏览: 187760 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

网络框架及rpc实现

 
阅读更多

目前关于网络框架,什么基于事件架构(EDA)、异步、无阻塞,高性能等概念充斥,像这样框架真的太多。其中

mina、netty、grizzy等比较原始,相当于鼻祖,国内比较知名且基于以上的也很多、hsf、dubbo、venus等、先就一个标题,后面再把心得补充上去。

 

----------------------------------------------------华丽分割:于2013/9/4补充-----------------------------------------------

 

这里找了比较有代表性的一个框架summercool-hsf(http://summercool-hsf.googlecode.com/svn/trunk),听名字可能比较山寨,但整体代码还是很不错的,至少比一般类似rpc框架代码就简单得多,而且比较好看,我想,这样的代码应该符合大道至简的哲理吧,同时还分享一句在微博看到的句子,【如果你发现一堆比较别扭,纠结,混乱的代码,多半是有问题容易出现bug的代码】,编码这么长时间,我发现和作者有同感啊。

 

summercool-hsf在模仿hsf(high speed service framework),但绝对轻量级,除了最基本和核心的功能,作者还提供了一些辅助功能,但按照目前github开源工程中来说,这些辅助功能基本也是标配了,作者提供了基本统计分析功能(在statistic包中)、configserver(类似配置中心),jmx(框架基本监控功能)等,除此之外,summer-hsf底层通信框架只要建立在netty之上,接着下面,我会一步一步讲解这个框架是如何实现rpc功能的,当然也可以直接移步作者的博客(http://dragonsoar.iteye.com/blog/1769335)。

 

首先从网络编程基本基本的点来讲讲吧

 

1、关于压缩与序列化的算法,这个可能直接影响到该rpc框架的性能,当然序列化更是网络编程中不可忽视的环节,同时也是难点(容易出错)

hsf工程中分别划分两个包来做了简单实现、serializer包主要实现了两种序列化方法,一种是jdk自带的序列化,详见objectSerializer,另一个是kryoSerializer,至于两者优劣,没有做过测试,后面可就序列化单独再开一篇笔记来深入讲解、compression这个包主要讲了两种压缩方式,可支持的参数也很少,整个实现代码很简洁。

 

--------------------------------------------2013.9.5补充---------------------------------------------------------------------

只能不停地看,不断地学了,看了这么久的源代码,发现自己始终没有找到一种对自己适用的方式,可能还是底子不够硬,继续不断地学习,不是说,如果你学习一个东西,发现很吃力,可能某个环节比较薄弱,只能停下来,巩固相关背景知识了,发现框架代码关联性还是很强,不够纵观全局,迷迷糊糊,看某一块可能很简单,连接起来一堆堆地代码直接压死你,废话可能有点多,hsf是基于netty,可能需要对netty有一个大致认识,读取hsf源码才会轻松一点,(http://www.kafka0102.com/2010/06/161.html)讲解netty的文章,比较好

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics