dubbo是乙個微服務框架,dubbo也是有乙個服務註冊中心(zookeeper),服務提供者以及服務消費者。服務提供者需要乙個暴露介面的工程,用來服務消費的呼叫。服務提供者的介面實現類繼承暴露介面工程的介面。
dubbo呼叫流程
1.服務容器負責啟動,載入,執行服務提供者
2.服務提供者在啟動時,向註冊中心註冊自己提供的服務
3.服務消費者在啟動時,向註冊中心訂閱自己所需的服務
4.註冊中返回服務提供者位址列表給消費者,如果有變更,註冊中心將基於長連線推送變更資料給消費者
5.服務消費者,從提供者位址列表中,基於軟負載均衡演算法,選一台提供者進行呼叫,如果呼叫失敗,再選另一台呼叫
6.服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計到監測中心
注:建議使用zookeeper來當註冊中心比較好(2.3.3的dubbo以上),dubbo未對zookeeper服務端做任何侵入修改,只需按照原生的zookeeper即可
所有註冊中心邏輯適配都在呼叫zookeeper客戶端時完成
接下來就簡單的講述下乙個dubbo的使用案例
一、工程專案說明
dubbo-facade-user專案工程是乙個服務介面暴露專案工程,服務提供者的服務類繼承此專案的對應介面,同時服務消費者會依賴此工程進行服務的呼叫。
即:服務提供者中的提供服務類pmsuse***cadeimpl 繼承 服務暴露介面專案的pmsuse***cade介面
dubbo-service-user 服務提供者
dubbo-web-boss 服務消費者
二、服務提供者的使用
1、pom.xml依賴
org.springframework
spring-core
org.springframework
spring-oxm
org.springframework
spring-tx
org.springframework
spring-jdbc
org.springframework
spring-aop
org.springframework
spring-context-support
org.springframework
spring-test
org.jboss.netty
netty
com.alibaba
dubbo
org.springframework
spring
org.apache.zookeeper
zookeeper
com.101tec
zkclient
這邊只有dubbo和spring的依賴,其他的想資料庫、json處理的依賴就不在這具體說明了,本篇只是說明dubbo的使用,不講述具體的業務**
2、業務介面實現類的pmsuse***cadeimpl
@service("pmsuse***cade")
public class pmsuse***cadeimpl implements pmsuse***cade
}
3、繼承的介面類pmsuse***cade
public inte***ce pmsuse***cade
4、spring的配置檔案
5、啟動類
import org.apache.commons.logging.log;
import org.apache.commons.logging.logfactory;
/** *
* @描述: 啟動dubbo服務用的mainclass.
* @版本: 1.0 .
*/@suppresswarnings("resource")
public class dubboprovider catch (exception e)
synchronized (dubboprovider.class) catch (interruptedexception e)
}} }
}
三、服務的消費者
1、pom.xml依賴
在服務消費者的pom.xml依賴的基礎上依賴介面暴露的jar包dubbo-facade-user
2、spring配置檔案
3、服務消費者的呼叫
@controller
public class pmsuseraction extends baseaction
}
服務提供者和服務消費者啟動後可以在dubbo的管理平台上可以看到 dubbo使用總結
rest 客戶端呼叫亂碼 將服務端的 produces 中加入charset utf 8 dubbo暴露的rest服務時,如果使用客戶端引用介面jar方式呼叫,必須在介面上面新增rest annotation,否則會報錯 urls to invokers error invokerurls.size...
Dubbo 如何使用Dubbo
如上圖所示,dubbo的設計結構如上所示。包含服務消費者 consumer 服務提供者 provider 註冊中心 registry 監控中心 monitor 紫色箭頭代表初始化時的動作 藍色虛線箭頭代表非同步動作 藍色實線箭頭代表同步動作 1 配置乙個zookeeper為註冊中心,也可以使用red...
dubbo總結 2 dubbo的使用場景
關於dubbo的使用場景,這個要從系統的演變開始將起,既然dubbo的使用很多是在電商系統中,那麼就從電商系統的演變開始講起。乙個簡單的電商 說起,它可能包含如下的幾個模組和功能,如首頁 detail頁 list頁 下單頁 支付頁以及後台管理等頁面和功能。單一的系統架構,使得在開發過程中,占用的資源...