t-io的生态结构,可以大致看到t-io的性能

爱写码
• 阅读 1341

一张图描述t-io生态结构 t-io的生态结构,可以大致看到t-io的性能

  1. tio-utils tio-utils是笔者在项目开发中积累的部分工具类 里面有少部分代码是在开源许可范围内摘自第三方开源项目代码的,还有部分代码是其它开源作者提供的,譬如hutool的作者路神就提供了许多类,这么做,仅仅是因为广大用户强力要求tio减少第三方依赖 当然笔者更愿意使第三方工具类,譬如hutool 在tio-utils中目前t-io用得最多的Cache 首先这个Cache是个门面——把市面上的各路Cache统一成了ICache,操作方法统一了, 其次它内置了一级cache,两级cache,并且性能极好、操作省心、稳定性也在大量项目中得到了考验 其实就是想挑战J2cache,不过tio-utils也把J2cache门面化了
  2. tio-core 大家口中的t-io或tio指的就是tio-core tio-core是依赖tio-utils的 tio-core是基于java aio的网络编程框架(很多人说t-io是基于netty,大家不要听信这样不负责任的言论) 如果你知道netty是啥,那理解tio-core就很容易了,因为tio-core是和netty类似的框架 关于社区的问答 问:市面上已经有netty这样优秀的框架,为何还要自己写一个tio-core? 答:每个人心中有杆秤,你认为优秀的,不代表所有人都这样认为 问:和netty比,tio-core有何优势和劣势? 答:很难回答这个问题,说几个事实:

-在t-io没提供任何文档的情况下,许多用户仅依靠笔者提供的示范工程就掌握了tio,并用于生产项目中,这表明t-io极其容易上手 -tio-mvc是基于tio-http-server的mvc框架,它在TFB上的性能排名不差(提醒各位:TFB上部分排在tio-mvc前面的框架,并不具备用于生产项目的能力,而只是DEMO级别的,譬如协议容错、协议防攻击、session支持、分布session支持,流控这些都没有,重要的是普通开发工程师难以入手) t-io的生态结构,可以大致看到t-io的性能 -tio-mvc在TFB上的PK排名表明t-io性能很好 -了解t-io的历史,t-io是从前线走出来的作品,而且久经考验! -性能达到一定高度的前提下,再对比性能,其已经意义不大,稳定性、易用性、坑多否才是后面主要的竞技场! 3. tio-http-common 一个给tio-http-server和tio-http-client共用的工程,大家可以略过 4. tio-http-server 基于tio-core(为啥不说是基于tio-http-common?怎么说都可以)实现的http服务器 内置了极易使用的MVC框架 内置了流控、拉黑、forward、拦截器等常用能力 性能优秀,前面已经有地方描述了它在TFB上的性能表现,在TFB上tio-mvc的性能远超使用人群最多的springmvc,当然这不是说springmvc不优秀,而是说性能到这份上了,再说性能没啥意义! 5. tio-websocket-common 一个给tio-websocket-server和tio-websocket-client共用的工程,大家可以略过 6. tio-websocket-server 基于tio-core(为啥不说是基于tio-websocket-common?怎么说都可以)实现的websocket服务器 请注意:tio-http-server和tio-websocket-server是分开的,不能在同一端口用tio-http-server和tio-websocket-server,这么样的原因很简单:为了提升性能。 -“为什么其它框架是放在一起的?” -“websocket协议是后来硬扯在http协议之上的,从设计上来讲:这俩根本就不应该呆在一起,搞得笔者在实现websocket协议时,还得用http协议来完成握手” 7. tio-webpack-core 笔者在tio-http-server的基础之上依赖freemarker实现的类似nodejs webpack的功能,现在还没完全封装到位,就笔者一人在用 现在正在浏览的网页就是基于tio-webpack-core的,用右键点击查看源代码,全压缩或加密的 具体请参考:https://www.wanetech.com/doc/tio/87

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
7个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Jar包进行反编译,修改后重新打包
  在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar。使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间。有的第三方工具,提供具体的使用说明和源代码,有时有的却不提供源代码,使用说明也不是很具体,这对我们使用就非常不方便。  有道是,知其然才知其所以然。有时候,我们必须读取jar里的打包的类。而有时还有可能要
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
美凌格栋栋酱 美凌格栋栋酱
1个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(