一. 與 Thrift 的初識(shí)
也許大多數(shù)人接觸 Thrift 是從序列化開(kāi)始的。每次搜索 “java序列化” + “方式”、“對(duì)比” 或 “性能” 等關(guān)鍵字時(shí),搜索引擎總是會(huì)返回一大堆有關(guān)各種序列化方式的使用方法或者性能對(duì)比的結(jié)果給你,而其中必定少不了 Thrift,并且其性能還不錯(cuò)嘞,至少比那戰(zhàn)斗力只有1的渣渣 java 原生序列化要強(qiáng)很多(好吧原諒我的小情緒……)。
然而,我最初接觸 Thrift 卻是從公司的一個(gè)項(xiàng)目開(kāi)始。
也就在去年的這個(gè)時(shí)候,我所在事業(yè)部發(fā)現(xiàn)幾個(gè) UGC 社區(qū)的小廣告特別嚴(yán)重,Boss 要求所有社區(qū)必須接入公司的富媒體監(jiān)控系統(tǒng)(負(fù)責(zé)公司所有業(yè)務(wù)的內(nèi)容審核、處罰工作,以下簡(jiǎn)稱監(jiān)控系統(tǒng)),以實(shí)現(xiàn) UGC 內(nèi)容(包括文本、圖片、音視頻以及用戶頭像、昵稱等UserInfo)的準(zhǔn)實(shí)時(shí)上報(bào)與垃圾信息的自動(dòng)處理(如清理現(xiàn)場(chǎng)、賬號(hào)封禁等)。出于對(duì)業(yè)務(wù)服務(wù)的最小侵入、功能復(fù)用和流程統(tǒng)一等原則的考慮,抽象出介于業(yè)務(wù)系統(tǒng)和監(jiān)控系統(tǒng)之間的接入系統(tǒng),統(tǒng)一負(fù)責(zé)對(duì)數(shù)據(jù)的接收、上報(bào)、重推、搜索、結(jié)果查詢以及對(duì)監(jiān)控系統(tǒng)處罰指令的轉(zhuǎn)發(fā)。該業(yè)務(wù)可簡(jiǎn)單抽象成圖 1.1:
圖 1.1