`

talent-nio3.0.0发布

阅读更多

什么是talent-nio:

顾名思议talent-nio是个nio框架,类似netty和mina,但使用方式与之相差很大。该框架于2010年诞生(那时还不是一个框架,是和业务代码纠缠在一起的),2011年进行了简单封装,2013年进行了深度封装。

 

哪些项目在使用talent-nio:

由于该框架尚未推广,所以使用的项目都是本人带的俩个项目,一个是中兴的网管,一个主站要管几百个刀片的,主站和刀片用tcp长连接保持通信;另一个是给华为做的一个项目,不方便透露。这两项目中虽然用到的,但是业务代码和框架代码纠缠在一起。本框架的主体开发以及后来的封装基本都是业余时间完成的。所以本人才能在这里公开源代码哈!仔细看源代码,你会发现源代码的时间跨度很大,也有不少注释不匹配,这些都是修改的痕迹。

 

talent-nio性能

以前进行过3个月的拷机测试,每秒处理8M数据,没有问题的。有兴趣的朋友可以帮忙测试,我对测试不是太在行,一般是公司的测试人员帮忙测试。

 

talent-nio总体架构

talent-nio用到了talent-thread-pool同步线程池框架,该框架也是诞生于2010年,之后一直未动,所以在说talent-nio总体架构前先说一下同步线程池框架。

 

talent-thread-pool简介

talent-thread-pool是一个可以保证同一个runnable在同一时刻只会被同一个线程调用的线程池框架,它是基于jdk5内置的线程池的。下面三张图,是对该框架的简要介绍。

 

 

 

 

再回到前面说一下talent-nio对消息的处理过程,下图是接收过程(此图作于1年前,由于框架最近作了些调,所以类名可能会有出入,但处理过程是一样的,最多就是有些职责丢给应用了)

 

发送数据的过程,这个过程相对比较简单

 

 

附件talent-thread-pool-3.0.0-talent.jar是talent-nio依赖的线程池框架,其它依赖了一些jar,网上都有下的 

 

为了验证talent-nio框架,在talent-nio的基础上实现了小部分的http协议,有兴趣的同学可以玩玩

com.talent.platform.socket.demo.server.ServerMain.main()启动监听服务,端口9898。你可以在浏览器中访问:http://127.0.0.1:9898/xx  (xx可以随便写,但有几个特殊的,服务器会返回有意义的东西,可以去看源代码。)

com.talent.platform.socket.demo.client.ClientMain.main()是基于talent-nio的客户端,它会启动300个tcp长连接到9898上

 

大家可以用这个框架写一些tcp长连接的测试工具,还是比较方便的。

 

说明:

目前本框架部分API和类组织得欠妥,未来1-3个月会有大量调整。

 

  • 大小: 112.6 KB
  • 大小: 94.2 KB
  • 大小: 80.1 KB
  • 大小: 119.1 KB
  • 大小: 112.6 KB
分享到:
评论
3 楼 gutigear 2013-09-22  
谢谢
代码写的不错
tywo45 写道
gutigear 写道
请问talent-nio和netty/mina相比有什么优缺点?


大体上talent-nio有如下一些特点:
1、速度快,前年拷机测试可以达到8m/s,这个速度还是相当快的,而且当时的服务器只有4G内存
2、开放给应用的接口,更自然,譬如咱们要完成一个长连接tcp server,我们大体会要经历如下几个步骤:
   1、定义一个packet对象
   2、把packet对象encode成byte[]以便发送
   3、能把byte[]组包成packet对象,以便业务处理
   4、处理业务类的handler
   5、检测心跳
   6、发送心跳
   7、维护client
以上几个步骤,前4个步骤在talent-nio都有对应的接口供应用完成,5、6和7则交给应用自己去处理,talent-nio提供其实现必须的api,譬如获取当前所有连接上下文
3、本框架封装较少,基本上是用原生态的组件做的,可以作为一个很好的参考学习资料。
4、本框架的优化空间比较大,大家可以通过优化它来达到学习的目的。

大家有什么好的建议和需求也可以和我交流,谢谢!最近一年的业余时间会花主要精力在这个框架上面。

2 楼 tywo45 2013-09-21  
gutigear 写道
请问talent-nio和netty/mina相比有什么优缺点?


大体上talent-nio有如下一些特点:
1、速度快,前年拷机测试可以达到8m/s,这个速度还是相当快的,而且当时的服务器只有4G内存
2、开放给应用的接口,更自然,譬如咱们要完成一个长连接tcp server,我们大体会要经历如下几个步骤:
   1、定义一个packet对象
   2、把packet对象encode成byte[]以便发送
   3、能把byte[]组包成packet对象,以便业务处理
   4、处理业务类的handler
   5、检测心跳
   6、发送心跳
   7、维护client
以上几个步骤,前4个步骤在talent-nio都有对应的接口供应用完成,5、6和7则交给应用自己去处理,talent-nio提供其实现必须的api,譬如获取当前所有连接上下文
3、本框架封装较少,基本上是用原生态的组件做的,可以作为一个很好的参考学习资料。
4、本框架的优化空间比较大,大家可以通过优化它来达到学习的目的。

大家有什么好的建议和需求也可以和我交流,谢谢!最近一年的业余时间会花主要精力在这个框架上面。
1 楼 gutigear 2013-09-21  
请问talent-nio和netty/mina相比有什么优缺点?

相关推荐

    talent-nio3.0.0备份

    NULL 博文链接:https://tywo45.iteye.com/blog/1950250

    httpcore-nio-4.4.6-API文档-中文版.zip

    赠送jar包:httpcore-nio-4.4.6.jar 赠送原API文档:httpcore-nio-4.4.6-javadoc.jar 赠送源代码:httpcore-nio-4.4.6-sources.jar 包含翻译后的API文档:httpcore-nio-4.4.6-javadoc-API文档-中文(简体)版.zip ...

    httpcore-nio-4.4.15-API文档-中文版.zip

    赠送jar包:httpcore-nio-4.4.15.jar 赠送原API文档:httpcore-nio-4.4.15-javadoc.jar 赠送源代码:httpcore-nio-4.4.15-sources.jar 包含翻译后的API文档:httpcore-nio-4.4.15-javadoc-API文档-中文(简体)版....

    httpcore-nio-4.4.10-API文档-中英对照版.zip

    赠送jar包:httpcore-nio-4.4.10.jar; 赠送原API文档:httpcore-nio-4.4.10-javadoc.jar; 赠送源代码:httpcore-nio-4.4.10-sources.jar; 赠送Maven依赖信息文件:httpcore-nio-4.4.10.pom; 包含翻译后的API文档...

    xnio-nio-3.8.4.Final-API文档-中英对照版.zip

    赠送jar包:xnio-nio-3.8.4.Final.jar; 赠送原API文档:xnio-nio-3.8.4.Final-javadoc.jar; 赠送源代码:xnio-nio-3.8.4.Final-sources.jar; 赠送Maven依赖信息文件:xnio-nio-3.8.4.Final.pom; 包含翻译后的API...

    httpcore-nio-4.4.15-API文档-中英对照版.zip

    赠送jar包:httpcore-nio-4.4.15.jar 赠送原API文档:httpcore-nio-4.4.15-javadoc.jar 赠送源代码:httpcore-nio-4.4.15-sources.jar 包含翻译后的API文档:httpcore-nio-4.4.15-javadoc-API文档-中文(简体)-...

    httpcore-nio-4.4.5-API文档-中文版.zip

    赠送jar包:httpcore-nio-4.4.5.jar; 赠送原API文档:httpcore-nio-4.4.5-javadoc.jar; 赠送源代码:httpcore-nio-4.4.5-sources.jar; 赠送Maven依赖信息文件:httpcore-nio-4.4.5.pom; 包含翻译后的API文档:...

    httpcore-nio-4.4.10-API文档-中文版.zip

    赠送jar包:httpcore-nio-4.4.10.jar; 赠送原API文档:httpcore-nio-4.4.10-javadoc.jar; 赠送源代码:httpcore-nio-4.4.10-sources.jar; 赠送Maven依赖信息文件:httpcore-nio-4.4.10.pom; 包含翻译后的API文档...

    xnio-nio-3.8.4.Final-API文档-中文版.zip

    赠送jar包:xnio-nio-3.8.4.Final.jar; 赠送原API文档:xnio-nio-3.8.4.Final-javadoc.jar; 赠送源代码:xnio-nio-3.8.4.Final-sources.jar; 赠送Maven依赖信息文件:xnio-nio-3.8.4.Final.pom; 包含翻译后的API...

    httpcore-nio-4.3.jar包

    用Java实现非阻塞通信 ,用ServerSocket和Socket来编写服务器程序和客户程序,是Java网络编程的最基本的方式。 httpcore-nio-4.3.jar包

    httpcore-nio-4.4.14-API文档-中文版.zip

    赠送jar包:httpcore-nio-4.4.14.jar; 赠送原API文档:httpcore-nio-4.4.14-javadoc.jar; 赠送源代码:httpcore-nio-4.4.14-sources.jar; 赠送Maven依赖信息文件:httpcore-nio-4.4.14.pom; 包含翻译后的API文档...

    xnio-nio-3.8.0.Final-API文档-中英对照版.zip

    赠送jar包:xnio-nio-3.8.0.Final.jar; 赠送原API文档:xnio-nio-3.8.0.Final-javadoc.jar; 赠送源代码:xnio-nio-3.8.0.Final-sources.jar; 赠送Maven依赖信息文件:xnio-nio-3.8.0.Final.pom; 包含翻译后的API...

    httpcore-nio-4.4.6-API文档-中英对照版.zip

    赠送jar包:httpcore-nio-4.4.6.jar; 赠送原API文档:httpcore-nio-4.4.6-javadoc.jar; 赠送源代码:httpcore-nio-4.4.6-sources.jar; 赠送Maven依赖信息文件:httpcore-nio-4.4.6.pom; 包含翻译后的API文档:...

    xnio-nio-3.8.0.Final-API文档-中文版.zip

    赠送jar包:xnio-nio-3.8.0.Final.jar; 赠送原API文档:xnio-nio-3.8.0.Final-javadoc.jar; 赠送源代码:xnio-nio-3.8.0.Final-sources.jar; 赠送Maven依赖信息文件:xnio-nio-3.8.0.Final.pom; 包含翻译后的API...

    基于java的开发源码-NIO网络框架 xSocket.zip

    基于java的开发源码-NIO网络框架 xSocket.zip 基于java的开发源码-NIO网络框架 xSocket.zip 基于java的开发源码-NIO网络框架 xSocket.zip 基于java的开发源码-NIO网络框架 xSocket.zip 基于java的开发源码-NIO网络...

    httpcore-nio-4.4.9.jar

    httpcore-nio-4.4.9.jar

    httpcore-nio-4.4.12-API文档-中文版.zip

    赠送jar包:httpcore-nio-4.4.12.jar; 赠送原API文档:httpcore-nio-4.4.12-javadoc.jar; 赠送源代码:httpcore-nio-4.4.12-sources.jar; 赠送Maven依赖信息文件:httpcore-nio-4.4.12.pom; 包含翻译后的API文档...

    httpcore-nio-4.4.4-API文档-中文版.zip

    赠送jar包:httpcore-nio-4.4.4.jar; 赠送原API文档:httpcore-nio-4.4.4-javadoc.jar; 赠送源代码:httpcore-nio-4.4.4-sources.jar; 赠送Maven依赖信息文件:httpcore-nio-4.4.4.pom; 包含翻译后的API文档:...

    httpcore-nio-4.4.12-API文档-中英对照版.zip

    赠送jar包:httpcore-nio-4.4.12.jar; 赠送原API文档:httpcore-nio-4.4.12-javadoc.jar; 赠送源代码:httpcore-nio-4.4.12-sources.jar; 赠送Maven依赖信息文件:httpcore-nio-4.4.12.pom; 包含翻译后的API文档...

Global site tag (gtag.js) - Google Analytics