點關注,不迷路;持續更新Java相關技術及資訊!!!
為什么要用dubbo?
當網站規模達到了一定的量級的時候,普通的MVC框架已經不能滿足我們的需求,于是分布式的服務框架和流動式的架構就凸顯出來了,

單一應用架構
當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本,此時,用于簡化增刪改查作業量的資料訪問框架(ORM) 是關鍵,
垂直應用架構
當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率,此時,用于加速前端頁面開發的Web框架(MVC) 是關鍵,
分布式服務架構
當垂直應用越來越多,應用之間互動不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的回應多變的市場需求,
此時,用于提高業務復用及整合的分布式服務框架(RPC) 是關鍵,
流動計算架構
當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個調度中心基于訪問壓力實時管理集群容量,提高集群利用率,
此時,用于提高機器利用率的資源調度和治理中心(SOA) 是關鍵,
廢話不多說,先搭建一個看看是怎么一回事?–
目前對我來說就是,我A工程想呼叫B工程中的方法怎么辦?我import不進來啊,這時候我就需要遠程呼叫的方法了,怎么遠程呼叫呢?dobbu給我提供了一個好的開源框架,那我就用它來操作吧!
dubbo和zookeeper啥關系?
簡單來說打個比方:dubbo就是動物園的動物,zookeeper是動物園,如果游客想看動物的話那么就去動物園看,比如你要看老虎,那么動物園有你才能看到,換句話說我們把很多不同的dubbo(動物)放到zookeeper(動物園中)提供給我們游客進行觀賞,這個程序中三個關鍵:場所、供給者、消費者,
再說一個分布式的專案,server(消費)層與 service(供給)層被拆分了開來, 部署在不同的tomcat中, 我在server層需要呼叫 service層的介面,但是兩個運行在不同tomcat下的服務無法直接互調介面,那么就可以通過zookeeper和dubbo實作,就好比把動物放到動物園,我們要看了直接去動物園就行,而不能直接去動物生活的地方去看,會有性命安全之憂(比如你去看老虎),
我們通過dubbo 建立service這個服務,并且到zookeeper上面注冊,填寫對應的zookeeper服務所在 的IP及埠號,

下面我們的server層需要來呼叫 service介面了,由于在不同的工程中,它是無法直接找到service介面的,我們使用dubbo再來參考注冊進入的dubbo服務,
我們先填寫zookeeper服務所在 的IP及埠號,再填寫我們需要呼叫的介面名字,

這樣,就能實作呼叫,,,
搭建簡單的dubbo
1.下載zookeeperhttp://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.3-beta/zookeeper-3.5.3-beta.tar.gz

2.配置:
zookeeper的組態檔在conf目錄,有zoo_sample.cfg 和 log4j.properties,將zoo_sample.cfg 重命名成zoo.cfg,因為 zookeeper 在啟動時會找這個檔案作為默認組態檔,

3.修改zoo.cfg.
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=D:\\server\\zookeeper-3.5.3-beta\\data
dataLogDir=D:\\server\\zookeeper-3.5.3-beta\\log
#dataDir=/tmp/zookeeper

從上面代碼可以看到添加了兩行,在本機里,zookeeper放在D盤里,然后就添加了dataDir及dataLogDir兩個變數,與此同時在zookeeper檔案根目錄下新建data及log兩個檔案夾,如果不創建,后面運行腳本是地會報錯,

完成后,進入bin目錄,運行zkServer.cmd腳本,讓后就可以在單機上將zookeeper跑起來了,

剩下來的事情就是去配置DUBBO的XML檔案了,通過IP地址的設定,提供本地的服務,
管理中心(動物園)和供給者(各種動物),消費者(萬千游客)
dubbo的使用,其實只需要有管理中心(動物園)和供給者(各種動物),消費者(萬千游客)這三個就可以使用了,但是并不能看到有哪些消費者和提供者,為了更好的除錯,發現問題,解決問題,因此引入dubbo-admin,通過dubbo-admin可以對消費者和提供者進行管理,
dubbo-admin的下載,可自行到官網下載:https://github.com/alibaba/dubbo
下載下來是這樣的一個目錄結構:

這里我們只關心dubbo-admin這個檔案夾,將dubbo-addmin打成war包,war包網上也有,但是下載了很多下來都會有問題,原因是每個人的電腦配置環境不一樣,因此我們自己打包一個war就好,
打包war包,進入dubbo-admin這個檔案目錄 運行命令:
mvn package

如果看到下圖結果,說明打包成功了:

打包成功之后,就會發現dubbo-admin下多了個target檔案夾,打開target檔案夾,發現里面有個war包:

把dubbo-admin-2.5.7.war檔案復制到tomcat的webapps目錄下,
在tomcat的bin目錄下運行:tomcat8.0w.exe


它會自動在webapps下生成一個檔案夾,然后關閉tomcat8.0w.exe,修改埠號改成9090


然后啟動在bin目錄下啟動tomcat8.0.exe即可:

啟動后,輸入
http://localhost:9090/dubbo-admin-2.5.7/
然后會提示你輸入用戶名和密碼—-都是root
這個和你的組態檔里面的內容是相關的:
D:\server\Tomcat 8.5\webapps\dubbo-admin-2.5.7\WEB-INF
我的目錄如圖上所示,里面有一個dubbo.properties的檔案:
dubbo.registry.address=zookeeper://127.0.0.1:2181dubbo.admin.root.password=root dubbo.admin.guest.password=guest
成功輸入以后:

到此這篇關于文章就結束了!
上述面試題答案都整理成檔案筆記, 也還整理了一些面試資料&最新2020收集的一些大廠的面試真題(都整理成檔案,小部分截圖),有需要的可以 點擊進入 查看領取資料,
點關注,不迷路!如果本文對你有幫助的話不要忘記點贊支持哦!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/98807.html
標籤:其他
