t-io 2.2.0 发布,氦氪云特别发布版

talent-tan
 talent-tan
发布于 2018年04月08日
收藏 16

本次发版要点

氦氪云提供网络接入层服务时(t-io接到的首个商业服务),对方提出了一些监控需求,所以t-io及时跟进发了此版本

最新消息

贝密游戏已经全面从netty转向t-io,重要的是口碑极好,其作者也是“吃嘛嘛香”、“系统出牌的速度能感觉加快了”、“以后不用在通信层花精力了”,有图有真相哈(以下截图为2483人的大群聊天记录哦,原谅本人也用这么low的方式宣传自家的产品)


本版本修改点(注意有几个API变动)

1、org.tio.core.intf.AioListener

    增加 
        onAfterHandled()
        onAfterReceivedBytes()
    去掉 
        onAfterClose()
    修改
        onAfterReceived()改名为onAfterDecoded()
2、org.tio.core.stat.GroupStat
    修改
        getHandledPacket()改名为getHandledPackets()
3、org.tio.core.GroupContext
    增加
        setIpStatListener(IpStatListener)

4、各监控统计数据增加handledPacketCosts字段,用于监控和统计消息包处理时间

5、其它各细节修改不一一列举

最新POM

<dependency>
    <groupId>org.t-io</groupId>
    <artifactId>tio-core</artifactId>
    <version>2.2.0.v20180405-RELEASE</version>
</dependency>
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:t-io 2.2.0 发布,氦氪云特别发布版
加载中

精彩评论

天蓬小猪
天蓬小猪
t-io就是屌,甩掉Netty几条街!!
陳建勳
陳建勳
可是怎麼可能,人家netty發展了那麼久,就被剛出現的tio給比下去,那開發netty的人情何以堪
非法账户
非法账户
长江后浪推前浪,总有更好的实现,tio很棒!支持
Role
Role
tio设计思路很清析,初来驾到一目了然,值得各位尝试。:smile:
Minho
Minho

引用来自“天蓬小猪”的评论

t-io就是屌,甩掉Netty几条街!!
用Netty跟t-io比,有点侮辱t-io的味道。:rage:

