1. thrift入門教程
https://www.jianshu.com/p/0f4113d6ec4b
這是一篇不錯的入門文章,閱讀起來只需要幾分鍾。內容包括:
- IDL基本介紹。
- 如何使用IDL文件生成代碼;
- 如何啟動服務端/客戶端;
2. thrift server通信類型(transport type)
常用的有以下三種:
(1) buffered:使用經典的緩沖流Socket;
(2) framed(非阻塞server必須使用這種):基於幀的方式的Socket,每個幀都是按照4字節的幀長加上幀的內容來組織,幀內容就是我們要收發的數據。讀的時候按長度預先將整Frame數據讀入Buffer,再從Buffer慢慢讀取。寫的時候,每次flush將Buffer中的所有數據寫成一個Frame。framed這種方式有點類似於http協議的chunked編碼;
(3) fastframed:和framed相比是內存利用率更高的一個內存讀寫緩存區,它使用自動增長的byte,而不是每次都new一個byte[],提高了內存的使用率。framed的ReadBuffer每次讀入Frame時都會創建新的byte[],WriteBuffer每次flush時如果大於初始1K也會重新創建byte[]。