纯 Go 1000k+ 连接解决方案,支持 TLS/HTTP1.x/WebSocket,并基本兼容 net/http,具有高性能和低内存占用,非阻塞
纯 Go 1000k+ 连接解决方案,支持 TLS/HTTP1.x/WebSocket,并基本兼容 net/http,具有高性能和低内存占用,非阻塞
基于对nbio多年的开发和测试,我得出了一些结论:
对于海量连接场景,结合内存池和goroutine池,可以有效减少goroutine和对象的数量,从而降低内存消耗和GC压力,避免OOM和显著的STW。例如,在百万级WebSocket 1k负载回显测试中,nbio可以在10万TPS下将内存维持在1GB。
对于常规连接场景,nbio 的性能不如标准库,原因在于 goroutine 亲和性、单连接缓冲区复用率较低以及变量逃逸问题。
使用 Golang 的绝大多数业务场景并不需要支持海量连接。少数需要海量连接的场景大多是网关和代理等基础设施,而这类基础设施对性能和硬件资源开销有更高要求,C/C++/Rust 更为合适。
因此
暂无开放 Issues,或尚未同步最近议题。