dubbo配置详解

一、dubbo配置之间的关系:


       左边是服务提供方的相关配置,右边是服务消费方的相关配置。中间是两方的共享配置。下边是方法和方法参数的相关配置。

       ReferenceConfig继承ConsumerConfig,ServiceConfig继承ProviderConfig。如果没有进行Reference和Service的配置,默认是Consumer和Provider的配置。

二、配置覆盖关系:

       1、方法级优先,接口级次之,全局配置再次之。(级别小的优先)

       2、如果级别一样,则消费方优先,提供方次之。

       其中,服务提供方配置,通过URL经由注册中心传递给消费方

三、标签:



四、举例

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。
相关文章

相关标签/搜索