Netty框架入門學習--Thrift的使用

Apache Thrift 是一個可伸縮的,跨語言的RPC通信服務開發框架,將軟件棧與代碼生成引擎相結合,在C++、Java、Python、PHP、JavaScripti等語言中可以高效、無縫地構建服務。
Thrift是一個CS 結構,客戶端和服務端可以使用不用的語言進行開發,通過一箇中間語言IDL(Interface Description Language)來關聯。

準備工作:

1.Apache Thrift software framework,Thrift官方文檔
2.下載安裝Thrift,下載地址:http://thrift.apache.org/download
下載完成之後,將下載的文件名更改成thrift.exe,然後將文件所在路徑配置到Path環境變量裏面。
在這裏插入圖片描述
在這裏插入圖片描述

配置完成後,確認下thrift是否安裝成功。thrift -version
在這裏插入圖片描述

編寫thrift文件

官網ThriftTest.thrift文件示例

在項目中新建一個data.thrift文件

//定義一個包名,語言是Java
namespace java thrift.generated

//定義數據類型別名,根據我們的習慣把thrift數據類型改成Java的數據類型,這樣我們可以方便使用
typedef i16 short //通過typedef定義i16爲short
typedef i32 int
typedef i64 long
typedef bool boolean
typedef string String

struct Person {
    1: optional String username, //默認就是optional類型
    2: optional int age,
    3: optional boolean married
}

exception DataException {
    1: optional String message,
    2: optional String callStack,
    3: optional String date //thrift不支持日期類型,用字符串表示
}

//用service定義接口方法
service PersonService {
    Person getPersonByUsername(1: required String username) throws (1: DataException dataException)

    void savePerson(1: required Person person) throws (1: DataException dataException)
}
生成文件目標語言代碼

生成命令:

thrift --gen java data.thrift

接着我們在idea打開命令終端來輸入thrift生成命令,我沒用idea自帶終端窗口,用的是cmder這個軟件,有需要的可以去cmder網站去下載,很好用這個終端工具。
在這裏插入圖片描述

執行完生成命令,不出意外的話,在我們的項目裏面可以看到生成好的文件了。
在這裏插入圖片描述

Gradle引用thrift依賴
"org.apache.thrift:libthrift:0.12.0"

Thrift客戶端和服務端

我們src/main/java新建一個目錄thrift/generated,將生成的thrift文件放到這個目錄下。

在這裏插入圖片描述

新建一個類實現thrift生成文件類

PersonServiceImpl
在這裏插入圖片描述

服務端

ThriftServer
在這裏插入圖片描述

客戶端

ThriftClient
在這裏插入圖片描述


啓動服務端和客戶端:

服務端控制檯打印:
在這裏插入圖片描述

客戶端控制檯打印:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章