推荐一个百万级网络框架,更是万金油般的网络中台!

简介

  • t-io是什么?一个与netty同类的网络编程框架

  • t-io诞生的意义?解决其它网络框架没有解决的疼点,如群组、用户、Token绑定,组发,流量监控,心跳检查、发送,IP拉黑,同步、阻塞发送,多协议适配,服务间数据共享,极易驾驭…

  • t-io开源吗?基于apache协议,毫无保留的完全开源

  • t-io收费吗?源代码完全免费,部分文档收费

  • t-io性能和稳定性如何?性能可以参见TFB上的排名;稳定性可以参见t-io案例

  • t-io官网是基于t-io的吗?是的,目前运行在2核 4G 2Mbit的华为云上

t-io应用场景

t-io是基于JVM的网络编程框架,和netty属同类,所以netty能做的t-io都能做,考虑到t-io是从项目抽象出来的框架,所以t-io提供了更多的和业务相关的API,大体上t-io具有如下特点和能力

推荐一个百万级网络框架,更是万金油般的网络中台!_第1张图片
  • 内置完备的监控和流控能力

  • 内置半包粘包处理

  • 一骑绝尘的资源管理能力

  • 内置心跳检查和心跳发送能力

  • 内置IP拉黑

  • 一流性能和稳定性(第三方权威平台TFB提供性能测试和稳定性服务)

  • 极其稳定的表现(很多用户还是停在t-io 1.x版本,就是因为太过稳定,不想变动)

  • 内置慢攻击防御

  • 唯一一个内置异步发送、阻塞发送、同步发送的网络框架

  • 唯一内置集群分发消息的能力

  • 独创的多端口资源共享能力(譬如一个端口是websocket协议,一个端口是私有的im协议,这两个端口的资源可以共享,这对协议适配极其有用)

  • 独创协议适配转换能力(让基于websocket和基于socket的应用看起来像是同一个协议)

  • 独一档的资源和业务绑定能力:绑定group、绑定userid、绑定token、绑定bsId,这些绑定几乎囊括了所有业务需求

t-io生态结构

一张图描述t-io生态结构
推荐一个百万级网络框架,更是万金油般的网络中台!_第2张图片
1. tio-utils
  • tio-utils是笔者在项目开发中积累的部分工具类

  • 里面有少部分代码是在开源许可范围内摘自第三方开源项目代码的,还有部分代码是其它开源作者提供的,譬如hutool的作者路神就提供了许多类,在此也是表示感谢!笔者这么做,仅仅是因为广大用户强力要求tio减少第三方依赖!

  • 当然笔者更愿意使第三方工具类,譬如hutool,毕竟和hutool的作者是基友

  • 在tio-utils中目前鄙人用得最多的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类似的框架

  • 关于社区的问答

    • 在t-io没提供任何文档的情况下,许多用户仅依靠笔者提供的示范工程就掌握了tio,并用于生产项目中,这表明t-io极其容易上手

    • tio-mvc是基于tio-http-server的mvc框架,它在TFB上的性能排名不差(不得不严肃提醒各位:TFB上部分排在tio-mvc前面的框架,并不具备用于生产项目的能力,而只是DEMO级别的,譬如协议容错、协议防攻击、session支持、分布session支持,流控这些都没有,重要的是普通开发工程师难以入手)

      推荐一个百万级网络框架,更是万金油般的网络中台!_第3张图片
    • tio-mvc在TFB上的PK排名表明t-io性能很好

    • t-io是从前线走出来的作品,而且久经考验!

    • 性能达到一定高度的前提下,再对比性能,其已经意义不大,稳定性、易用性、坑多否才是后面主要的竞技场!

    • 问:市面上已经有netty这样优秀的框架,为何还要自己写一个tio-core?

    • 答:每个人心中有杆秤,你认为优秀的,不代表所有人都这样认为

    • 问:和netty比,tio-core有何优势和劣势?

    • 答:很难回答这个问题,说几个事实:

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协议来完成握手”

项目地址

官网:https://www.t-io.org/
github地址:https://github.com/tywo45/t-io

你可能感兴趣的:(网络,编程语言,分布式,xhtml,netty)