通信内核全面升级,smart-socket 1.4 快的不止一点

三刀蜀黍
 三刀蜀黍
发布于 2019年04月19日
收藏 35

smart-socket是一款国产开源的Java AIO框架,追求代码量、性能、稳定性、接口设计各方面都达到极致。如果smart-socket对您有一丝帮助,请Star一下我们的项目并持续关注;如果您对smart-socket并不满意,那请多一些耐心,smart-socket一直在努力变得更好。

过去的6个多月一边维护着 smart-socket 1.3 系列版本,另一边“秘密研发(其实就是一没时间,二没能力导致拖拖拉拉)”smart-socket 1.4版本。

smart-socket 1.3版本已经具备不俗的表现,也获得了一些用户的认可,为什么还要去研发 1.4 版?因为我们希望打造一款AIO通信模型的标杆项目,让smart-socket成为通信领域开发的首选解决方案。而1.3版本还存留一些作者认为还不够完美的实现,smart-socket还可以变得更好,针对那些有待改进的部分,经过无数次推导、编码、验证之后,smart-socket 1.4.0 今日正式发布!

相较于1.3版本的极简、易用、高性能三大特性,在smart-socket 1.4中都发生了一些细微的变化。本次发布的smart-socket代码量首次突破1千行,不知您是否觉得它还配得上极简。在使用体验上只是对个别API进行调整,依旧延续了易用性。至于性能方面,通过堆内虚拟缓冲区映射堆外空间技术,以此实现的零拷贝帮助smart-socket在性能方面得到质的飞跃。

maven地址

<!-- https://mvnrepository.com/artifact/org.smartboot.socket/aio-core -->
<dependency>
    <groupId>org.smartboot.socket</groupId>
    <artifactId>aio-core</artifactId>
    <version>1.4.0</version>
</dependency>

更新内容

  1. 新增内存池。采用FirstFit内存管理算法,实现堆外内存高效分配与回收。
  2. 客户端AioQuickClient提供两种关闭服务的方式,shutdown:尽可能的将待输出数据写完后再关闭服务、shutdownNow:立即停止服务。
  3. 调整服务端AioQuickServer运行的线程模型,以获得更好的性能表现。
  4. 删除原AioSession中的write方法,替换为支持零拷贝的writeBuffer方法。
  5. 删除流控状态机。老版本中通过流控来实现服务端的自我保护,1.4版本全新的线程模型已天然解决了该问题。
  6. 其他API的优化调整。
  7. 同步了1.3版本最新版中的新增特性。
  8. 优化服务监控插件MonitorPlugin,支持自定义采集频率。
  9. 新增内存池监控插件(作者本人用于检测内存池算法是否稳定、无bug,对用户而言没什么用)。
  10. 补充代码示例。
  11. 新增了代码量。很抱歉1.4版本的核心代码量已经突破1000行了,想要研究smart-socket内核实现原理的可能要比1.3版本多花几分钟时间了。

特性

  • 轻量级,核心代码量仅千行。
  • 学习成本低,了解通信开发原理的学会smart-socket仅需几分钟。
  • 功能聚焦,仅专注于通信本身,不存在其他多余的东西。
  • 插件化,支持自定义插件。默认提供了心跳插件、断链重连插件、服务监控插件、黑名单插件、内存池监测插件。

性能测试

  • 本机压测

    smart-socket可以在本机轻松达到几百万的QPS,本机压测的数据是不走网卡的,我们主要为了验证CPU和IO的资源利用率。如下图所示,在普通笔记本上跑出了 200W 的QPS,产生的数据流量 137MB/s。 

smart-socket 1.3的后续规划

因为smart-socket 1.4刚发版,并未有实际生产环境应用案例,所以1.3版本依旧是我们的线上主推版本。如果您愿意将 smart-socket1.4 应用于生产环境,有任何疑惑都可随时联系作者寻求技术支持。 后续smart-socket新增的功能只要能兼容历史版本,我们都会同步更新至1.3系列。

最后

感谢各位朋友一直以来给予smart-socket的支持和帮助,让我们共同见证smart-socket的成长。如果您手头还有多余的 Star,不妨给smart-socket加一个:https://gitee.com/smartboot/smart-socket

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:通信内核全面升级,smart-socket 1.4 快的不止一点
加载中

精彩评论

恋晨
恋晨

引用来自“恋晨”的评论

和netty对比使用上和性能上等有什么优势如果能给出的话就好了
懂我为什么问这个问题吗?了解是要花时间的,而且肯定不会有作者了解,而且作者希望能被用于生产,那么框架后续方向,会有怎样的维护支撑,优缺点,对比同类框架的测试结果,这些不了解的话是不会考虑在生产上去试用的,风险太高

最新评论(7

ousinka
ousinka
厉害了
恋晨
恋晨

引用来自“恋晨”的评论

和netty对比使用上和性能上等有什么优势如果能给出的话就好了
懂我为什么问这个问题吗?了解是要花时间的,而且肯定不会有作者了解,而且作者希望能被用于生产,那么框架后续方向,会有怎样的维护支撑,优缺点,对比同类框架的测试结果,这些不了解的话是不会考虑在生产上去试用的,风险太高
写给三月
写给三月

引用来自“恋晨”的评论

和netty对比使用上和性能上等有什么优势如果能给出的话就好了
这个问题你还是删除的好,你问这个问题就跟问刀哥帅还是你高一个道理,没可比性
三刀蜀黍
三刀蜀黍

引用来自“恋晨”的评论

和netty对比使用上和性能上等有什么优势如果能给出的话就好了
那会引发一轮口水战的,还是算了。感兴趣的抽点时间了解一下smart-socket就好了😄
恋晨
恋晨
和netty对比使用上和性能上等有什么优势如果能给出的话就好了
八一菜刀
八一菜刀
👍加油
放牛班的吊车尾
放牛班的吊车尾
😄学起来真的简单
返回顶部
顶部