天天看點

Spring RMI 介紹和使用

核心源碼

大家好,我是一枚正直純潔善良的JAVA程式員。今天給大家分享一下,Spring RMI

Spring RMI

RMI全稱是Remote Method Invocation-遠端方法調用,是純Java的網絡分布式應用系統的核心解決方案之一。Java RMI 支援存儲于不同位址空間的程式級對象之間彼此進行通信,實作遠端對象之間的無縫遠端調用。

RMI目前使用Java遠端消息交換協定JRMP進行通信。由于JRMP是專為Java對象制定的,用Java RMI開發的應用系統可以部署在任何支援JRE的平台上。但由于JRMP是專為Java對象制定的,是以,RMI對于用非Java語言開發的應用系統的支援不足。不能與用非Java語言書寫的對象進行通信。

知識剖析

一個正常工作的RMI系統由下面幾個部分組成:

1·遠端服務的接口定義

2·遠端服務接口的具體實作

3·樁(Stub)和架構(Skeleton)檔案

4·一個運作遠端服務的伺服器

5·一個RMI命名服務,它允許用戶端去發現這個遠端服務

6·類檔案的提供者(一個HTTP或者FTP伺服器)

7·一個需要這個遠端服務的用戶端程式

RMI的主要優點:

1. RMI是Java編寫的, 具有 “編寫一次,到處運作 ” 的特性。任何基于RMI的系統均可100%地移植到 任何Java虛拟機上

2. 面向對象:RMI可将完整的對象作為參數和傳回值進行傳遞直接通過網絡傳輸對象資料。

3.可移動屬性:RMI可将屬性從客戶機移動到伺服器,或者從伺服器移到客戶機。

4.設計方式:對象傳遞功能使您可以在分布式計算中充分利用面向對象技術的強大功能。

5.安  全:RMI使用Java内置的安全機制保證下載下傳執行程式時使用者系統的安全。

分布式和叢集

分布式:一個業務分拆多個子業務,部署在不同的伺服器上。叢集:同一個業務,部署在多個伺服器上

常見問題

1. 如何使用Spring RMI釋出服務

2. 打包問題

解決方案

1. 服務端使用Spring 配置來注入RmiServiceExporter對象來釋出服務

2. 使用 maven-shade-plugin 将其打包為jar檔案.

編碼實戰

擴充思考

參考文獻

RMI 說明: http://www.cnblogs.com/xt0810/p/3640167.html

RMI 優點: https://blog.csdn.net/tornado886/article/details/4540805

更多讨論

今天的分享就到這裡啦,歡迎大家提問和探讨!

核心源碼