首頁>Club>
15
回覆列表
  • 1 # 等我lai開團

    Dubbo架構介紹

    Dubbo經常會和SpringCloud微服務架構作比較,但實際上兩者側重的領域是有很大不同的。Dubbo側重於服務治理即服務的註冊更新、管理服務的生命週期、定製服務的遵從規則,確保服務一致性、服務監控等、服務的呼叫等。而SpringCloud則側重於整個微服務生態,除了服務治理以外對服務閘道器、分散式配置、服務跟蹤、訊息匯流排、資料流、批次任務等都有很好的技術規範實現。可以看出來Dubbo可以作為SpringCloud生態的一部分和SpringCloud整合在一起提供服務治理方面的支援。雖然功能沒有SpringCloud整個生態完善,但是就服務治理來講,Dubbo有著諸多優勢:

    1.支援更多協議,如:rmi、hessian、http、webservice等。

    2.效率更高,因為訪問方式的不同Dubbo能有更好的表現。

    3.服務治理提供粒度更小的管理。

    Dubbo核心功能:

    1.遠端通訊,提供對多種基於長連線的 NIO 框架抽象封裝,包括多種執行緒模型,序列化,以及“請求-響應”模式的資訊交換方式。

    2.叢集容錯,提供基於介面方法的透明遠端過程呼叫,包括多協議支援,以及軟負載均衡,失敗容錯,地址路由,動態配置等叢集支援。

    3.自動發現,基於註冊中心目錄服務,使服務消費方能動態的查詢服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。

    Dubbo架構如下圖所示:

    由上圖可知Dubbo的服務呼叫流程如下:

    1.服務提供者將自己釋出註冊到服務註冊中心暴露服務

    2.服務消費者從服務註冊中心訂閱服務

    3.服務消費者根據註冊中心獲取的服務進行進行遠端呼叫

    Dubbo本地開發環境搭建

    Duoobo服務註冊註冊中心的搭建,我們將使用Zookeeper作為實際註冊中心進行操作演練。

    Dubbo專案的搭建

    使用eclipse新建一個服務提供者的maven專案。這裡新建一個專案名為:dubbo-provider用來提供根據使用者名稱來返回使用者資訊的簡單例項:

    1.首先將Dubbo和Zookeeper的依賴架包進行引入。

    新建服務提供介面和具體實現類,在eclipse下建立名為:dubbo-provider的maven專案。

    1.建立使用者資訊查詢服務介面QueryUserInfoService提供一個根據使用者名稱返回使用者資訊的介面getUserInfo(String name)。

    2.建立具體的實現類QueryUserInfoServiceImpl,實現根據使用者名稱返回一個使用者資訊的字串。

    3.在resources資料夾下建立applicationProvider.xml配置服務類的相關資訊,用來註冊和暴露服務。

    4.建立服務註冊類:ServerMain讀取配置檔案,註冊配置檔案中的服務,配置完成後啟動該類即可完成服務的註冊。

    配置監控中心。如果我們需要對自己的服務進行監控和檢視需要安裝Monitor服務。1.在Github上下載dubbo-admin專案後修改目錄下的dubbo.properties檔案:

    1)配置zk地址:

    dubbo.registry.address=zookeeper://127.0.0.1:2181

    2)配置登入使用者root密碼:

    dubbo.admin.root.password=roo

    2.構建專案,在dubbo-admin目錄下

    使用maven命令打包:mvn clean package

    3.執行dubbo-admin專案可以用以下兩種方式:

    1)mvn --projects dubbo-admin-server spring-boot:run

    2)cd dubbo-admin-distribution/targe;java -jar dubbo-admin-0.1.jar

    4.執行成功後即可透過預設的127.0.0.1:8080訪問監控後臺頁面

    新建服務消費者專案實現對服務提供者進行服務消費,在eclipse下建立名為:dubbo-customer的maven專案。

    1.引入或建立服務介面QueryUserInfoService類

    2.在resources資料夾下建立applicationContext.xml配置註冊中心資訊,用來獲取服務資訊。

    3.建立一個消費測試類QueryUserInfoService呼叫服務。

  • 中秋節和大豐收的關聯?
  • LOL各大賽區夏季賽首日,悠米存在感驚人!網友:它是檢驗你菜不菜的標準!你怎麼看?