t-io 3.0.0 发布,不止是 30 万 TCP 长连接框架

talent-tan
 talent-tan
发布于 2018年05月24日
收藏 33

t-io介绍请见:t-io官网

自问:为什么不是“百万级TCP长连接框架”而是30万了?

自答:t-io目前已经做过的测试中,最多只测到了30万个长连接(见:t-io 30W长连接并发压力测试报告),当测试报告上看,我本人推测出单机可以支持百万级,只是这种推测不是人人能接受的,所以此处改成30万也不妨,懂的人自然能从这个测试报告中体会到t-io单机可以支持多少个长连接!

本次发布要点:不再区分自用版和社区版,全部开源。过去设立自用版的故事,不必再回首,t-io要以愈挫愈勇的心态面对是非和挑衅。

修改列表:
1、org.tio.core.maintain.Groups
        增加Comparator,让组内的连接可以排序(用treeset实现的,所以请务必保证ChannelContext对象创建后排序一直保持一致,否则和group解绑时解不掉)
内部实现优化,减少一个map的维护
2、MapWithLockPropSupport内部实现简化
3、org.tio.server.AioServer.stop()优化
4、增加Converter.java
5、Aio.java如下方法增加Converter能力
    getPageOfAll()
    getPageOfConnecteds()
    getPageOfGroup()
6、groupListener.onAfterBind(channelContext, groupid);
7、在一些场景增加集群功能,譬如群组发送、ip发送、user发送等支持集群(原自用版功能)
8、IP拉黑功能(原自用版功能)
9、其它细节优化

最新pom:

<dependency>
    <groupid>org.t-io</groupid>
    <artifactid>tio-core</artifactid>
    <version>3.0.0.v20180520-RELEASE</version>
</dependency>

特别提醒:本次新闻允许匿名评论

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:t-io 3.0.0 发布,不止是 30 万 TCP 长连接框架
加载中

精彩评论

talent-tan
talent-tan
之所以改口30万,不是因为tio不支持百万级别,而是目前条件限制等因素,并没有测到100万,为了防止部分瓜众说tio玩扛杆,暂时改为30万

谢谢大家的支持!
talent-tan
talent-tan

引用来自“蒋林辉”的评论

做开源实属不易,那些嘴上不饶人的可以自己去试试,还有作为做技术人为什么要和市井小民一样骂骂不休呢,天外有天,人外有人,如果觉得有问题可以指出源码存在的问题,帮助作者改进啊,jdk1.x版本也是多low的一样道理,真心的感谢作者写出这个项目,而且还不计私心的开源出来,等项目忙完会好好研读源码的
谢谢支持!
t-io在很长一段时间内都是不计私心的开源的,不过现在还是有点私心的,主要存在以下几个私心:
1、把t-io做成品牌,服务更多的优质用户,也为自己将来创业打下人脉基础
2、让厌恶t-io的x们继续不喜欢t-io

所以说现在完全没私心,在下愧不敢当!

但t-io开源出来最大的受益者还是广大被TCP长连接应用所困扰的用户,至于本人就算从t-io中获取到了什么物质利益、品牌利益,那也是长期付出顺带的开花结果,不觉得这种通过劳动获得正当报酬有什么不妥!
fuygkunlij
fuygkunlij
踏踏实实做技术比较好,一看到煽动性的言辞就不敢用了
轨迹_
轨迹_
t-io,是最让我喜欢的和着迷去深入研究代码的一个通讯框架,性能和稳定轻非常强悍!通过打造J-IM出来也证明了t-io的优秀,希望小喷们,不喜勿喷,毕竟不是人民币做不到人人喜欢,懂得人自然会懂哦!支持谭总,加油。。。
s
soiask
我的可以支持上亿链接 只是厂商不给力

