smart-socket 1.5.21 发布,单机百万长连接背后的故事
smart-socket 是一款极简、易用、高性能的国产开源 AIO 通信框架,旨在帮助开发人员轻松打造企业级通信应用。
更新内容🎉
- 支持低内存运行模式,实现低配内存服务器运行百万长连接。
- 增加对 DelimiterFrameDecoder 的入参校验。(感谢@乾坤摄 提交的PR )
- 添加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入口获取实战教程。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring Boot 3.0.0-M5 & 2.6.12 发布
Spring Boot 3.0.0-M5 和 2.6.12 已发布。更新内容主要是功能增强、文档优化、依赖升级和错误修复。 Spring Boot 3.0.0-M5 改进 Ahead-of-Time (AOT) 处理和原生镜像支持 优化 actuator 端点清理 Jersey 支持 re-instated Release Note。 Spring Boot 2.6.12 支持 Java 19 将 NINETEEN 添加到 JavaVersion enum#32226 修复 PeriodStyle.ISO8601 检测不支持小写输入的问题#32235 修复使用 SnakeYaml 1.31 未正确处理 YAML 时间戳的问题#32228 修复 DurationStyle.ISO8601 检测不支持小写输入的问题#32223 Release Note。
- 下一篇
每日一博 | 语雀桌面端技术架构实践
作者:易芝林(维骏) 语雀桌面端作为语雀为用户提供的生产力工具,上线两年多来一直保持高频的迭代和健康的业务增长。本次主要介绍我们在做桌面端时的一些技术架构思考和实践,同时也将分享我们沉淀的一些通用桌面应用解决方案和经验。 文章会分为四部分,首先会简单介绍语雀桌面端,然后介绍当前语雀桌面端的应用架构以及关键点,之后介绍架构中的几个架构重点项,最后在进行总结。 语雀桌面端介绍 语雀是孵化自蚂蚁体验技术部的一款笔记与文档知识库工具。我们在两年前,针对语雀用户特点,以及后续发展策略,旨在为创作者提供更好的创作体验,推出语雀桌面客户端。 相较于现有浏览器提供的产品服务而言,我们提供的桌面端产品主要考虑以下几点: 无干扰 :给用户一个沉浸式的创作体验,而不像浏览器有其他窗口、tab 进行干扰,以及用完即走的用户心智。 系统级常驻 :打开速度更快,可以一键启动或者利用各类快捷工具唤起。 集成更多操作系统能力 :提升创作效率的多窗口、系统菜单和快捷键、对文件读写、与系统软件集成等。 离线 :期望能在离线或弱网的情况下,无障碍的进行创作。 桌面端架构概览 研发测主要分为左边三层,最底层是语雀的基础设施,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果