使用thrift已經有段時間了,目前基本是clien+server的方式,負載是通過nginx來處理。這種處理方式有兩個比較大的弊端:
第一:客戶端與服務端的關聯太緊密,耦合性強
第二:服務的信息沒有形成配置化,不易中心化調用
我在參考了slimina的大作,不過他是基于原生的thriftserver來訪問的,另外通過apache pool實現了客戶端的訪問連接池。而我使用nifty分別對客戶端,服務器進行了替換,因為nifty自帶連接管理。整體思路就是把各服務的配置寫入zk,通過zk來統一協調,包括負載的處理。客戶端就像使用spring的服務類一要,一個autowire就很方便的調用了。目前只是一個初級版本,接下來首先會在自動生成thrift的idl文件上進行優化。當涉及到流處理參數傳遞的時候,生成的idl是有問題的。

實際上應該是

最后,貼一下開發流程

代碼地址swift
我的微信公眾號,歡迎溝通學習。
