转载

memcache 源代码研究 - 请求处理流程

memcache 处理请求的流程主要集中在 drive_machine 函数里面, drive_machine 是一个状态机,里面定义的状态如以下代码所示:

enum conn_states {    conn_listening,    conn_new_cmd,   conn_waiting,   conn_read,      conn_parse_cmd,    conn_write,     conn_nread,     conn_swallow,   conn_closing,   conn_mwrite,    conn_closed,    conn_max_state    };  

处理请求的大致流程是:

  1. 接收新的socket连接,分发给 worker thread
  2. worker thread 等待socket连接传来的内容
  3. 解析客户端发送过来的命令并执行
  4. 如果命令是 quit ,则关闭连接,并清理与连接相关的内存数据。
  5. 如果不是 quit ,执行完命令后,则重复步骤2、3

详细流程大致如下图所示:

memcache 源代码研究 - 请求处理流程

正文到此结束
Loading...