官方地址:http://dubbo.apache.org/zh-cn/
- 節點角色說明
1、Container:服務運行容器,只啟動一次
2、Provider:服務提供者
3、Registry:服務注冊與發現的注冊中心
4、Consumer:服務消費者
5、Monitor:統計服務的調用次數和調用時間的監控中心
-
調用關系說明
- 服務容器負責啟動,加載,運行服務提供者。
- 服務提供者在啟動時,向注冊中心注冊自己提供的服務。
- 服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
- 注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基於長連接推送變更數據給消費者。
- 服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一台提供者進行調用,如果調用失敗,再選另一台調用。
- 服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鍾發送一次統計數據到監控中心。
- 系統框架搭建
- 依賴
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>2.7.0</version> </dependency>
- 服務提供方
<!-- 提供方應用信息,用於計算依賴關系 --> <dubbo:application name="dubbo-provider" /> <!-- 使用zookeeper注冊中心暴露服務地址 --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" /> <!-- 用dubbo協議在20880端口暴露服務 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 用戶服務接口 --> <dubbo:service interface="com.xcj.interfaceProvider.service.UserService" ref="userService" /> <bean id="userService" class="com.xcj.interfaceProvider.service.UserServiceImpl" />
- 服務消費方
<!-- 消費方應用名,用於計算依賴關系,不是匹配條件,不要與提供方一樣 --> <dubbo:application name="dubbo-consumer" /> <!-- 使用zookeeper注冊中心暴露服務地址 --> <!-- 注冊中心地址 --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" /> <!-- 用戶服務接口 --> <dubbo:reference interface="com.xcj.interfaceProvider.service.UserService" id="userService" check="false" />