Skip to main content

一张误传t-io的图

纠正后的图

误传的原图

关于t-io:网上误传的一张的图

纠正说明

  • http:t-io社交IM基础平台和牛吧云播就是基于tio-http-server开发的。tio-http-server示范工程
  • ssl:请参考:使用SSL(获取SSL证书、生成JKS、t-io使用SSL)
  • udp:请参考:示范工程
  • 半包粘包:支持半包粘包是任何一个成熟io框架必须拥有的能力,否则就没法玩了。只是在下必须对这个东西进行特别说明
    • 没有任何一个io框架可以自行判断当前参与解码的ByteBuffer是半包还是粘包(这是常识,如果有人说有某框架能做到,那一定是无知或说谎)
    • 在tio中,业务端只要解码的方法中返回null,即表示这是半包,tio在框架层会自行把当前的ByteBuffer暂存起来,用于与下次收到的ByteBuffer进行组合
    • 至于粘包,业务端几乎感知不到----业务端在解码的方法中,只需一个一个解码即可,tio会自行判断,当前是否还有多余的byte[]没参与解码,一旦发现有多余的byte[],tio会自行循环调用业务端的解码方法
    • 更详细的请参考:t-io对半包和粘包的处理
  • 关于零拷贝:零拷贝属于内部实现算法,不能作为功能点列出来,虽然t-io没有用零拷贝来实现高性能,但是t-io自创了同步安全线程池来提升系统性能,详见:t-io和netty的差异,算法是为最终目的服务的,不存在算法A比算法B更高大上

说明

网上流传的这张图,原文作者是Voovan作者,这差不多是两年前左右的事了,当时这张图是正确的,t-io后来飞速发展,在功能和性能都得到了极速迭代,并经历了众多成功案例考验,那么曾经正确的数据就变得过时了,请各位知悉!