定義
Universally Unique Identifier:通用唯一識别碼。一種軟件建構的标準,亦為開放軟件基金會組織在分布式計算環境領域的一部分。
目的讓分布式系統中的所有元素,都能有唯一的辨識信息,而不需要通過中央控制端來做辨識信息的指定。如此一來,每個人都可以創建不與其它人沖突的UUID。
示例
public static void main(String[] args) {
String uuid = UUID.randomUUID().toString();
System.out.println(uuid);
System.out.println(uuid.length());
uuid = uuid.replace("-","");
System.out.println(uuid);
System.out.println(uuid.length());
}
參考 遠程服務調用 | 鳳凰架構#三個基本問題
所有流行過的 RPC 協議,都不外乎變着花樣使用各種手段來解決以下三個基本問題:
如何表示數據:
這裡數據包括了傳遞給方法的參數,以及方法執行後的返回值。無論是将參數傳遞給另外一個進程,還是從另外一個進程中取回執行結果,都涉及到它們應該如何表示。(序列化與反序列化)
如何傳遞數據:
準确地說,是指如何通過網絡,在兩個服務的 Endpoint 之間相互操作、交換數據。(Wire_Protocol)
如何确定方法:
每門語言的方法簽名都可能有所差别,所以“如何表示同一個方法”,“如何找到對應的方法”還是得弄個跨語言的統一的标準才行。這個标準做起來可以非常簡單,譬如直接給程序的每個方法都規定一個唯一的、在任何機器上都絕不重複的編号,調用時壓根不管它什麼方法簽名是如何定義的,直接傳這個編号就能找到對應的方法。這種聽起既粗魯又寒碜的辦法,還真的就是 DCE/RPC 當初準備的解決方案。
雖然最終 DCE 還是弄出了一套語言無關的接口描述語言 (Interface Description Language,IDL),成為此後許多 RPC 參考或依賴的基礎(如 CORBA 的 OMG IDL),但那個唯一的絕不重複的編碼方案UUID (Universally Unique Identifier)卻也被保留且廣為流傳開來,今天已廣泛應用于程序開發的方方面面。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!