示例代码:github
xml与java class对应关系
provider中用到的:
<dubbo:service/> -- ServiceConfig
服务配置,用于暴露一个服务,定义一个服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心
<dubbo:protocol/> -- ProtocalConfig
协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受
<dubbo:provider/> -- ProviderConfig
当ProtocolConfig和ServiceConfig某属性没有设置时,采用此配置的缺省值
consumer中用到的:
<dubbo:reference/> -- ReferenceConfig
引用配置,用于创建一个远程服务代理,一个引用可以指向多个注册中心
<dubbo:consumer/> -- ConsumerConfig
当ReferenceConfig某属性值没有配置时,采用此配置的缺省值
共同用到的:
<dubbo:application/> -- ApplicationConfig
用于配置当前应用信息,不管该应用是提供者还是消费者
<dubbo:registry/> -- RegistryConfig
用于配置注册中心的相关信息
<dubbo:monitor/> -- MonitorConfig
用于配置监控中心相关信息
<dubbo:method/> -- MethodConfig
用于ServiceConfig和ReferenceConfig指定方法级的配置信息
<dubbo:argument/> -- ArgumentConfig
用于方法参数配置
<dubbo:annotation/> -- AnnotationBean(已废弃)
用于配置注解的包扫描
说明
- annotation的配置方法,配置了自动扫描dubbo服务类,需要使用com.alibaba.dubbo.config.annotation.Service的@Service注解和com.alibaba.dubbo.config.annotation.Reference的@Reference注解
- 个人倾向使用dubbo.xml+@Configuration+@ImportResource的方法配置
- 配置starter依赖或者配置com.alibaba.dubbo和com.101tec.zkclient依赖
- 其他
配置优先级:方法级>接口级>全局配置; 级别相同时,提供方>消费方
注册中心策略(Dubbo:registry): Zookeeper Redis
远程调用协议(Dubbo:protocol):Dubbo(复用单一长链接,推荐)
建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置。
理论上 ReferenceConfig 的非服务标识配置,在 ConsumerConfig,ServiceConfig, ProviderConfig 均可以缺省配置。