首頁>Club>
6
回覆列表
  • 1 # 分秒必爭孔雀V0

    一、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。

  • 中秋節和大豐收的關聯?
  • 教育部如此重視“雙減”,為什麼?