smart-socket 是一款增强了原生 JDK 实现的 AIO 通信框架。
换言之,smart-socket 100% 遵循 JDK 对于 AIO 接口规范的定义,只是重新提供了一套代码实现。 使其有着相较 JDK 官方 AIO 更高的通信性能,更少的资源开销,以及更稳定的运行保障。
- AIO 是一个面向开发人员更友好的设计理念,值得被更多人应用。
- 原生 JDK 提供的实现存在性能问题,其线程模型限制了 IO 调度效率。
- 原生 JDK 提供的实现存在资源开销问题,连接越多内存需求越高,难以在低规格服务器中支撑百万级长连接。
- 原生 JDK 提供的实现存在稳定性问题,Mac 系统下进行压测存在不明原因的死机现象。
- 我们需要一款比 Netty 更容易上手的通信框架。
- 高性能、高并发、低延迟、绿色节能。
- 代码量极少,可读性强。核心代码仅 2000 余行,工程结构、包层次清晰。
- 学习门槛低,二次开发只需实现 2 个接口(Protocol、MessageProcessor),具备通信开发经验的几乎无学习成本。
- 良好的线程模型、内存模型设计,保障服务高效稳定的运行。
- 支持自定义插件,并已提供了丰富的插件,包括:SSL/TLS通信插件、心跳插件、断链重连插件、服务指标统计插件、黑名单插件、内存池监测插件。
smart-socket 作为底层通信微内核,已支撑多个高性能中间件项目:
| 项目名称 | 简介 | 应用场景 |
|---|---|---|
| feat | 高性能 Java Web 服务框架,类似 Vert.x 和 Spring Boot | Web 应用开发、微服务架构、高并发场景 |
| smart-servlet | 基于 Jakarta Servlet 6.0 的轻量级 Servlet 容器,可替代 Tomcat/Undertow/Jetty | Web 容器部署、信创需求、高并发 Web 服务 |
| smart-mqtt | 云原生分布式 MQTT Broker,支持百万级设备连接,发行包不足 800KB | IoT 设备接入、智能家居、工业物联网、车联网 |
💡 提示:如果你正在寻找现成的解决方案,建议直接体验上述生态项目;如果需要自定义通信协议或深度定制,可以基于 smart-socket 进行二次开发。
| Plugin | 用途 |
|---|---|
| BlackListPlugin | 黑名单插件,smart-socket会拒绝与黑名单中的IP建立连接 |
| BufferPageMonitorPlugin | 内存池监控插件 |
| HeartPlugin | 心跳插件 |
| MonitorPlugin | 服务指标监控插件 |
| SocketOptionPlugin | 连接属性配置插件 |
| SslPlugin | TLS/SSL加密通讯插件 |
| StreamMonitorPlugin | 传输层通讯码流监控插件 |
- 感谢 Gitee 提供的代码托管和曾经的 Pages 服务。
- 感谢 Github 提供的代码托管和现在的 Pages 服务。
- 感谢 JetBrains 为 smart-socket 提供的 IDEA License。

- 官方QQ群: 172299083 、830015805。入群条件:
- 扫描底部二维码关注三刀公众号

