Dubbo+zookeeper搭建環境學習筆記

Dubbo背景和簡介

Dubbo開始於電商系統,所以在這裏先從電商系統的演變講起。前端

1.單一應用框架(ORM) 
當網站流量很小時,只需一個應用,將全部功能以下單支付等都部署在一塊兒,以減小部署節點和成本。 
缺點:單一的系統架構,使得在開發過程當中,佔用的資源愈來愈多,並且隨着流量的增長愈來愈難以維護 git

2.垂直應用框架(MVC) 
垂直應用架構解決了單一應用架構所面臨的擴容問題,流量可以分散到各個子系統當中,且系統的體積可控,必定程度上下降了開發人員之間協同以及維護的成本,提高了開發效率。 
缺點:可是在垂直架構中相同邏輯代碼須要不斷的複製,不能複用。github

3.分佈式應用架構(RPC) 
當垂直應用愈來愈多,應用之間交互不可避免,將核心業務抽取出來,做爲獨立的服務,逐漸造成穩定的服務中心 web

4.流動計算架構(SOA) 
隨着服務化的進一步發展,服務愈來愈多,服務之間的調用和依賴關係也愈來愈複雜,誕生了面向服務的架構體系(SOA),也所以衍生出了一系列相應的技術,如對服務提供、服務調用、鏈接處理、通訊協議、序列化方式、服務發現、服務路由、日誌輸出等行爲進行封裝的服務框架apache

 

    • 單一應用架構windows

      • 當網站流量很小時,只需一個應用,將全部功能都部署在一塊兒,以減小部署節點和成本。
      • 此時,用於簡化增刪改查工做量的 數據訪問框架(ORM) 是關鍵。
    • 垂直應用架構瀏覽器

      • 當訪問量逐漸增大,單一應用增長機器帶來的加速度愈來愈小,將應用拆成互不相干的幾個應用,以提高效率。
      • 此時,用於加速前端頁面開發的 Web框架(MVC) 是關鍵。
    • 分佈式服務架構 
      • 當垂直應用愈來愈多,應用之間交互不可避免,將核心業務抽取出來,做爲獨立的服務,逐漸造成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。
      • 此時,用於提升業務複用及整合的 分佈式服務框架(RPC) 是關鍵。
    • 流動計算架構 
      • 當服務愈來愈多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增長一個調度中心基於訪問壓力實時管理集羣容量,提升集羣利用率。
      • 此時,用於提升機器利用率的 資源調度和治理中心(SOA) 是關鍵。

在這裏插播一條關於RPC的簡介: 
RPC(Remote Procedure Call Protocol):遠程過程調用: 
兩臺服務器A、B,分別部署不一樣的應用a,b。當A服務器想要調用B服務器上應用b提供的函數或方法的時候,因爲不在一個內存空間,不能直接調用,須要經過網絡來表達調用的語義傳達調用的數據。 
說白了,就是你在你的機器上寫了一個程序,我這邊是沒法直接調用的,這個時候就出現了一個遠程服務調用的概念。tomcat

RPC是一種經過網絡從遠程計算機程序上請求服務,而不須要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,爲通訊程序之間攜帶信息數據。在OSI網絡通訊模型中,RPC跨越了傳輸層和應用層。
RPC使得開發包括網絡分佈式多程序在內的應用程序更加容易。 RPC採用客戶機/服務器模式。請求程序就是一個客戶機,而服務提供程序就是一個服務器。首先,客戶機調用進程發送一個有進程參數的調用信息到服務進程,而後等待應答信息。
在服務器端,進程保持睡眠狀態直到調用信息到達爲止。當一個調用信息到達,服務器得到進程參數,計算結果,發送答覆信息,而後等待下一個調用信息,最後,客戶端調用進程接收答覆信息,得到進程結果,而後調用執行繼續進行。

