thrift客戶端鏈接池封裝

本篇只是在實際中使用的一個例子,thrift具體的源碼分析請參考網上其它同行的高見。能夠參考:http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/。在使用的過程當中發現,thrift的一個客戶端不是線程安全的,若是有多個線程同時請求信息就會報錯。我加了一個thrift客戶端鏈接池,每一個線程能夠從thrift客戶端鏈接池中獲取一個thrift客戶端。這個thrift客戶端鏈接池是基本common-pool2實現的(關於common-pool2詳細能夠參考:http://www.youxijishu.com/h-nd-152-2_323.html)。html

一,下載安裝包和Java依賴包java

http://thrift.apache.org/downloadgit

(1)Java項目maven 引用:apache

<dependency>windows

 <groupId>org.apache.thrift</groupId>安全

 <artifactId>libthrift</artifactId>服務器

 <version>0.9.3</version>maven

</dependency>工具

(2)windows編譯工具源碼分析

http://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.3/thrift-0.9.3.exe

二,thrift文件編寫

  thrift是跨平臺的rpc工具,因此它相似與protobuffer,有一個定義格式的腳本IDL語言,須要手動編寫,能夠參考:http://thrift.apache.org/docs/types,上面有它支持的數據類型。編寫好以後(這裏有一個官方的IDL語言例子:https://git-wip-us.apache.org/repos/asf?p=thrift.git;a=blob_plain;f=test/ThriftTest.thrift;hb=HEAD),使用thrift-0.9.3.exe生成相應的平臺代碼。咱們這裏使用的是Java。

 

三,簡單通訊的例子

  1,.thrift文件

namespace java yhhx.rpc.impl

 

service LoginServerRpc {

bool isLogin(1:i64 userId,2:string token)

}

 

這個遊戲邏輯服務器是向登錄服務器請求驗證這個遊戲玩家是否登錄了的一個rpc調用。

 

2,生成類

運行工具:thrift-0.9.3.exe -r --gen java UserService.thrift

 

3,實際調用

原本是貼代碼的,發現代碼太多了,有點湊頁的嫌疑。就壓縮了一個包,有須要的能夠去下載。這個源碼沒有加完成的包結構,只是純粹的代碼,代碼類也不是太多,供參考使用。

  

 

 更多遊戲技術資料請參照:遊戲技術網http://www.youxijishu.com/

相關文章
相關標籤/搜索