talent-aio —— 即时通讯框架|软件推荐
春
节
快
乐
talent-aio 是基于 java aio 实现的即时通讯框架,源于作者另一个久经考验的 talent-nio 框架,但在易用性、性能及代码可读性方面又远远超越了 talent-nio(最好的东西才拿来分享,所以 talent-nio 并不会开源)。同类框架有netty和mina。
愿 景
成为即时通讯界的JFinal框架(简洁易用又不失灵活),并且以本框架为基础开发出众多可以开箱即用的应用。
应用场景
IM、实现各种网络应用层协议(如http、ftp等公有协议,也可以自定义私有协议)、实时监控、RPC等
特 点
● 极简洁清晰易懂的API:无需各种折腾,只需花上30分钟学习helloworld就能很好地掌握并实现一个性能极好的即时通讯应用
● 极震撼的性能
● 可同时支持10万级tcp长连接,彻底甩开业界当年的c10K烦恼
● 收发200万条消息(约137M),只需要1440毫秒(windows7、i7、8g、群聊场景)
● 极亲民的内置功能
● 框架层面帮你检测心跳(tcp server)、发送心跳(tcp client)
● 框架层面支持自动重连(可设置重连间隔时间和重连次数)
● 框架层面支持同步消息(消息发送后,等到响应消息再往下执行)
● 框架层面支持绑定userid(用于用户关联)、绑定groupid(用于群聊)
● 天生没有粘包问题
案 例
● 某网管系统(管理数百台刀片服务器的系统)
● 某直播平台(视频直播+聊天)
● 某智能设备检测系统(数据采集)
● 某物联网系统(服务端)
● 深圳市某在线技术发展有限公司(中银联投资):某网络安全运营支撑平台
● redisx
● talent_dubbo
● ... ...
性能测试步骤及数据
talent-aio产生的背景
(1)2011年笔者参与了中兴某刀片的网管系统开发,虽然入职才3个月,但大领导还是亲点让笔者来改造原来的实时通讯模块,而且不允许使用mina。在这样的背景下,开始学习nio,改造后的系统,可管理上千个节点,消息收发速度极快,最近有和还在职的中兴同事了解过,核心代码仍然在运行,足见其稳定性,这就是后来talent-nio的雏形
(2)后来担任热波间(一个直播平台)的平台端架构师,持续优化和封装了talent-nio,使之可以支持4万TCP长连接,每秒可以收发10万条消息,当年甚至扛住了自杀式的2000人在同一房间无限点赞场景(这个消息量有多大,内行们请脑补)
(3)因为热波间架构师的角色,认识了不少业界朋友,部分朋友表达希望开源talent-nio, 以便参考借鉴,但是talent-nio在易用性方面做得还不是很理想,开源出来的话要么无人问津要么就要消耗大量的咨询时间
(4)几番考虑之后,写了talent-aio,线程池部分和部分思想来源于并优化于talent-nio,在性能大步提升的基础上,易用性得到根本性解决。