最新评论(39

qwfys
qwfys
回头试试。
之渊
之渊
支持
talent-tan
talent-tan

引用来自“dwing0”的评论

估计是在windows服务器跑的, AIO确实有优势.
而Netty只关注linux平台的NIO/Epoll接口的优化.

引用来自“talent-tan”的评论

影响速度的不止网络,还有线程调度,线程才是t-io的与众不同之处

引用来自“dwing0”的评论

线程调度是你自己实现的? JVM的线程难道不就是操作系统的线程吗, 是系统内核调度的.
何况AIO的线程池都是被JVM封装的, 在windows上更是通过IOCP被系统内核调度的线程池, 这些都跟t-io有什么关系?
反而是Netty的NIO需要自己创建线程池来处理IO.
可能你只是想说t-io里的io线程->解码线程->处理线程这些流水线传递吧, 这些未必能提高效率, 而且这些都是非常上层的功能, Netty不管这些, 完全可以在Netty之上自己做这些流水线处理.

引用来自“talent-tan”的评论

这东西不太容易说清楚,t-io对线程处理有几个关键的类,可以看看,代码也不多,也没啥黑科技,但作用很大
org.tio.utils.thread.pool.SynThreadPoolExecutor
org.tio.utils.thread.pool.AbstractSynRunnable
org.tio.utils.thread.pool.AbstractQueueRunnable<T>
org.tio.core.task.HandlerRunnable

引用来自“dwing0”的评论

确实没什么特别的, 就是简单用ConcurrentLinkedQueue作为队列的线程池并发处理

引用来自“talent-tan”的评论

是的,但是作用很大,是t-io几个核心创新点之一。罗胖也说了,创新不复杂,复杂的你把这个创新点说出来

引用来自“dwing0”的评论

这个Queue是最常用的队列容器之一了, 平时大家都默默地用, 谁还能因为用这个就喊创新...喊也应该为Doug Lea大师的而喊.
说t-io性能好不好感觉都是特别主观的,或者单方面的测试. 没看到跟其它知名的库做性能对比(当然也要提供测试代码供大家复测), 这才能让大家信服.
或者去 https://www.techempower.com/benchmarks/ 提供使用t-io的测试代码, 进行大规模的公开测试.

引用来自“talent-tan”的评论

测试数据早就有了,现在不再提罢了,一个是每秒收发500万条聊天消息(注意是聊天消息而不是一个整数啥的),一个是单机30万长连接的测试报告。

引用来自“dwing0”的评论

我上面提到了, 你这个只是单方面测试报告, 只能说t-io性能还行, 不能说明性能比其它的更好, 何况这些测试绝大部分都是连接本机, 意义不大.
迟早会有人去做的,t-io后来的测试都是其它用户做的
d
dwing0

引用来自“dwing0”的评论

估计是在windows服务器跑的, AIO确实有优势.
而Netty只关注linux平台的NIO/Epoll接口的优化.

引用来自“talent-tan”的评论

影响速度的不止网络,还有线程调度,线程才是t-io的与众不同之处

引用来自“dwing0”的评论

线程调度是你自己实现的? JVM的线程难道不就是操作系统的线程吗, 是系统内核调度的.
何况AIO的线程池都是被JVM封装的, 在windows上更是通过IOCP被系统内核调度的线程池, 这些都跟t-io有什么关系?
反而是Netty的NIO需要自己创建线程池来处理IO.
可能你只是想说t-io里的io线程->解码线程->处理线程这些流水线传递吧, 这些未必能提高效率, 而且这些都是非常上层的功能, Netty不管这些, 完全可以在Netty之上自己做这些流水线处理.

引用来自“talent-tan”的评论

这东西不太容易说清楚,t-io对线程处理有几个关键的类,可以看看,代码也不多,也没啥黑科技,但作用很大
org.tio.utils.thread.pool.SynThreadPoolExecutor
org.tio.utils.thread.pool.AbstractSynRunnable
org.tio.utils.thread.pool.AbstractQueueRunnable<T>
org.tio.core.task.HandlerRunnable

引用来自“dwing0”的评论

确实没什么特别的, 就是简单用ConcurrentLinkedQueue作为队列的线程池并发处理

引用来自“talent-tan”的评论

是的,但是作用很大,是t-io几个核心创新点之一。罗胖也说了,创新不复杂,复杂的你把这个创新点说出来

引用来自“dwing0”的评论

这个Queue是最常用的队列容器之一了, 平时大家都默默地用, 谁还能因为用这个就喊创新...喊也应该为Doug Lea大师的而喊.
说t-io性能好不好感觉都是特别主观的,或者单方面的测试. 没看到跟其它知名的库做性能对比(当然也要提供测试代码供大家复测), 这才能让大家信服.
或者去 https://www.techempower.com/benchmarks/ 提供使用t-io的测试代码, 进行大规模的公开测试.

引用来自“talent-tan”的评论

测试数据早就有了,现在不再提罢了,一个是每秒收发500万条聊天消息(注意是聊天消息而不是一个整数啥的),一个是单机30万长连接的测试报告。
我上面提到了, 你这个只是单方面测试报告, 只能说t-io性能还行, 不能说明性能比其它的更好, 何况这些测试绝大部分都是连接本机, 意义不大.
talent-tan
talent-tan

引用来自“dwing0”的评论

估计是在windows服务器跑的, AIO确实有优势.
而Netty只关注linux平台的NIO/Epoll接口的优化.

引用来自“talent-tan”的评论

影响速度的不止网络,还有线程调度,线程才是t-io的与众不同之处

引用来自“dwing0”的评论

线程调度是你自己实现的? JVM的线程难道不就是操作系统的线程吗, 是系统内核调度的.
何况AIO的线程池都是被JVM封装的, 在windows上更是通过IOCP被系统内核调度的线程池, 这些都跟t-io有什么关系?
反而是Netty的NIO需要自己创建线程池来处理IO.
可能你只是想说t-io里的io线程->解码线程->处理线程这些流水线传递吧, 这些未必能提高效率, 而且这些都是非常上层的功能, Netty不管这些, 完全可以在Netty之上自己做这些流水线处理.

引用来自“talent-tan”的评论

这东西不太容易说清楚,t-io对线程处理有几个关键的类,可以看看,代码也不多,也没啥黑科技,但作用很大
org.tio.utils.thread.pool.SynThreadPoolExecutor
org.tio.utils.thread.pool.AbstractSynRunnable
org.tio.utils.thread.pool.AbstractQueueRunnable<T>
org.tio.core.task.HandlerRunnable

引用来自“dwing0”的评论

确实没什么特别的, 就是简单用ConcurrentLinkedQueue作为队列的线程池并发处理

引用来自“talent-tan”的评论

是的,但是作用很大,是t-io几个核心创新点之一。罗胖也说了,创新不复杂,复杂的你把这个创新点说出来

引用来自“dwing0”的评论

这个Queue是最常用的队列容器之一了, 平时大家都默默地用, 谁还能因为用这个就喊创新...喊也应该为Doug Lea大师的而喊.
说t-io性能好不好感觉都是特别主观的,或者单方面的测试. 没看到跟其它知名的库做性能对比(当然也要提供测试代码供大家复测), 这才能让大家信服.
或者去 https://www.techempower.com/benchmarks/ 提供使用t-io的测试代码, 进行大规模的公开测试.
测试数据早就有了,现在不再提罢了,一个是每秒收发500万条聊天消息(注意是聊天消息而不是一个整数啥的),一个是单机30万长连接的测试报告。
talent-tan
talent-tan

引用来自“dwing0”的评论

估计是在windows服务器跑的, AIO确实有优势.
而Netty只关注linux平台的NIO/Epoll接口的优化.

引用来自“talent-tan”的评论

影响速度的不止网络,还有线程调度,线程才是t-io的与众不同之处

引用来自“dwing0”的评论

线程调度是你自己实现的? JVM的线程难道不就是操作系统的线程吗, 是系统内核调度的.
何况AIO的线程池都是被JVM封装的, 在windows上更是通过IOCP被系统内核调度的线程池, 这些都跟t-io有什么关系?
反而是Netty的NIO需要自己创建线程池来处理IO.
可能你只是想说t-io里的io线程->解码线程->处理线程这些流水线传递吧, 这些未必能提高效率, 而且这些都是非常上层的功能, Netty不管这些, 完全可以在Netty之上自己做这些流水线处理.

引用来自“talent-tan”的评论

这东西不太容易说清楚,t-io对线程处理有几个关键的类,可以看看,代码也不多,也没啥黑科技,但作用很大
org.tio.utils.thread.pool.SynThreadPoolExecutor
org.tio.utils.thread.pool.AbstractSynRunnable
org.tio.utils.thread.pool.AbstractQueueRunnable<T>
org.tio.core.task.HandlerRunnable

引用来自“dwing0”的评论

确实没什么特别的, 就是简单用ConcurrentLinkedQueue作为队列的线程池并发处理

引用来自“talent-tan”的评论

是的,但是作用很大,是t-io几个核心创新点之一。罗胖也说了,创新不复杂,复杂的你把这个创新点说出来

引用来自“dwing0”的评论

这个Queue是最常用的队列容器之一了, 平时大家都默默地用, 谁还能因为用这个就喊创新...喊也应该为Doug Lea大师的而喊.
说t-io性能好不好感觉都是特别主观的,或者单方面的测试. 没看到跟其它知名的库做性能对比(当然也要提供测试代码供大家复测), 这才能让大家信服.
或者去 https://www.techempower.com/benchmarks/ 提供使用t-io的测试代码, 进行大规模的公开测试.
仔细看完这几个类,就知道创新点在哪了,使用Queue当然不算创新
org.tio.utils.thread.pool.SynThreadPoolExecutor
org.tio.utils.thread.pool.AbstractSynRunnable
org.tio.utils.thread.pool.AbstractQueueRunnable<T>
org.tio.core.task.HandlerRunnable
d
dwing0

引用来自“dwing0”的评论

估计是在windows服务器跑的, AIO确实有优势.
而Netty只关注linux平台的NIO/Epoll接口的优化.

引用来自“talent-tan”的评论

影响速度的不止网络,还有线程调度,线程才是t-io的与众不同之处

引用来自“dwing0”的评论

线程调度是你自己实现的? JVM的线程难道不就是操作系统的线程吗, 是系统内核调度的.
何况AIO的线程池都是被JVM封装的, 在windows上更是通过IOCP被系统内核调度的线程池, 这些都跟t-io有什么关系?
反而是Netty的NIO需要自己创建线程池来处理IO.
可能你只是想说t-io里的io线程->解码线程->处理线程这些流水线传递吧, 这些未必能提高效率, 而且这些都是非常上层的功能, Netty不管这些, 完全可以在Netty之上自己做这些流水线处理.

引用来自“talent-tan”的评论

这东西不太容易说清楚,t-io对线程处理有几个关键的类,可以看看,代码也不多,也没啥黑科技,但作用很大
org.tio.utils.thread.pool.SynThreadPoolExecutor
org.tio.utils.thread.pool.AbstractSynRunnable
org.tio.utils.thread.pool.AbstractQueueRunnable<T>
org.tio.core.task.HandlerRunnable

引用来自“dwing0”的评论

确实没什么特别的, 就是简单用ConcurrentLinkedQueue作为队列的线程池并发处理

引用来自“talent-tan”的评论

是的,但是作用很大,是t-io几个核心创新点之一。罗胖也说了,创新不复杂,复杂的你把这个创新点说出来
这个Queue是最常用的队列容器之一了, 平时大家都默默地用, 谁还能因为用这个就喊创新...喊也应该为Doug Lea大师的而喊.
说t-io性能好不好感觉都是特别主观的,或者单方面的测试. 没看到跟其它知名的库做性能对比(当然也要提供测试代码供大家复测), 这才能让大家信服.
或者去 https://www.techempower.com/benchmarks/ 提供使用t-io的测试代码, 进行大规模的公开测试.
talent-tan
talent-tan

引用来自“dwing0”的评论

估计是在windows服务器跑的, AIO确实有优势.
而Netty只关注linux平台的NIO/Epoll接口的优化.

引用来自“talent-tan”的评论

影响速度的不止网络,还有线程调度,线程才是t-io的与众不同之处

引用来自“dwing0”的评论

线程调度是你自己实现的? JVM的线程难道不就是操作系统的线程吗, 是系统内核调度的.
何况AIO的线程池都是被JVM封装的, 在windows上更是通过IOCP被系统内核调度的线程池, 这些都跟t-io有什么关系?
反而是Netty的NIO需要自己创建线程池来处理IO.
可能你只是想说t-io里的io线程->解码线程->处理线程这些流水线传递吧, 这些未必能提高效率, 而且这些都是非常上层的功能, Netty不管这些, 完全可以在Netty之上自己做这些流水线处理.

引用来自“talent-tan”的评论

这东西不太容易说清楚,t-io对线程处理有几个关键的类,可以看看,代码也不多,也没啥黑科技,但作用很大
org.tio.utils.thread.pool.SynThreadPoolExecutor
org.tio.utils.thread.pool.AbstractSynRunnable
org.tio.utils.thread.pool.AbstractQueueRunnable<T>
org.tio.core.task.HandlerRunnable

引用来自“dwing0”的评论

确实没什么特别的, 就是简单用ConcurrentLinkedQueue作为队列的线程池并发处理
是的,但是作用很大,是t-io几个核心创新点之一。罗胖也说了,创新不复杂,复杂的你把这个创新点说出来
d
dwing0

引用来自“dwing0”的评论

估计是在windows服务器跑的, AIO确实有优势.
而Netty只关注linux平台的NIO/Epoll接口的优化.

引用来自“talent-tan”的评论

影响速度的不止网络,还有线程调度,线程才是t-io的与众不同之处

引用来自“dwing0”的评论

线程调度是你自己实现的? JVM的线程难道不就是操作系统的线程吗, 是系统内核调度的.
何况AIO的线程池都是被JVM封装的, 在windows上更是通过IOCP被系统内核调度的线程池, 这些都跟t-io有什么关系?
反而是Netty的NIO需要自己创建线程池来处理IO.
可能你只是想说t-io里的io线程->解码线程->处理线程这些流水线传递吧, 这些未必能提高效率, 而且这些都是非常上层的功能, Netty不管这些, 完全可以在Netty之上自己做这些流水线处理.

引用来自“talent-tan”的评论

这东西不太容易说清楚,t-io对线程处理有几个关键的类,可以看看,代码也不多,也没啥黑科技,但作用很大
org.tio.utils.thread.pool.SynThreadPoolExecutor
org.tio.utils.thread.pool.AbstractSynRunnable
org.tio.utils.thread.pool.AbstractQueueRunnable<T>
org.tio.core.task.HandlerRunnable
确实没什么特别的, 就是简单用ConcurrentLinkedQueue作为队列的线程池并发处理
talent-tan
talent-tan

引用来自“dwing0”的评论

估计是在windows服务器跑的, AIO确实有优势.
而Netty只关注linux平台的NIO/Epoll接口的优化.

引用来自“orpherus”的评论

epoll的native io很不错
处理速度这东西,底层的网络只是一部分,业务层的各种处理也很关键:smile:
返回顶部
顶部