真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中RMI的使用方法

本篇內(nèi)容介紹了“Java中RMI的使用方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)專注于貴陽網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供貴陽營銷型網(wǎng)站建設,貴陽網(wǎng)站制作、貴陽網(wǎng)頁設計、貴陽網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務,打造貴陽網(wǎng)絡公司原創(chuàng)品牌,更為您提供貴陽網(wǎng)站排名全網(wǎng)營銷落地服務。

RMI 介紹

RMI (Remote Method Invocation) 模型是一種分布式對象應用,使用 RMI 技術(shù)可以使一個 JVM 中的對象,調(diào)用另一個 JVM 中的對象方法并獲取調(diào)用結(jié)果。這里的另一個 JVM 可以在同一臺計算機也可以是遠程計算機。因此,RMI 意味著需要一個 Server 端和一個 Client 端。

Server 端通常會創(chuàng)建一個對象,并使之可以被遠程訪問。

這個對象被稱為遠程對象。

Server 端需要注冊這個對象可以被 Client 遠程訪問。

Client 端調(diào)用可以被遠程訪問的對象上的方法,Client 端就可以和 Server 端進行通信并相互傳遞信息。

說到這里,是不是發(fā)現(xiàn)使用 RMI 在構(gòu)建一個分布式應用時十分方便,它和 RPC 一樣可以實現(xiàn)分布式應用之間的互相通信,甚至和現(xiàn)在的微服務思想都十分類似。

RMI 工作原理

正所謂 “知其然知其所以然”,在開始編寫 RMI 代碼之前,有必要了解一下 RMI 的工作原理,RMI 中 Client 端是和 Server 端是如何通信的呢?

下圖的可以幫助我們理解RMI 的工作流程。

Client 端有一個被稱 Stub 的東西,有時也會被成為存根,它是 RMI Client 的代理對象,Stub 的主要功能是請求遠程方法時構(gòu)造一個信息塊,RMI 協(xié)議會把這個信息塊發(fā)送給 Server 端。

這個信息塊由幾個部分組成:

遠程對象標識符。

調(diào)用的方法描述。

編組后的參數(shù)值(RMI協(xié)議中使用的是對象序列化)。

既然 Client 端有一個 Stub 可以構(gòu)造信息塊發(fā)送給 Server 端,那么 Server 端必定會有一個接收這個信息快的對象,稱為 Skeleton 。

它主要的工作是:

解析信息快中的調(diào)用對象標識符和方法描述,在 Server 端調(diào)用具體的對象方法。

取得調(diào)用的返回值或者異常值。

把返回值進行編組,返回給客戶端 Stub.

到這里,一次從 Client 端對 Server 端的調(diào)用結(jié)果就可以獲取到了。

RMI 開發(fā)

通過上面的介紹,知道了 RMI 的概念以及 RMI 的工作原理,下面介紹 RMI 的開發(fā)流程。

這里會通過一個場景進行演示,假設 Client 端需要查詢用戶信息,而用戶信息存在于 Server 端,所以在 Server 端開放了 RMI 協(xié)議接口供客戶端調(diào)用查詢。

RMI Server

Server 端主要是構(gòu)建一個可以被傳輸?shù)念?User,一個可以被遠程訪問的類 UserService,同時這個對象要注冊到 RMI 開放給客戶端使用。

定義服務器接口(需要繼承 Remote 類,方法需要拋出 RemoteException)。

User 對象在步驟 3 中定義。

實現(xiàn)服務器接口(需要繼承 UnicastRemoteObject 類,實現(xiàn)定義的接口)。

定義傳輸?shù)膶ο?,傳輸?shù)膶ο笮枰獙崿F(xiàn)序列化(Serializable)接口。

需要傳輸?shù)念愐欢ㄒ獙崿F(xiàn)序列化接口,不然傳輸時會報錯。IDEA 中如何生成 serialVersionUID,在文章末尾也附上了簡單教程。鄭州那個婦科醫(yī)院好www.qudouwy.com

注冊( rmiregistry)遠程對象,并啟動服務端程序。

服務端綁定了 UserService 對象作為遠程訪問的對象,啟動時端口設置為 1900。

定義傳輸?shù)膶ο?,傳輸?shù)膶ο笮枰獙崿F(xiàn)序列化(Serializable)接口。

需要傳輸?shù)念愐欢ㄒ獙崿F(xiàn)序列化接口,不然傳輸時會報錯。IDEA 中如何生成 serialVersionUID,在文章末尾也附上了簡單教程。

注冊( rmiregistry)遠程對象,并啟動服務端程序。

服務端綁定了 UserService 對象作為遠程訪問的對象,啟動時端口設置為 1900。

RMI Client

相比 Server 端,Client 端就簡單的多。直接引入可遠程訪問和需要傳輸?shù)念?,通過端口和 Server 端綁定的地址,就可以發(fā)起一次調(diào)用。

“Java中RMI的使用方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


新聞標題:Java中RMI的使用方法
文章轉(zhuǎn)載:http://weahome.cn/article/jsgoeo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部