Twemproxy源碼走讀(3):初始化流程

Twemproxy初始化過程比較簡單,這裏把Twemproxy初始化過程分成兩部分:(1)讀取運行選項;(2)運行前的初始化和準備;

(1)   讀取運行選項

             讀取各項參數的設置,比如是否後臺運行(daemonize)、日誌級別、日誌文件、配置文件名稱等信息。

            正如前一章(概述)裏講到的,Twemproxy使用了一個全局變量nc(類型爲struct instance)保存所有的信息,包括選項配置信息。

(2)   運行前的初始化和準備(nc_pre_run);


圖1. 運行前準備流程圖

附上正式接收請求的運行前準備源碼,邏輯清晰,都不需要註釋:

static rstatus_t
nc_pre_run(struct instance *nci)
{
    rstatus_t status;

    status = log_init(nci->log_level, nci->log_filename);
    if (status != NC_OK) {
        return status;
    }   

    if (daemonize) {
        status = nc_daemonize(1);
        if (status != NC_OK) {
            return status;
        }   
    }   

    nci->pid = getpid();

    status = signal_init();
    if (status != NC_OK) {
        return status;
    }   

    if (nci->pid_filename) {
        status = nc_create_pidfile(nci);
        if (status != NC_OK) {
            return status;
        }   
    }   

    nc_print_run(nci);

    return NC_OK;
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章