Dubbo簡介

Dubbo:https://github.com/apache/incubator-dubbo

http://dubbo.apache.org/en-us/

分佈式服務治理框架,soa基礎框架

解決多項目間服務的互相調用

或者說是一個微服務架構

 

早期 MVC分層

 

dao(數據庫支持)

service(服務層)

controller(控制層)

 

dubbo

 

dao(數據庫支持)

service(服務層)————————>將兩者打成jar包,統一對外提供服務

==================

controller(控制層)————————>war(tomcat),調用服務

 

注意,爲了簡便後邊用jar表示服務提供方,用war表示服務消費方

 

對於jar包分佈式放置,保證HA。同時設置權重,做負載均衡。

 

(Dubbox:噹噹網版本https://github.com/remoting/dubbox

 

核心部分:

  • 遠程通訊: 提供多種基於長連接的NIO框架抽象封裝,包括多種程模型,序列化,以及請求-模式的信息交方式。
  • 集羣容:提供基於接口方法的透明調用,包括多協議支持,以及軟負載均衡,失,地址路由,動態配置等集羣支持。
  • 動發現:基於註冊中心目,使服方能動態找服提供方,使地址透明,使服提供方可以平滑增加或減少機器。

 

Dubbo的好處:

1.透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。

2.軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,降低成本,減少單點。

3. 服務自動註冊與發現,不再需要寫死服務提供方地址,註冊中心基於接口名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。

4. Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置即可,Dubbo基於SpringSchema擴展進行加載。

 

節點角色說明

節點

角色說明

Provider

暴露服務的服務提供方,前邊說的jar包

Consumer

調用遠程服務的服務消費方,前邊的war包

Registry

服務註冊與發現的註冊中心

Monitor

統計服務的調用次數和調用時間的監控中心

Container

服務運行容器

 

Jar並不直接對wai提供服務,先到Registry上註冊,war去Registry上邊找,通常用zookeeper做Registry,Monitor不常用,常用admin配置。

 

用法:

 

本地服務 Spring 配置

 

local.xml:

<bean id=“xxxService” class=“com.xxx.XxxServiceImpl” />

<bean id=“xxxAction” class=“com.xxx.XxxAction”>

    <property name=“xxxService” ref=“xxxService” />

</bean>

 

遠程服務 Spring 配置

 

在本地服務的基礎上,只需做簡單配置,即可完成遠程化:

將上面的 local.xml 配置拆分成兩份,將服務定義部分放在服務提供方 remote-provider.xml,將服務引用部分放在服務消費方 remote-consumer.xml。

並在提供方增加暴露服務配置 <dubbo:service>,在消費方增加引用服務配置 <dubbo:reference>。

 

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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章