为什么rpc框架 不用nginx
1 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
为了保证对nginx的修改最少,我将RPC框架当成nginx的一个模块,启动时将它动态加入到nginx的模块列表(ngx_modules[])中去。
另外提供非常简易的编程接口(和大部分RPC实现类似),监听端口、protobuf service等信息都可以在应用程序初始化阶段通过编程接口来设置,所有初始化完成之后,应用程序可以直接调用server.start()来启动服务,这个方法实际上是调用nginx的main函数(改名为ngx_start),然后就进入了nginx的正常流程,初始化所有模块(包括我们的NRPC模块),然后打开所有监听端口,并启动work进程,开始接受request。主进程自动进入deamon模式,并且设置相应的信号处理程序。所以应用程序在调用完server.start()后,就可以直接return了(实际上是不会执行到的)。
添加回答
举报
0/150
提交
取消