同步操作将从 CloudWeGo/netpoll 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Netpoll 是由 字节跳动 开发的高性能 NIO(Non-blocking I/O) 网络库,专注于 RPC 场景。
RPC 通常有较重的处理逻辑,因此无法串行处理 I/O。而 Go 的标准库 net 设计了 BIO(Blocking I/O) 模式的 API,使得 RPC 框架设计上只能为每个连接都分配一个 goroutine。 这在高并发下,会产生大量的 goroutine,大幅增加调度开销。此外,net.Conn 没有提供检查连接活性的 API,因此 RPC 框架很难设计出高效的连接池,池中的失效连接无法及时清理。
另一方面,开源社区目前缺少专注于 RPC 方案的 Go 网络库。类似的项目如:evio , gnet 等,均面向 Redis, HAProxy 这样的场景。
因此 Netpoll 应运而生,它借鉴了 evio 和 netty 的优秀设计,具有出色的 性能,更适用于微服务架构。 同时,Netpoll 还提供了一些 特性,推荐在 RPC 设计中替代 net 。
基于 Netpoll 开发的 RPC 框架 Kitex 和 HTTP 框架 Hertz,性能均业界领先。
范例 展示了如何使用 Netpoll 构建 RPC Client 和 Server。
更多信息请参阅 文档。
已经支持
IsActive
支持检查连接是否存活Dialer
支持构建 clientEventLoop
支持构建 server即将开源
不被支持
性能测试应满足工业级使用要求,在 RPC 场景下,并发请求、等待超时是必要的支持项。
我们提供了 netpoll-benchmark 项目用来长期追踪和比较 Netpoll 与其他框架在不同情况下的性能数据以供参考。
更多测试参考 kitex-benchmark 和 hertz-benchmark
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。