RPC須要解決的問題: 
(能夠稍做了解,詳情可查看別的博文)服務器

    • 通信問題 : 主要是經過在客戶端和服務器之間創建TCP鏈接,遠程過程調用的全部交換的數據都在這個鏈接裏傳輸。鏈接能夠是按需鏈接,調用結束後就斷掉,也能夠是長鏈接,多個遠程過程調用共享同一個鏈接。
    • 尋址問題 : A服務器上的應用怎麼告訴底層的RPC框架,如何鏈接到B服務器(如主機或IP地址)以及特定的端口,方法的名稱名稱是什麼,這樣才能完成調用。好比基於Web服務協議棧的RPC,就要提供一個endpoint URI,或者是從UDDI服務上查找。若是是RMI調用的話,還須要一個RMI Registry來註冊服務的地址。
    • 序列化 與 反序列化 : 當A服務器上的應用發起遠程過程調用時,方法的參數須要經過底層的網絡協議如TCP傳遞到B服務器,因爲網絡協議是基於二進制的,內存中的參數的值要序列化成二進制的形式,也就是序列化(Serialize)或編組(marshal),經過尋址和傳輸將序列化的二進制發送給B服務器。 
      同理,B服務器接收參數要將參數反序列化。B服務器應用調用本身的方法處理後返回的結果也要序列化給A服務器,A服務器接收也要通過反序列化的過程。

以上理論都來自  http://blog.csdn.net/noaman_wgs/article/details/70214612 網絡

 

正式安裝步驟

一.zookeeper安裝

1.下載zookeeper

  路徑爲http://www-eu.apache.org/dist/zookeeper/zookeeper-3.5.3-beta/

2.解壓到指定目錄下

3.解壓後,將con文件夾下的zoo_sample.cfg拷貝一份,重命名爲zoo.cfg

紅色路徑須要真實存在,否則可能報錯。沒有的話就去新建對應的文件路徑

4.windows系統下會使用zkServer.cmd開啓,因此在bin目錄下找到zkServer.cmd,雙擊開啓,咱們能夠看到他的端口爲2181

注意這裏還有一個端口8088被啓用。

發現一個問題。
zookeeper最近的版本中有個內嵌的管理控制檯是經過jetty啓動,也會佔用8080 端口。可能會跟你的Tomcat衝突。
修改端口的方法有兩種,一種是在啓動腳本中增長 -Dzookeeper.admin.serverPort=你的端口號.一種是在zoo.cfg中增長admin.serverPort=沒有被佔用的端口號。
也能夠停用這個服務,在啓動腳本中增長"-Dzookeeper.admin.enableServer=false"。

 插播一個查詢端口占用狀況,清除端口的方法

1. win + R,輸入cmd回車進入dos界面 
2. 輸入netstat -ano|findstr 8080 查看佔用8080端口的進程 
3. 輸入taskkill /pid 10148 /f 將顯示的進程號(個人是10148)結束掉

二.dubbo安裝  

1.下載dubbo源碼

    源碼地址爲github上的地址,可使用git或者直接下載壓縮包.https://github.com/alibaba/dubbo/tree/2.5.x

2.下載完以後的目錄結構,如果壓縮包,就將壓縮包解壓

3.在當前目錄下打開命令窗口,使用命令mvn clean install -Dmaven.test.skip=true構建dubbo源碼(要安裝maven喲)

4.構建完成以後,找到上圖中dubbo-admin下target文件夾中的war包,將其拷貝到本地的tomcat的webapps下

 

測試環境搭建是否成功

     先啓動zk,而後啓動tomcat,此時會看到兩個dos窗口中信息滾動特快,特炫酷.待tomcat啓動完畢以後,在瀏覽器中輸入地址.提早說明,

我拷貝到tomcat-->webapps下的dubbo-admin的war包我更名爲了dubbo-admin.war,以下圖所示,個人tomcat端口號是8080,在瀏覽其中輸入地址http://localhost:8080/dubbo-admin/回車,

輸入用戶名和密碼,用戶名和密碼均爲root,這時候就會看到dubbo控制檯,以下圖.

 就是這麼簡單就行了

相關文章
相關標籤/搜索