阅读更多

11顶
2踩

企业架构

原创新闻 NIO 框架 talent-nio 3.0 发布

2013-09-21 00:10 by 见习记者 tywo45 评论(10) 有11254人浏览

什么是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,网上都有下的 <script type="text/javascript">// <![CDATA[ document.domain = "iteye.com"; var counter = parseInt(window.parent.$('attachments_counter').value) - 1; window.parent.$('attachments_counter').value = counter; if(counter > 0) window.parent.$('submit_button').value = counter + "个文件正在上传中,请等待完成后再提交"; else window.parent.$('submit_button').value = '提交'; // ]]></script>

 

为了验证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个月会有大量调整。

 

下载地址:

 

11
2
评论 共 10 条 请登录后发表评论
10 楼 linginfanta 2013-09-25 16:57
好好提炼一下吧。
9 楼 liusg123 2013-09-24 15:03
KimShen 写道
我只能感叹下JavaEye死了而且基本不会诈尸了

同感呀。
8 楼 andye 2013-09-23 08:42
感觉很不标准,最起码是maven工程啊
7 楼 shizhangliao 2013-09-22 23:54
6 楼 tywo45 2013-09-22 19:02
andye 写道
talent-thread-pool-3.0.0-talent.jar有没有源码?

有,往期博客有共享,你找找
5 楼 andye 2013-09-22 15:53
talent-thread-pool-3.0.0-talent.jar有没有源码?
4 楼 w3d9 2013-09-22 10:14
     
3 楼 osacar 2013-09-22 08:34

