使用thrift已經(jīng)有段時(shí)間了,目前基本是clien+server的方式,負(fù)載是通過nginx來處理。這種處理方式有兩個(gè)比較大的弊端:
第一:客戶端與服務(wù)端的關(guān)聯(lián)太緊密,耦合性強(qiáng)
第二:服務(wù)的信息沒有形成配置化,不易中心化調(diào)用
我在參考了slimina的大作,不過他是基于原生的thriftserver來訪問的,另外通過apache pool實(shí)現(xiàn)了客戶端的訪問連接池。而我使用nifty分別對(duì)客戶端,服務(wù)器進(jìn)行了替換,因?yàn)閚ifty自帶連接管理。整體思路就是把各服務(wù)的配置寫入zk,通過zk來統(tǒng)一協(xié)調(diào),包括負(fù)載的處理。客戶端就像使用spring的服務(wù)類一要,一個(gè)autowire就很方便的調(diào)用了。目前只是一個(gè)初級(jí)版本,接下來首先會(huì)在自動(dòng)生成thrift的idl文件上進(jìn)行優(yōu)化。當(dāng)涉及到流處理參數(shù)傳遞的時(shí)候,生成的idl是有問題的。
實(shí)際上應(yīng)該是
最后,貼一下開發(fā)流程
代碼地址swift
我的微信公眾號(hào),歡迎溝通學(xué)習(xí)。
posted on 2017-06-29 16:39
alexcai 閱讀(894)
評(píng)論(0) 編輯 收藏