在twemproxy的發(fā)送和接收流程剖析中,我們已經(jīng)完全弄清楚twemproxy如何將客戶端以及服務端發(fā)來的包切分成msg,獲得一個獨立的msg后twemproxy應該如何處理?這是本文這次需要重點介紹的內(nèi)容。
twemproxy的主干流程
圖1 twemproxy的主干流程
如圖1所示,twemproxy主要通過3個隊列進行模塊間的數(shù)據(jù)交互:客戶端連接conn的發(fā)送隊列conn->omsg_q,服務端連接s_conn的輸入隊列s_conn->imsg_q,服務端連接s_conn的發(fā)送隊列s_conn->omsg_q以及conn->omsg_q里的msg的對應回復peer。
客戶層接收模塊將所有需要回復的msg處理后分別寫入到客戶端conn連接的發(fā)送隊列conn->omsg_q以及服務端連接s_conn的輸入隊列s_conn->imsg_q。
服務層發(fā)送模塊從服務端連接s_c