一、dubbo配置之間的關係:
左邊是服務提供方的相關配置,右邊是服務消費方的相關配置。中間是兩方的共享配置。下邊是方法和方法引數的相關配置。
ReferenceConfig繼承ConsumerConfig,ServiceConfig繼承ProviderConfig。如果沒有進行Reference和Service的配置,預設是Consumer和Provider的配置。
二、配置覆蓋關係:
1、方法級優先,介面級次之,全域性配置再次之。(級別小的優先)
2、如果級別一樣,則消費方優先,提供方次之。
其中,服務提供方配置,透過URL經由註冊中心傳遞給消費方。
(配置的查詢順序,其他retries,loadbalance,actives等類似)
三、標籤:
四、舉例
1、專案中的配置
dubbo.xml的配置如下:
<!-- 應用資訊,用於計算依賴關係 -->
<dubbo:application name="basicInfoservice"/>
<!-- 使用zookeeper註冊中心暴露服務地址 -->
<dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" register="${dubbo.registry.register}"/>
<!--使用dubbo協議,basicInfoservice應用的埠為20881-->
<dubbo:protocol name="dubbo" port="20881"/>
<!--提供方的超時時間為3s-->
<dubbo:provider timeout="3000"/>
<!--消費方的超時時間為3s-->
<dubbo:consumer check="false" timeout="3000"/>
<!--需要引用的服務-->
<dubbo:reference id="dictionaryFacade" interface="com.dmsdbj.itoo.singleTableMaintain.facade.DictionaryFacade" />
<!--需要暴露的服務-->
<dubbo:service id="studentFacade" interface="com.dmsdbj.itoo.basicInfo.facade.StudentFacade" />
<!--studentFacade服務的超時時間為30s,addStudent方法的超時時間為60s-->
<dubbo:service id="studentFacade" interface="com.dmsdbj.itoo.basicInfo.facade.StudentFacade" timeout="30000"
loadbalance="roundrobin" >
<dubbo:method name="addStudent" timeout="60000"/>
</dubbo:service>
dubbo-server.properties配置如下:
dubbo.registry.address=zookeeper://192.168.22.156:2181?backup=192.168.22.154:2181,192.168.22.156:2182
dubbo.basicInfo.group=basicInfo
dubbo.basicInfo.version=1.0.0
dubbo.registry.register=false
上述例項,我們的全域性的超時時間為3s,負載均衡策略為隨機,student服務的超時時間為30s,負載均衡策略為輪詢。addStudent的超時時間為60s。
2、
<dubbo:annotation package="com.dmsdbj.itoo.basicInfo.facade"/>
這段配置的作用是開啟註解掃描。
開啟註解之後,就可以使用@Reference和@Service來訂閱服務或者暴露服務啦。需要注意的是@Service並不是Spring的註解,而是
dubbo的註解 import com.alibaba.dubbo.config.annotation.Service;
也可以說<dubbo:reference>標籤+@Autowired等價於<dubbo:annotation package="">+@Reference。
一、dubbo配置之間的關係:
左邊是服務提供方的相關配置,右邊是服務消費方的相關配置。中間是兩方的共享配置。下邊是方法和方法引數的相關配置。
ReferenceConfig繼承ConsumerConfig,ServiceConfig繼承ProviderConfig。如果沒有進行Reference和Service的配置,預設是Consumer和Provider的配置。
二、配置覆蓋關係:
1、方法級優先,介面級次之,全域性配置再次之。(級別小的優先)
2、如果級別一樣,則消費方優先,提供方次之。
其中,服務提供方配置,透過URL經由註冊中心傳遞給消費方。
(配置的查詢順序,其他retries,loadbalance,actives等類似)
三、標籤:
四、舉例
1、專案中的配置
dubbo.xml的配置如下:
<!-- 應用資訊,用於計算依賴關係 -->
<dubbo:application name="basicInfoservice"/>
<!-- 使用zookeeper註冊中心暴露服務地址 -->
<dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" register="${dubbo.registry.register}"/>
<!--使用dubbo協議,basicInfoservice應用的埠為20881-->
<dubbo:protocol name="dubbo" port="20881"/>
<!--提供方的超時時間為3s-->
<dubbo:provider timeout="3000"/>
<!--消費方的超時時間為3s-->
<dubbo:consumer check="false" timeout="3000"/>
<!--需要引用的服務-->
<dubbo:reference id="dictionaryFacade" interface="com.dmsdbj.itoo.singleTableMaintain.facade.DictionaryFacade" />
<!--需要暴露的服務-->
<dubbo:service id="studentFacade" interface="com.dmsdbj.itoo.basicInfo.facade.StudentFacade" />
<!--studentFacade服務的超時時間為30s,addStudent方法的超時時間為60s-->
<dubbo:service id="studentFacade" interface="com.dmsdbj.itoo.basicInfo.facade.StudentFacade" timeout="30000"
loadbalance="roundrobin" >
<dubbo:method name="addStudent" timeout="60000"/>
</dubbo:service>
dubbo-server.properties配置如下:
dubbo.registry.address=zookeeper://192.168.22.156:2181?backup=192.168.22.154:2181,192.168.22.156:2182
dubbo.basicInfo.group=basicInfo
dubbo.basicInfo.version=1.0.0
dubbo.registry.register=false
上述例項,我們的全域性的超時時間為3s,負載均衡策略為隨機,student服務的超時時間為30s,負載均衡策略為輪詢。addStudent的超時時間為60s。
2、
<dubbo:annotation package="com.dmsdbj.itoo.basicInfo.facade"/>
這段配置的作用是開啟註解掃描。
開啟註解之後,就可以使用@Reference和@Service來訂閱服務或者暴露服務啦。需要注意的是@Service並不是Spring的註解,而是
dubbo的註解 import com.alibaba.dubbo.config.annotation.Service;
也可以說<dubbo:reference>標籤+@Autowired等價於<dubbo:annotation package="">+@Reference。