最新评论(142

s
sunjiayaos
消息体不一致,本次解码失败, 已经连续1次解码失败,参与解码的数据长度共34字节,有没有通用的消息体
talent-tan
talent-tan

引用来自“zcy421593”的评论

更专业的角度看,长度+body确实有天生缺陷,就算限制缓冲区长度4k,假设有100W并发, 那么只要每个连接只发4k-1长度,最后一个字节都不发送,那不算收到完整消息,服务端就得保持缓存100W * (4K - 1)的数据,接近400G,可以瞬间把服务器打爆掉。面对客户端前端使用这种协议不科学。

    另外宣扬100w,30w没任何意义,随便c++搞个epoll,iocp在没有业务的情况下轻轻松松100W并发无压力,关键配上业务呢?数据库跟得上吗?

    io往往不是服务器性能的瓶颈,光提高io对整体性能的提高一点用都没有,最终的性能表现是各个服务器组件模块配合得出的最终效果。
还是了解一下tio在TFB上的数据吧,这个权威:https://my.oschina.net/talenttan/blog/1862599
talent-tan
talent-tan

引用来自“zcy421593”的评论

更专业的角度看,长度+body确实有天生缺陷,就算限制缓冲区长度4k,假设有100W并发, 那么只要每个连接只发4k-1长度,最后一个字节都不发送,那不算收到完整消息,服务端就得保持缓存100W * (4K - 1)的数据,接近400G,可以瞬间把服务器打爆掉。面对客户端前端使用这种协议不科学。

    另外宣扬100w,30w没任何意义,随便c++搞个epoll,iocp在没有业务的情况下轻轻松松100W并发无压力,关键配上业务呢?数据库跟得上吗?

    io往往不是服务器性能的瓶颈,光提高io对整体性能的提高一点用都没有,最终的性能表现是各个服务器组件模块配合得出的最终效果。
不清楚拿“长度+body”和tio绑定在一起讨论是啥意思,tio支持所有基于tcp和udp的应用层协议,而不仅仅是“长度+body”

这些测试只针对io,并不涉及到数据库,如果这些只针对io的测试没用,那著名的TFB测试平台也没有存在的意义
z
zcy421593
更专业的角度看,长度+body确实有天生缺陷,就算限制缓冲区长度4k,假设有100W并发, 那么只要每个连接只发4k-1长度,最后一个字节都不发送,那不算收到完整消息,服务端就得保持缓存100W * (4K - 1)的数据,接近400G,可以瞬间把服务器打爆掉。面对客户端前端使用这种协议不科学。

    另外宣扬100w,30w没任何意义,随便c++搞个epoll,iocp在没有业务的情况下轻轻松松100W并发无压力,关键配上业务呢?数据库跟得上吗?

    io往往不是服务器性能的瓶颈,光提高io对整体性能的提高一点用都没有,最终的性能表现是各个服务器组件模块配合得出的最终效果。
青天竹
青天竹
正在学习,感谢开源。
快乐杰哥
快乐杰哥

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

之所以改口30万,不是因为tio不支持百万级别,而是目前条件限制等因素,并没有测到100万,为了防止部分瓜众说tio玩扛杆,暂时改为30万

谢谢大家的支持!
我觉得楼主的数字还是靠谱的,支持楼主
nickelzhang
nickelzhang

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

之所以改口30万,不是因为tio不支持百万级别,而是目前条件限制等因素,并没有测到100万,为了防止部分瓜众说tio玩扛杆,暂时改为30万

谢谢大家的支持!

引用来自“梦朝思夕”的评论

咨询一个问题,单机的端口只有65000多个,如何做到30万的长连接????

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

支持再多的TCP长连接,服务器端只需要一个端口,是一个!

引用来自“梦朝思夕”的评论

回复@talent-tan : 这是我见过的最NB的解释了!

引用来自“开源中国-首席营养师”的评论

这解释我也挻服的,超级NB。

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

本来随口一回,答案也没毛病,看到你们的回复,我竟然笑起来了,是我笑点低?������

引用来自“艾米”的评论

这位同学,你先别笑,再好好想想你的答案有没有毛病,我也是醉了 😅

引用来自“光的笔记”的评论

没看出这回复有什么问题,还请解释一二

引用来自“艾米”的评论

tcp/ip协议帧格式就决定了,当然我指的ipv4,tcp帧里的端口类型是uint16_t,即2的16次方减1个端口,我实在不明白t-io这位大神作者用了何种神功撸出了300K的tcp长连接,注意这哥们号称的长连接,难道是自己用java实现了一套传输协议层?

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

在下对前辈渊博的知识真是佩服得五体投地,甘拜下风!@红薯 家的OSC真人才济济!😄😄😄

引用来自“艾米”的评论

好牛逼哦,好怕怕哦。别扯那些没用的,你说你能单机跑300K TCP长连接,linux下你就用netstat -nat|grep -i "port" |wc -l。把port替换成你的测试端口,截图发出来,欢迎打脸。否则请挖个洞钻进去,真特么不嫌丢人

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

别啊,我真的认输了!是真心认输了!@红薯 能帮我撤回这条新闻吗?

引用来自“南湖船老大”的评论

OSC 文盲多,哥别生气
osc受众品质有所下降了😅
talent-tan
talent-tan

引用来自“nullref”的评论

tio宣称自己某某硬件参数指标下达到百万连接数,本人发过专门的质疑分析帖子。结论是,库的作者的测试数据仅供参考。

对于服务器端的人来说,长连重来都没有难过。难的是,要在各种复杂的网络环境下保持产品的质量。这远不是tio这种提供Java版tcp库所能达到的。各种产品,需要各自的策略来实现其纷纷不同的业务需求。

tio的作者还没有意识到商业化的库需要什么,商业需求是什么。很难挣钱的。老老实实去找一份工作,业余放GitHub慢慢折腾把。

引用来自“小菜鸡1”的评论

tio好像已经有好多商业项目了吧?
商业案例已经很多了,包括IM、游戏、监控、物联网、直播平台等,见:https://t-io.org/case/index.html

至于你回复的这位仁兄,可以参考这个(正文诚不错,评论更精彩):https://www.oschina.net/question/2617937_2243270
小菜鸡1
小菜鸡1

引用来自“nullref”的评论

tio宣称自己某某硬件参数指标下达到百万连接数,本人发过专门的质疑分析帖子。结论是,库的作者的测试数据仅供参考。

对于服务器端的人来说,长连重来都没有难过。难的是,要在各种复杂的网络环境下保持产品的质量。这远不是tio这种提供Java版tcp库所能达到的。各种产品,需要各自的策略来实现其纷纷不同的业务需求。

tio的作者还没有意识到商业化的库需要什么,商业需求是什么。很难挣钱的。老老实实去找一份工作,业余放GitHub慢慢折腾把。
tio好像已经有好多商业项目了吧?
talent-tan
talent-tan

引用来自“熊猫大侠到此一游”的评论

辛苦了! 这两天正在着手开发一个基于tio的物联网平台。
回复@熊猫大侠到此一游 : 活抓一只熊猫大侠,看你在码云上的留言,你应该非常熟悉tio的源代码了。
返回顶部
顶部