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在功能层面已经相当成熟稳定,研发需求基本很少了,但文档一直以来比较拉胯。所

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

2022-07-05

smart-socket 是一款极简、易用、高性能的国产开源 AIO 通信框架,旨在帮助开发人员轻松打造企业级通信应用。 这个版本犹豫了许久,没有别的新特性加入,仅仅是将JDK版本适配至 11,看似为了发版而发版。 为了避免对老用户

2022-03-21

Kreps 最喜欢的作家之一命名)。 Apache Kafka 作为开放源码发布后,已经成为众多公司和项目的重要组成部分。与此同时,Kreps、Narkhede 和 Rao 还成立了 Confluent 公司,提供 Kafka 的商业和云端版本。 Redis:Salvatore Sanfilippo Redis 是

2022-11-08

的组件可以和Rainbond的组件混合编排 Helm安装的应用可以发布成Rainbond应用模版 不管是从对接的 Helm 仓库安装 chart 包,还是 Helm 命令安装 chart 包,都可以转换为 Rainbond 应用模型,未来我们计划支持将 Rainbond 应用模版自动转

2022-11-26

1.1.1支持单机快速布置 优化布置流程, 可供小集群做内部的统一防护 添加权重分配以及HASH映射模式, 以更好的控制各服务器 修复若干BUG, 保证群集更好的运转 1.1 版本新增功能 添加人机验证模式,被封禁时可选

2022-11-04

,让分布式数据库走向通用。8月10日,在2022 OceanBase年度发布会上, OceanBase 4.0(小鱼Paetica)首次亮相。经过85天的快速迭代,OceanBase 4.0经历了内外部客户的场景测试与真实业务场景的稳定性打磨。 云栖大会上被宣布正式上线

2021-12-13

基于 KeePass 的替代方案 —— KeePass。 从 KeePassX 的发布公告可以看到,其最近的更新已经是 2016 年发布的 KeePassX 2.0.3,当时这个版本也只是常规的错误修复更新,没人想到它会成为最后一个版本。 KeePassX 是开源的轻

2022-05-12

备,通过 Wi-Fi 与蓝牙等无线方式将图像与其它接收设备连接,并且可以选择时间与位置等选项传输。 当时 RPI 公司提出了和解条件: GNOME 基金会需要支付高达五位数的赔偿金。作为和解,他们则会放弃此次诉讼并给予 GNOME 继

2022-09-09

Rainbond 5.8.1 支持在非容器环境中快速部署应用,监测应用的状态,同时全面支持英文化。 新增功能解读 1. 支持应用导出非容器环境安装包 在实际使用场景中,我们常常会遇到以下几类问题。 在一些场景下,禁止使用容器

2022-02-07

它能让你用手、用笔、用键盘,还有触控板来互动,当你连接键盘和触控板时可以支持桌面的体验。 有人认为,鲸鲮科技的方向不应该是面向普通消费者提供 Linux 平板——因为普通消费者没有理由选择 Linux,而是面向专业

2022-03-16

的恶意代码是针对俄罗斯和白俄罗斯用户? 随后 vue-cli 发布了,将 node-ipc 的版本锁定到 v9.2.1 附受影响项目的解决方式: 按照 readme 正常 install 构建结束后,用编辑器全局搜索'peacenotwar',将其全部删除 然后项目的node_models目

2022-07-07

版本日前在 Bacula 官方网站(www.bacula.org)和 SourceForge 上发布。这是一个重要的新版本,有许多新功能和变化。虽然新功能已经过测试,但它们还没有在生产环境中运行,因此在投入生产前请仔细测试这些代码。 兼容性 与以