smartboot 开源组织 smartboot 开源组织
首页
  • smart-socket
  • smart-http
  • smart-servlet
  • smart-mqtt
  • smart-license
  • feat
❤️开源捐赠
💰付费服务
🏠加入社区
  • Gitee (opens new window)
  • Github (opens new window)
首页
  • smart-socket
  • smart-http
  • smart-servlet
  • smart-mqtt
  • smart-license
  • feat
❤️开源捐赠
💰付费服务
🏠加入社区
  • Gitee (opens new window)
  • Github (opens new window)
  • smart-socket 首页
  • 概要

    • 关于 smart-socket
    • 我们的用户
  • 快速上手

    • 🚩五分钟上手
    • 🚩通信协议
    • 性能压测
    • 新手常见问题
  • 高级进阶

    • 1.状态机
    • 2.服务端绑定网卡
  • 插件

    • 1. 关于插件💬
    • 2. 心跳插件
    • 2. 闲置超时插件
    • 3. 通信调参插件
    • 4. 黑名单插件🛡
    • 5. 加密通信插件🛡
    • 6. 流量防控插件🛡
    • 7. 码流监测插件🛡
    • 8. proxy-protocol插件
  • 公众号

    • 💰单机百万长连接背后的故事
      • 实战百万长连接
    • 💰揭秘百万长连接背后的黑科技
    • 💰让通信数据无所遁形
    • 性能分析的一柄利刃
    • 💰smart-socket的那点事之内存池
目录

💰单机百万长连接背后的故事

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(PS:最新测试数据为1.1G内存开销),每个客户端维持在 120~170MB 左右。

# 实战百万长连接

前往阅读剩余付费内容... (opens new window)

假如一切顺利的话,你应该可以亲眼见证百万连接。倘若过程中遇到问题,欢迎反馈交流。

8. proxy-protocol插件
💰揭秘百万长连接背后的黑科技

← 8. proxy-protocol插件 💰揭秘百万长连接背后的黑科技→

Theme by Vdoing | Copyright © 2017-2025 三刀
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式