rust网络框架Pingora源码阅读1
💡
原文中文,约9200字,阅读约需22分钟。
📝
内容提要
Pingora是一个用于代理服务的Rust库。它提供了负载均衡、健康检查等功能。Pingora的核心对象是Server和Service,Server控制程序生命周期,Service处理具体业务逻辑。文章介绍了Pingora的源代码分析和运行逻辑。
🎯
关键要点
-
Pingora是一个用于代理服务的Rust库,提供负载均衡和健康检查功能。
-
Pingora的核心对象是Server和Service,Server控制程序生命周期,Service处理具体业务逻辑。
-
Pingora的源码分析将分为多篇文章,主要参考internals.md文档。
-
Pingora的代码版本为v0.1.0。
-
Server对象用于处理信号、读取配置文件和管理Service对象。
-
创建Server对象需要Opt对象,Opt对象解析命令行参数。
-
Server的bootstrap方法用于测试服务和获取旧的句柄列表。
-
add_service方法用于将Service对象注册到Server中。
-
Pingora定义了两种Service:后台服务和监听服务。
-
run_forever方法使服务持续运行,支持后台运行。
-
main_loop方法处理不同的信号以实现优雅关闭和升级。
-
run_service方法启动注册的各种服务,创建运行时并运行服务。
-
Pingora提供了不做工作窃取的运行时以提高多核性能。
-
总结:Pingora的两个核心对象是Server和Service,前者控制程序生命周期,后者负责业务逻辑。
➡️