2
A
回答
2
這些數字(「1:」和「2:」)是參數的序數值。序數是表達「在一系列中的位置」的奇妙方式,但是,數字不必是連續的,而是唯一的。
[TLDR]
在Apache中節儉IDL,序號被分配給一個參數列表中的每個參數和每個字段在一個結構。當客戶端程序調用Apache Thrift服務器時,它們不傳遞參數名稱,它們傳遞更小的序數,一個代表參數類型和序列化參數值的數字。
這不僅可以節省線路空間,還可以隨時添加參數到一個功能,並以任何順序發送參數而不會破壞客戶端或服務器。如果Apache Thrift程序收到一個帶有序號的參數,它將無法識別它忽略它。
此外,如果缺少參數,可以使用默認值。下面是與分配給allowPartialMatch參數的默認值另一個例子服務:
service SocialLookup {
string GetSiteByRank(1: i32 rank)
i32 GetSiteRankByName(1: string name, 2: bool allowPartialMatch=false)
list<string> GetSitesByUsers(1: i32 minUserCount, 2: i32 maxUserCount)
}
如果客戶端調用GetSiteRankByName方法和param「2:」不通過,則使用默認值。如果要發佈各個服務的新版本,而無需同時更新服務的所有用戶,則允許接口像這樣發展非常重要。微服務和CI/CD。
重要的是,一旦設置,您不應該更改序號,因爲它可能導致給定的客戶端和服務器誤解對方。您可以刪除參數,但最好將它們註釋掉,以便每個人都知道不要重複使用序號。
[/ TLDR]
1
人們可能添加,這些數字是客戶端和服務器之間用於識別一個特定的字段中的僅信息。字段名通常甚至不會被序列化成消息。
相關問題
- 1. 節儉,CQL3還是什麼?
- 2. 什麼是嚴格的節儉讀寫?
- 3. 阿帕奇節儉:序列化數據
- 4. 節點節儉反序列化
- 5. 如何節儉
- 6. 如何節儉
- 7. 錯誤節儉
- 8. 安裝節儉idl
- 9. 節儉調試器?
- 10. WSO2節儉異步
- 11. Maven節儉插件
- 12. 紅寶石節儉系列化壓縮
- 13. 爲什麼HBase的節儉API總是返回一個節儉的客戶端連接
- 14. LALR(1)空函數參數列表
- 15. 爲什麼節儉泊塢窗圖像需要去
- 16. 爲什麼我需要節儉建造水槽?
- 17. 困惑於節儉,它究竟做了什麼?
- 18. 在js中使用節儉而不依靠節儉RPC
- 19. 如何JSON列表輸出在阿帕奇節儉
- 20. 我可以返回節儉地圖列表嗎?
- 21. Common Lisp爲什麼(列表+ 1 2)評估爲('(+ 1 2)1 2)
- 22. 節儉異步函數中的回調?
- 23. Jcascalog查詢HDFS上的節儉數據
- 24. 將數據寫入節儉文件
- 25. 爲什麼字節b =(字節)0xFF等於整數-1?
- 26. Openssl:RSA參數代表什麼?
- 27. 'MaxRAM'JVM參數表示什麼?
- 28. na_rep參數代表什麼?
- 29. 什麼是對象節點列表
- 30. 如何使用節儉
偉大的一點!序號的全部目的是消除序列化大字段名稱的需要,這很重要(事實上很關鍵)。 – codeSF