前面介紹了thrift 基礎的東西,怎麼寫thrift 語法規範編寫指令碼,如何生成相關的語言的介面。不清楚的可以看這個《thrift總結(一)介紹》。做好之前的準備工作以後,下面就開始如何用thrift寫rpc介面。
如何用thrift寫rpc介面
2. 新建乙個空白解決方案命名為hellothrift。在解決方案根目錄下建立乙個lib資料夾,將剛剛生成的thrift.dll檔案放入lib資料夾中。在解決方案分中建立兩個控制台程式和乙個類庫,控制台程式分別命名為hellothrift.client 和 hellothrift.server,類庫命名為thrift.inte***ce。client、server和inte***ce分別引用lib資料夾中的thrift.dll檔案,將準備工作中生成的helloservice檔案匯入到inte***ce類庫中。client和server分別引用inte***ce。具體結果如下圖所示
清單1.myhelloservice
using4. 建立伺服器端hellothrift.server 宿主的實現**,在program.cs 中新增如下**,這樣乙個thrift 伺服器就建立好了。system;
using
hellothrift.inte***ce;
namespace
hellothrift.server
//////
只有乙個引數,返回值為int型別的方法
/// ///
///返回值為int型別
public
int helloint(int
para)
//////
只有乙個bool型別引數,返回值為bool型別的方法
/// ///
///返回值為bool型別
public
bool helloboolean(bool
para)
//////
返回執行為空的方法
/// public
void
hellovoid()
//////
無引數,返回值為null的方法
/// ///
返回值為null
public
string
hellonull()}}
清單2.hellothrift.server
using5. 建立完服務端之後,下面開始生成乙個客戶端實現**,在hellothrift.client 的 program.cs 中新增如下**:system;
using
thrift;
using
thrift.protocol;
using
thrift.server;
using
thrift.transport;
using
hellothrift.inte***ce;
namespace
hellothrift.server
catch (ttransportexception ex)//
捕獲異常資訊}}
}
清單3.hellothrift.client
using上面的**呼叫了服務端的hellostring方法,服務端也會返回傳入的傳輸值,客戶端將服務端返回的資料列印出來。好了完成了**以後,將先啟動server,在啟動client。客戶端呼叫結果 和 服務端請求顯示。system;
using
hellothrift.inte***ce;
using
thrift.protocol;
using
thrift.transport;
namespace
hellothrift.client
catch
(ttransportexception e)}}
}
說明
1. 關於使用thrift 構建我們自己的rpc 的方法,這裡基本講完了。其他的方法本文就不再演示了,呼叫起來都是一樣。
2. 後續會簡單討論一下thrift 框架的通訊原理。
Thrift總結 二 建立RPC服務
前面介紹了thrift 基礎的東西,怎麼寫thrift 語法規範編寫指令碼,如何生成相關的語言的介面。不清楚的可以看這個 thrift總結 一 介紹 做好之前的準備工作以後,下面就開始如何用thrift寫rpc介面。如何用thrift寫rpc介面 2.新建乙個空白解決方案命名為hellothrift...
Thrift總結 二 建立RPC服務
前面介紹了thrift 基礎的東西,怎麼寫thrift 語法規範編寫指令碼,如何生成相關的語言的介面。不清楚的可以看這個 thrift總結 一 介紹 做好之前的準備工作以後,下面就開始如何用thrift寫rpc介面。一 如何用thrift寫rpc介面 2.新建乙個空白解決方案命名為hellothri...
在 REDHAT 上建立第二個apache服務
有的時候,系統不允許從源 編譯安裝,這樣的話,就需要通過複製已經安裝好的apache2來實現。不過需要修改一些配置檔案的引數。大致有這些檔案需要修改 首先複製這些檔案到新的位置,接著,修改它們的內容 這個是apapche2服務的啟動指令碼,需要修改這些變數,以及指令碼中的這一段 這個是配置apach...