设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 软件追踪 查看内容

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

2019-4-19 22:45| 发布者: joejoe0332| 查看: 337| 评论: 0|原作者: oschina|来自: oschina

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

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


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部