回覆列表
  • 1 # IT人劉俊明

    分散式開發是程式設計師進階的必經之路,分散式也是雲計算的基礎,所以學習並掌握分散式開發對理解雲計算、大資料都有重要的幫助,也能為雲計算和大資料開發打下堅實的基礎。

    分散式的概念眾多,有分散式系統、分散式程式設計、分散式資料庫等等,當然需要學習的內容也頗多,當你進行到分散式開發這一步的時候,說明你已經有一定的程式設計經驗了,理解起來也就沒有那麼困難了。

    首先,要想系統學習分散式開發,必須先知道分散式的概念是什麼?關於分散式概念的描述五花八門,看起來也不是那麼好理解。其實概念越抽象就表明其涵蓋的內容越多,分散式就是這樣一個典型的概念。從程式設計師的角度來描述分散式,可以這樣進行一個簡單的定義:把不同的功能封裝成不同的元件,部署在不同的站點上。邏輯集中、物理分散是其典型的特點,其中的每一個功能也可以使用叢集的方式來進行擴充套件。

    由於你有Java、Python和C++的基礎,所以下面我就以java程式為例說一下如何使用java語言進行分散式開發。使用java語言進行分散式學習的第一步是瞭解RMI開發規則,其中還涵蓋了JNDI技術,以及命名伺服器的概念。對於已經擁有java開發經驗的程式設計師來說,搭建一個RMI應用並不複雜,不用學習複雜的框架以及配置檔案規則就可以透過程式碼構建一個簡單的RMI應用。

    RMI是java EE企業級開發的一個核心技術,java也一直致力於對其不斷的最佳化,包括最新的jdk1.9版本也把RMI放在重要的位置上,大家可以去java的官網瀏覽一下最新的指南。這裡我簡單描述一下RMI的建立規則,希望透過我的描述能讓你對RMI開發有一個大致上的瞭解。RMI程式碼結構分為三個部分:

    定義介面。RMI開發的第一步就是定義介面,介面中定義了哪些方法可以進行遠端呼叫。這些方法對於使用者來說是透明的,至於執行的伺服器在哪?使用者並不需要關心,這也是分散式的特點之一。當然,這裡面還有兩個細節需要注意:一個是傳遞的物件要能夠序列化,另一個是要丟擲RemoteException異常。

    定義服務模組。RMI開發的第二步就是定義服務端,服務端的任務有兩個:一個是實現介面中描述的服務,另一個是把自己繫結到目錄伺服器上,以便於使用者查詢並使用遠端服務。如果採用基礎編碼需要擴充套件一個類:UnicastRemoteObject,當然如果你使用Spring框架會簡單一些,框架提供了一部分封裝的實現。

    定義客戶端。RMI的客戶端呼叫非常簡單,客戶端的任務就兩個:一個是到目錄伺服器查詢服務,另一個就是呼叫找到的服務。基礎編碼採用JNDI中的Naming類就能完成查詢和呼叫的過程。

    在瞭解了RMI開發原理之後,你可以在服務端透過DAO方式引入資料庫,這樣就能完成一個基本的分散式處理系統了。

    使用RMI完全能夠建立大型的分散式系統軟體,但是RMI也有固有的問題,比如RMI只能使用java進行開發,在分散式事務的支援方面做的不夠好等等。但是從學習的角度,完全可以從RMI入手。經過了RMI的學習並實踐之後,你就可以進一步瞭解眾多的分散式開發框架,學習起來也就比較容易了,畢竟使用框架比使用純粹的RMI編碼要簡單很多了。

  • 2 # 井151276607

    剛要入門分散式系統的學習?如何系統的學習?看這樣子你是想自學?如果是自學,就先不要考慮學習(過程)是否“系統”,這很重要。

    至少,你已經使用過許多分散式系統了。你列舉了一些已經掌握的知識程式設計,但是卻沒有說你做過什麼“系統”。在你將程式設計知識轉換為“系統”開發能力之前,不要學什麼分散式系統。

    你覺得這樣的方式開始學習分散式系統如何?

  • 中秋節和大豐收的關聯?
  • 你會花兩三千塊錢買一件夏天的衣服嗎?