本篇將去探索twemproxy源碼的主干流程,想來(lái)對(duì)于想要開(kāi)始啃這份優(yōu)秀源碼生肉的童鞋會(huì)有不小的幫助。這里我們首先要找到 twemproxy正確的打開(kāi)方式——twemproxy的文件結(jié)構(gòu),接著介紹twemproxy程序代碼框架,最后介紹twemproxy程序的主干流程。主干流程是本章節(jié)的重中之重。這次主要是為了能將這份代碼較為復(fù)雜的流程進(jìn)行一些簡(jiǎn)單的模塊分解和流程分解,以方便我們后面的閱讀。
twemproxy的文件結(jié)構(gòu)
當(dāng)然接下來(lái)首先要上一幅圖,就是twemproxy的文件結(jié)構(gòu)圖
圖1 文件結(jié)構(gòu)圖
如圖1所示,src下的是我們最重要的業(yè)務(wù)代碼,這里有幾個(gè)重要的文件夾,1文件夾里的是網(wǎng)絡(luò)編程模型,里面包含epoll,kqueue以及evport幾個(gè)常用的模型。2文件夾里的是哈希算法,其主要來(lái)哈希redis協(xié)議或者memcache協(xié)議的key,包括crc16,crc32,MD5等哈希算法。