学习一下。
2 楼 KimShen 2013-09-21 13:24
我只能感叹下JavaEye死了而且基本不会诈尸了
1 楼 andye 2013-09-21 10:03
老兄,有没有源码啊?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • python与房地产估价_搭建房产估价模型(Scikit-learn)

    分析需求:根据2015年某地二手房成交量前15的小区,建立房产估价模型;通过房产位置、面积、朝向、楼层等特征,进行合理估价。import pandas as pdimport numpy as npimport matplotlib.pyplot as plt%matplotlib ...

  • 矿藏估价

    开始遍历,省去不少麻烦,所以我们用(b)计划。   种子染色法 可以形象的理解为在图中抛下一颗种子(顶点v 00 ),一种颜色就朝着四面八方蔓延开来,填满所有可达区域。我们用队列q存储非Mr.Chen领地中待扩展单位...

  • UVA690 最优性剪枝 + 估价函数

    用时大概:20ms 但这多麻烦啊 先用下面这个莽一发再说,因为我们发现: f⁡(maxd−d)≥(maxd−d)×f⁡(1)(4)\operatorname{f}(maxd-d) \geq (maxd-d)\times\operatorname{f}(1) \tag{4}f(maxd−d)≥(maxd−d)×f(1)(4...

  • coding 给软件估价_我是如何在4年内从Coding Bootcamp毕业生升任为高级软件工程师的

    coding 给软件估价I got frustrated with spreadsheets. They are dynamic and convenient, but it’s a mess to work with, unreliable to share, hard to scale. I wanted to be able to build my ideas. ...

  • Html+JavaScript+Css 二手车价格评估系统设计开发

    这是写毕业设计程度最简单的数据库,保存在浏览器记录里,整其他数据库太麻烦没整出来。 (4)HTML  HTML全名为超文本标记语言,它是设计网页内容的一种标记语言。它包括多种标签.通过这些标签可以将网络上的文档...

  • 明翰全日制英国硕士词汇篇V1.3(持续更新)

    下面的所有词汇与例句都是在英国留学期间, 学到的、听到的、见到的,都来自英语母语使用者,其中包括: 学校、同学、教授、教职人员、以及生活中形形色色的人, 这篇文章有助于还没去英国的同学提前掌握一些高频...

  • Python 数据竞赛常用 | 可视化数据集缺失情况

    Python 数据竞赛常用 | 可视化数据集缺失情况 无论是打比赛还是在实际工程项目中,都会遇到数据缺失的情况,如果数据集较小,还能在 Excel 或者...但当数据集较大时,手工查看每个变量的缺失值是非常麻烦的一件事情。

  • 在打造 iPod 和 Nest 之后,这位被硅谷抛弃的「麻烦制造者」正在巴黎重建浪潮之巅

    「麻烦制造者」的舞台 在伦敦郊外的一处庄园,Tony Fadell 正在参加一场创始人论坛。宾客名单中有许多科技公司的创始人,也有拥有大英帝国勋章的初级军官。但实际上,这场会议的焦点人物是 Fadell。 ...

  • 【经验分享】大学四年,自学编程要不要接外包?

    第三个问题呢就是开发费用估算,一般小鹿去码市进行估计,那里的估价基本都是外包公司标准,个人的话会比那个要低得多,十分之二三左右差不多,具体功能具体具体定价啦,最起码估价心里有个底。 第四个问题就是也...

  • IT 常用词汇(一)

    1, amend [ə’mend] vt. 修改;改善,改进 vi. 改正,改善;改过自新 n. (Amend)人名;(德、英)阿门德 2, bearer [‘bɛrɚ] n. 持票人;[建] 承木;[机] 托架;送信人;搬运工人 ...v....adj....4

  • 运筹优化(十九)--决策论基础及其最优化求解

    在合并一些方案后, 减少了变量数和方案数, 决策者按主观倾向重新估价各方案, 并保留倾向的少数方 案 , 以便进行最终决策。 决策后阶段 , 当进行了最终决策 , 这时主要考虑的问题是决策后看法不一致。这时决策者...

  • 第三章:产品规划

    产品规划是指产品经理通过调查研究,在了解市场、了解用户需求、了解竞争对手、了解外在机会与风险以及了解技术发展态势的基础上,根据公司自身的情况和发展方向,制定出符合公司和产品定位的规划计划。...

  • 题目2:隐式图的搜索问题(A*算法解决八数码)

    标注的形式化如下(举例): 2 3 1 8 4 7 6 5 (初始状态) 1 2 3 8 4 7 6 5 (目标状态) 状态如何表示 每个状态都用3*3的数组表示,但是BFS中需要入队出队,比较麻烦而且空间占用较大 状态压缩,采用一个整数保存...

  • 【转】假毛护理教程

    那么今天我就在这里归纳一个知识帖希望大家不要只知道注意衣服道具,其他的东西应该也要尊重原版,而且我们玩就要玩的认真,像这样的常识就最好能自己去学习下,学习假发知识不像裁缝和做道具那么麻烦,只要看明白就...

  • 3D游戏引擎剖析

    介绍 自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏 "引擎"。 这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用...

  • 住宅的一般知识

    住宅的一般知识 一、住宅、住宅小区的概念 住宅 住宅,就是供人们居住并具备可供人们生活起居的功能和设施的房子。住宅是人工建造而不是自然形成的。 住宅小区 一般称“居住小区”,是被居住区级道路或自然分界线所...

  • 楼天城楼教主的acm心路历程(作为励志用)

    转载的文章,好好加油!说不定什么时候我也可以说:“这题我虽然不会,但是AC还是可以的”。。。 利用假期空闲之时,将这几年GCJ,ACM,TopCoder 参加的一些重要比赛作个 ...昨天是GCJ2006 的回忆,今天时间上更早...

  • 市场营销学1——入门

    顾客感激之余,埋怨自己给海尔人添了麻烦,还说如果能有洗红薯的洗衣机,就不用烦劳海尔人了。农民兄弟的一句话,被海尔人记在了心上。海尔营销人员调查四川农民使用洗衣机的状况时发现,在盛产红薯的成都平原,每当...

  • [比赛]二手车交易价格预测-建模调参

    10)) fig1.suptitle('Algorithm Comparison') ax = fig1.add_subplot(111) plt.boxplot(results) ax.set_xticklabels(models.keys()) plt.show() 可以根据这种效果来看模型是否比较好,省去了一个个试的麻烦。...

  • node-v12.16.3-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics