t-io的生态结构,可以大致看到t-io的性能
Posted 真爱写码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了t-io的生态结构,可以大致看到t-io的性能相关的知识,希望对你有一定的参考价值。
一张图描述t-io生态结构
1. tio-utils
u tio-utils是笔者在项目开发中积累的部分工具类
u 里面有少部分代码是在开源许可范围内摘自第三方开源项目代码的,还有部分代码是其它开源作者提供的,譬如hutool的作者路神就提供了许多类,这么做,仅仅是因为广大用户强力要求tio减少第三方依赖
u 当然笔者更愿意使第三方工具类,譬如hutool
u 在tio-utils中目前t-io用得最多的Cache
Ø 首先这个Cache是个门面——把市面上的各路Cache统一成了ICache,操作方法统一了,
Ø 其次它内置了一级cache,两级cache,并且性能极好、操作省心、稳定性也在大量项目中得到了考验
Ø 其实就是想挑战J2cache,不过tio-utils也把J2cache门面化了
2. tio-core
u 大家口中的t-io或tio指的就是tio-core
u tio-core是依赖tio-utils的
u tio-core是基于java aio的网络编程框架(很多人说t-io是基于netty,大家不要听信这样不负责任的言论)
u 如果你知道netty是啥,那理解tio-core就很容易了,因为tio-core是和netty类似的框架
u 关于社区的问答
问:市面上已经有netty这样优秀的框架,为何还要自己写一个tio-core?
答:每个人心中有杆秤,你认为优秀的,不代表所有人都这样认为
问:和netty比,tio-core有何优势和劣势?
答:很难回答这个问题,说几个事实:
Ø 在t-io没提供任何文档的情况下,许多用户仅依靠笔者提供的示范工程就掌握了tio,并用于生产项目中,这表明t-io极其容易上手
Ø tio-mvc是基于tio-http-server的mvc框架,它在TFB上的性能排名不差(提醒各位:TFB上部分排在tio-mvc前面的框架,并不具备用于生产项目的能力,而只是DEMO级别的,譬如协议容错、协议防攻击、session支持、分布session支持,流控这些都没有,重要的是普通开发工程师难以入手)
Ø tio-mvc在TFB上的PK排名表明t-io性能很好
Ø 了解t-io的历史,t-io是从前线走出来的作品,而且久经考验!
Ø 性能达到一定高度的前提下,再对比性能,其已经意义不大,稳定性、易用性、坑多否才是后面主要的竞技场!
3. tio-http-common
u 一个给tio-http-server和tio-http-client共用的工程,大家可以略过
4. tio-http-server
u 基于tio-core(为啥不说是基于tio-http-common?怎么说都可以)实现的http服务器
u 内置了极易使用的MVC框架
u 内置了流控、拉黑、forward、拦截器等常用能力
u 性能优秀,前面已经有地方描述了它在TFB上的性能表现,在TFB上tio-mvc的性能远超使用人群最多的springmvc,当然这不是说springmvc不优秀,而是说性能到这份上了,再说性能没啥意义!
5. tio-websocket-common
u 一个给tio-websocket-server和tio-websocket-client共用的工程,大家可以略过
6. tio-websocket-server
u 基于tio-core(为啥不说是基于tio-websocket-common?怎么说都可以)实现的websocket服务器
u 请注意:tio-http-server和tio-websocket-server是分开的,不能在同一端口用tio-http-server和tio-websocket-server,这么样的原因很简单:为了提升性能。
Ø “为什么其它框架是放在一起的?”
Ø “websocket协议是后来硬扯在http协议之上的,从设计上来讲:这俩根本就不应该呆在一起,搞得笔者在实现websocket协议时,还得用http协议来完成握手”
7. tio-webpack-core
u 笔者在tio-http-server的基础之上依赖freemarker实现的类似nodejs webpack的功能,现在还没完全封装到位,就笔者一人在用
u 现在正在浏览的网页就是基于tio-webpack-core的,用右键点击查看源代码,全压缩或加密的
具体请参考:https://www.tiocloud.com/doc/tio/87
以上是关于t-io的生态结构,可以大致看到t-io的性能的主要内容,如果未能解决你的问题,请参考以下文章