NetpollGo 高性能 I/O 非阻塞网络库
Netpoll 是一款 Go 语言高性能、I/O 非阻塞 (NIO) 网络库,专注于 RPC 场景。
Netpoll 借鉴了 evio 和 netty 的优秀设计,具有出色的性能,更适用于微服务架构。
特性
-
已经支持
- LinkBuffer 提供可以流式读写的 nocopy API
- gopool 提供高性能的 goroutine 池
- mcache 提供高效的内存复用
-
IsActive
支持检查连接是否存活 -
Dialer
支持构建 client -
EventLoop
支持构建 server - 支持 TCP,Unix Domain Socket
- 支持 Linux,Mac OS(操作系统)
-
即将开源
- multisyscall 支持批量系统调用
- io_uring
- Shared Memory IPC
- 串行调度 I/O,适用于纯计算
- 支持 TLS
- 支持 UDP
-
不被支持
- Windows(操作系统)
性能
测试环境
- CPU: Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz, 4 cores
- Memory: 8GB
- OS: Debian 5.4.56.bsk.1-amd64 x86_64 GNU/Linux
- Go: 1.15.4
并发表现 (echo 1KB)
传输表现 (并发 100)
测试结论
评论