天天看點

分布式系統閱讀筆記(五)-----遠端調用介紹)請求回複協定)遠端過程調用)遠端方法調用)學習例子  Java RMI)

介紹)

這篇筆記主要講的是遠端調用的主要2種形式,RPC(遠端過程調用),RMI(遠端方法調用),這2種方法作為遠端調用的實作形式,對于我們了解他們的過程非常有用。

請求回複協定)

在遠端調用中,一個很重要的概念是啊請求回複協定,由用戶端發送Request到服務端,服務端執行好操作之後,把結果在回傳到用戶端上,就完成了一個基本的調用過程。這裡有幾點比較重要的概念:

1.消息辨別别。這裡指的主要是請求的辨別, 因為每個請求都確定要有唯一性,不同程序發送的請求也都可能會不一樣。

2.發送程序的辨別,這裡可以用網絡位址+端口号的形式區分不同主機上的程序。

請求回複協定中建構的失敗模型:

1.設定逾時機制,如果發生了什麼異常導緻回複消息沒有接受到。

2.撤銷重複的請求,因為有可能那個請求操作還沒有執行完,如果此時再發送相同請求,會被過濾掉。

3.會存在回複消息的曆史記錄表,避免同樣的請求導緻重複的操作,但是随着記錄的變多,會占據越來越大的空間,是以在這裡會有期限的限制。

4.交換資訊請求的類型,有3種,最簡單的純請求類型the request protocol,一般的請求回複類型the request-reply protocol,比較全面的the request-acknowledge-reply,額外添加了用戶端給服務端的回複确認包的過程。

5.HTTP就是一個基于TCP的典型的RR協定類型的協定。

遠端過程調用)

遠端過程調用隐藏了分布式系統中重要的方面,包括對于參數,結構值的編解碼的過程,還有消息的傳遞過程。

1.遠端過程調用實作的核心是2個字,interface,接口,通過聲明了共同的接口,是以能夠被很好的調用。

2.在RPC中,聲明了幾個call調用原語,主要3個at-least-one(最少被調用一次,在某次的RPC過程中),at-most-one(最多被調用一次,在某次的RPC的過程中),或者是Mayb(都有可能,針對不同的條件),像比如銀行,金融的機構就隻能被at-most-one這樣的請求模式了,否則後果不堪設想,他是針對了失敗情況措施而定的。

3.RPC的具體實作,裡面會包括一個stub程式,服務端和用戶端中都存在這個子產品,stub程式作為中間的一個中轉處,可以讓你調用遠端方法像是調用本地方法一樣的感覺。

遠端方法調用)

遠端方法調用(RMI)可有說是一種具體形式的RPC,非常接近于RPC,但是一個本質的不同在于他由于分布式對象擴充而來,他所有的調用都是基于Object的方式實作,充分利用了面向對象的思想去實作整個過程,比較易懂,是以這裡要求對象的引用必須具有唯一性。

1.在RMI的設計關鍵就在于對象模型的建立,一個号的對象中應該有許多的方法,而且這些方法應該是定義在接口中,隻是讓obj實作了這個方法,在對象裡,要主要實作異常的處理。

2.而分布式對象與上面的差別又是怎樣的呢,一個就是權限認證的控制,不是所有的對象都是可以随便通路的。

3.在分布式對象的調用中,再次強調了遠端調用引用的重要性,因為你要調用遠端對象,你必須已經包含了它的遠端引用,才能實作調用,遠端對象引用可以作為參數或者是結果進行程序間的傳遞的。

4.在分布式系統模型中主要以引用計數法控制分布式對象的垃圾回收。

5.RMI的實作主體子產品包括:1.溝通通信子產品。2.遠端引用子產品。3.服務子產品4.服務端,用戶端的程式實作子產品。

6.永恒對象存儲,在RMI中為了對象的友善調用,有時會被對象進行永久存儲,當他被再次調用的時候,就變為激活狀态,對象可以儲存在磁盤中或者是資料庫中。這裡有2個方法判斷一個對象是不是永恒對象(1).根搜尋法查找是否與永恒根對象有關(2)他是不是永恒的對象的子類如果是的話,他也将是永恒對象。

7.在分布式服務中的定位服務功能在資料庫或者是緩存中儲存了遠端對象引用和他所對應的目前位置的鍵值對關系,友善進行定位。如果資料不準确了,則會程序更新操作。

8.分布式垃圾回收機制。這個機制主要通過對象的增加和減少對象的引用計數的方式實作,在每個服務程序中都包含了一系列的對象的引用。在每個用戶端對一個對象在增加引用的時候,服務端會通過一個lease租約機制的形式将對象交給用戶端使用,到期了需要用戶端進行再次的遠端調用一次。

學習例子  Java RMI)

這長中的一個遠端例子的實作例子是java RMI的例子,很多東西與我們前面說過的都比較類似,通過接口的形式開放了各種方法,不過這裡需要繼承一個序列化接口,所有的參數和結果值都會通過序列化的形式程序傳輸,裡面用到了非常多的反射的思想(reflection)。

參考文獻:<<Distributed Sysytems Concepts And Design>>原版第五版,author:George Coulouris,Jean Dollimore, Tim Kindberg,Gordon Blair