gnet 这个项目存在的价值是提供一个在网络包处理方面能和 Redis、Haproxy 这两个项目具有相近性能的 Go 语言网络服务器框架。
gnetgnetgnet gnetevio 功能 gnet 核心设计 多线程/Go程网络模型
主从多 Reactors
gnetnetty 它的运行流程如下面的时序图:
主从多 Reactors + 线程/Go程池
EventHandler.React gnetEventHandler.Reactnetty gnetEventHandler.React 模型的架构图如下所示:
它的运行流程如下面的时序图:
gnetants gnetantspool.NewWorkerPoolantsEventHandler.Reactgnet.Conn.AsyncWrite gnetants 自动扩容的 Ring-Buffer
gnet gnetgnet 性能测试 同类型的网络库性能对比
Linux (epoll)
系统参数
# Machine information OS : Ubuntu 18.04/x86_64 CPU : 8 Virtual CPUs Memory : 16.0 GiB # Go version and configurations Go Version : go1.12.9 linux/amd64 GOMAXPROCS=8
Echo Server
HTTP Server
FreeBSD (kqueue)
系统参数
# Machine information OS : macOS Mojave 10.14.6/x86_64 CPU : 4 CPUs Memory : 8.0 GiB # Go version and configurations Go Version : go version go1.12.9 darwin/amd64 GOMAXPROCS=4
Echo Server
HTTP Server
相关文章