smart-socket 1.5.21 发布,单机百万长连接背后的故事


smart-socket 是一款极简、易用、高性能的国产开源 AIO 通信框架,旨在帮助开发人员轻松打造企业级通信应用。

更新内容🎉

  1. 支持低内存运行模式,实现低配内存服务器运行百万长连接。
  2. 增加对 DelimiterFrameDecoder 的入参校验。(感谢@乾坤摄 提交的PR )
  3. 添加benchmark测试工具

Maven坐标🎈

<dependency>
<groupId>org.smartboot.socket</groupId>
<artifactId>aio-core</artifactId>
<version>1.5.21</version>
</dependency>

走进百万长连接背后的故事📓

smart-socket 自2017年开源以来,一直秉承着匠心精神,力求打造出极简、易用、高性能的国产开源通信框架。

然而,在网上各类未经验证的信息误导下, 大众对于Java 始终存在一些偏见。认定只有 C、C++,以及新晋之秀 Golang 才适合支撑海量连接、高流量的通信服务 。

事实上,用 Java 语言编写的 smart-socket 早已在性能排行榜上取得了不错的成绩(见下图)。并且,我们也终于在2022年9月23日成功验证了 smart-socket 的百万级长连接。

在过往的项目推广中,smart-socket 从未以“百万长连接”作为宣传噱头。因为在没有经过实际验证的情况下,无法说服自己在宣传文案中出现“百万级长连接”之类不负责的字眼。况且,百万长连接的是操作系统和硬件本身便具备的能力。能做到,不代表我们的通信框架多优秀;若做不到,才当反思一下我们的项目质量。

而困扰我无法开展验证工作的主要原因,在于不具备硬件条件。我所用的开发电脑为 Mac Pro,先天不具备百万级长连接的测试条件(上限约26W)。

并且长期以来陷入某种思维误区,以为这种级别的测试必须搭配多台测试机。或者至少是一台高配服务器,再创建至少20个以上的虚拟机或容器。

尽管身处困境,但我却还产生了一个更疯狂的想法:能否用一台普通配置的服务器(4核8G)实现百万长连接。

在将验证方案构思完成,并做好充分准备后,便开始在社群中寻求帮助。

很快便得到了响应和支持,在次特别感谢这位老朋友。

最终,我们顺利的完成了百万级长连接的测试。

当 TCP 总连接数定格在101万的时候,服务端仅消耗内存 3.1G,每个客户端维持在 120~170MB 左右。(PS:内存开销还有进一步优化空间)

最后

开源不易,支持这款国产开源项目的朋友帮忙点点Star。想要体验的百万长连接的,也可通过项目仓库Readme.md入口获取实战教程。


相關推薦

2022-11-07

smart-socket 是一款极简、易用、高性能的国产开源 AIO 通信框架,旨在帮助开发人员轻松打造企业级通信应用。 经历了数年的发展,smart-socket在功能层面已经相当成熟稳定,研发需求基本很少了,但文档一直以来比较拉胯。所

2023-10-28

1、smart-socket 简介 smart-socket,一款面向万物互联的 Java 通信框架。 产品特色: 极简:于2017年开源至今发布了数十次版本,核心代码量始终控制在2500行以内,总代码量不足5000行。 易用:5分钟上手(前提:未曾遭受网

2023-06-06

秀 Gitee 组织 」荣誉。 该组织内的明星项目包括: smart-socket 历时 5 年精炼出 2 千多行代码,轻松实现百万级长连接的 AIO 通信框架。 smart-http 基于 smart-socket 实现的 HTTP/1.1 web 服务。 smart-servlet 基于 smart-http 实现的 Servl

2022-10-08

容 🎉 节前我们在仅消耗 3G 内存的情况下,成功验证了 smart-socket 的单机百万长连接。为了尽快将该突破性的技术应用于 Servlet 容器中,趁着这个国庆假期专门对 smart-servlet 作了通信组件的升级。 今日,这款发型包仅 0.5 MB 的

2022-10-07

smart-socket v1.5.22 已经发布,基于Java AIO实现的异步通信框架 此版本更新内容包括: 更新内容 Features 优化百万长链接下的内存开销。 Bugfix 修复 v1.5.21 版本引入的 Channel 代理失效问题 详情查看:https://gitee.com/smartboot/s

2023-01-03

smart-socket 是采用 Java 语言打造的国产开源 AIO 通信框架,旨在帮助开发人员轻松打造企业级通信应用。 更新内容🎉 彻底移除 Java 原生 AIO 的适配,仅提供 smart-socket 的 AIO 实现。 调整部分 class 结构,消除一些不必要的对

2023-07-18

频道等等。 功能特性 支持自定义消息 支持订阅/发布者模式 支持个人/群聊/客服/社区资讯频道 支持频道黑明单 支持频道白名单 支持消息永久漫游,换设备登录,消息不丢失 支持在线状态,支持同账号多设备同

2024-05-12

9年积累,沉淀出来的高性能通用通讯服务,支持即时通讯,站内/系统消息,消息中台,物联网通讯,音视频信令,直播弹幕,客服系统,AI通讯,即时社区等场景。 特点 📚 完全自研:自研消息数据库,消息分区永久存储

2023-03-09

秀 Gitee 组织 」荣誉。 该组织内的明星项目包括: smart-socket 历时 5 年精炼出 2 千多行代码,轻松实现百万级长连接的 AIO 通信框架。 smart-http 基于 smart-socket 实现的 HTTP/1.1 web 服务。 smart-servlet 基于 smart-http 实现的 Servl

2023-07-01

秀 Gitee 组织 」荣誉。 该组织内的明星项目包括: smart-socket 历时 5 年精炼出 2 千多行代码,轻松实现百万级长连接的 AIO 通信框架。 smart-http 基于 smart-socket 实现的 HTTP/1.1 web 服务。 smart-servlet 基于 smart-http 实现的 Servl

2023-08-31

【直播预告】eBPF 到底是可观测领域的神器 or 鸡肋? 本次更新内容 SSL优化 各类依赖管理版本升级 其它一些小修改 最新 POM 坐标 <dependency> <groupId>org.t-io</groupId> <artifactId>tio-core</artifactId> <ver

2024-03-27

9年积累,沉淀出来的高性能通用通讯服务,支持即时通讯,站内/系统消息,消息中台,物联网通讯,音视频信令,直播弹幕,客服系统,AI通讯,即时社区等场景 特点 📚 完全自研:自研消息数据库,消息分区永久存储,

2023-01-16

秀 Gitee 组织 」荣誉。 该组织内的明星项目包括: smart-socket 历时5年精炼出2千多行代码,轻松实现百万级长连接的 AIO 通信框架。 smart-http 基于 smart-socket 实现的 HTTP/1.1 web服务。 smart-servlet 基于 smart-http 实现的 Servlet 3

2024-03-05

解决黑名单无效的问题 增加ignoreMissingConfig配置 个人白名单默认设置成关闭 修复解除好友关系后还能聊天的问题 如果指定了配置文件的路径,如果配置文件不存在则程序应该崩溃 升级WuKongIM协议 slave设备如果deviceID