thrift non blocking server 源码浅析

本文深入分析了Thrift非阻塞服务器的源码,探讨了其服务设计,强调了非阻塞服务器在处理大量活跃连接时的优势。在最新版本0.10.0中,Thrift依赖libevent库,服务器启动时动态创建工作线程以应对客户端请求,同时介绍了线程管理和过载保护机制。开发者需要注意并发控制和处理器设计,以确保服务性能和稳定性。
摘要由CSDN通过智能技术生成

thrift 是一个开源是rpc服务框架,支持各种主流的开发语言,性能高效稳定。前段时间由于需要排查线上服务的问题,把thrift non blocking server的源码看了好几遍,发现其服务设计得很简洁,所以做了个总结。

一般情况下,后台开发服务都是用C/C++开发,个别情况下用python,server模式无非是用threadpool或者nonblocking server模式,相比threadpool,nonblocking server要更加常用一些。因为 threadpool 模式是一个客户端连接服务端就单独用一个线程来处理它的请求,这种情况适合一些客户端数量固定且处理请求的时间较长的场景;而nonblocking server更加适合维护大量活跃连接,每个请求处理时间较短的场景。


注:本文用的thrift版本是最新的版本:0.10.0


一般情况我们在main函数中是这样去写我们的启动程序的:


int main(int argc, char **argv) {
  FLAGS_max_log_size = 200;
  FLAGS_logbuflevel  = 0;
  google::ParseCommandLineFlags(&argc, &argv, true);
  google::InitGoogleLogging(argv[0]);


  installQuitSignalHandler();

  shared_ptr
   
   
    
     handler(new SecurityServiceHandler());
  shared_ptr
    
    
     
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值