Dubbo

一、概念

  • Dubbox是一個被國內很多互聯網公司廣泛使用的開源分佈式服務框架,即使從國際視野來看應該也是一個非常全面的SOA基礎框架,作爲一個重要的技術研究課題,噹噹網根據自身的需求,爲Dubbox實現了一些新的功能,並將其命名爲Dubbox(即Dubbo eXtenslons)
  • Dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是一個服務框架,如果沒有分佈式的需求,其實是不需要用的,只有在分佈式的時候,纔有dubbo這樣的分佈式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分佈式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在dubbo上註冊);

    其核心部分包含:
    A、遠程通信:提供對多種基於長連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及“請求-響應”模式的信息交換方式。
    B、集羣容錯:提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集羣支持。
    C、自動發現:基於註冊中心目錄服務,是服務消費方能動態的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。

  • Dubbo用途
    A、透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。
    B、軟負載均衡及容錯機制,可以內網替代F5等硬件負載均衡器,降低成本,減少單點。
    C、服務自動註冊於發現,不在需要寫死服務提供方地址,註冊中心基於接口名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。
    D、Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置即可,Dubbo基於Spring的Schema擴展進行加載。
    這裏寫圖片描述

二、遠程服務(Spring配置)

  • 將服務定義部分放在服務提供地方remote-provide.xml,將服務引用部分放在消費放remote-consumer.xml。
  • 並在提供方增加暴露服務配置,在消費放增加引用服務配置
  • 如下:
########  remote-provider.xml  #########
<bean id = "xxxService" class = "com.xxx.XxxServiceImpl"/>  #和本地服務一樣實現遠程服務
<dubbo:service interface = "com.xxx.XxxService" ref = "xxxService"/>#增加暴露遠程服務配置

########   remote-consumer.xml #########
<dubbo:reference id = "xxxService" interface = "com.xxx.XxxService"/> # 增加引用遠程服務配置
<bean id = "xxxAction" class = "com.xxx.XxxAction">#和本地服務一樣使用遠程服務
    <property name = "xxxService" ref = "xxxService"/>
</bean> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章