简单、快速、可扩展的 golang rpc 库,适用于高负载环境
gorpc 是一个简单、快速且可扩展的 Golang RPC 库,适用于高负载和微服务项目。
它支持 RPC 批处理,允许准备多个请求并将它们以单个批量发送给服务器。 这些功能有助于操作系统在高负载情况下将 RPC 处理所需的开销(CPU 加载、处于 TIME_WAIT 和 CLOSE_WAIT 状态的 TCP 连接数、网络数据包数量和网络带宽量)降至最低。 此外,gorpc 提供了 net/rpc 中缺少的以下功能:
客户端自动管理连接,并在连接出错时自动重新连接到服务器。 * 客户端支持响应超时。 * 客户端支持 RPC 批处理。 * 客户端支持异步请求的取消。 * 如果服务器无法处理给定负载,客户端会将新请求优先于旧的挂起请求。 * 客户端会检测到卡死的服务器,并立即向调用方返回错误。 * 客户端支持向服务器快速传递消息,即不带响应的请求。 * 客户端和服务器都提供了网络统计信息和 RPC 统计信息。 * 常用的 RPC 传输协议,如 TCP、TLS 和 Unix 套接字,都可以直接使用。 * RPC 传输压缩功能也可以直接使用。 * 服务器提供了优雅的关闭功能。 * 服务器支持 RPC 处理程序的并发限流功能。 * 服务器可以将客户端地址传递给 RPC 处理程序。 * 服务器可以优雅地处理 RPC 处理程序中的异常。 * 分发器接受函数作为 RPC 处理程序。 * 分发器支持在不同名称下注册同一类型的多个接收对象。 * 分发器支持具有零参数的 RPC 处理程序。
暂无开放 Issues,或尚未同步最近议题。