Spring配置
http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
- 接口需单独打包,在服务提供方和消费方共享
- 对服务消费方隐藏实现
springboot配置
https://github.com/apache/incubator-dubbo-spring-boot-project
xml里面的配置可以全部在application.properties里面进行配置(也可使用xml)
Dubbo提供注解的配置方式
@Service——暴露服务(注解在Class上),需要与@Component注解一起使用
@Reference——消费服务(注解在Field上)
(与spring里面的@Service不同)
springboot与dubbo整合的三种方式
1、导入dubbo-starter,在application.properties配置属性,使用@Service暴露服务,使用@Reference消费服务,开启基于注解的dubbo功能 ——@EnableDubbo
2、导入dubbo-starter,使用xml配置,@ImportResource(location=“classpath:xxx.xml”)
3、使用注解API的方式,将每个组件手动创建,让dubbo扫描到容器中
http://dubbo.apache.org/zh-cn/docs/user/configuration/annotation.html
配置优先级
JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口。
XML 次之,如果在 XML 中有配置,则 dubbo.properties 中的相应配置项无效。
Properties 最后,相当于缺省值,只有 XML 没有配置时,dubbo.properties 的相应配置项才会生效,通常用于共享公共配置,比如应用名。
(default true)
<dubbo:consumer check="false" />
(default 1000)
可全局配置,可对某个接口单独配置(配置精确优先——接口优先)
以timeout为例
配置的覆盖规则:
方法级配置别优于接口级别,即小Scope优先
Consumer端配置 > Provider配置 > 全局配置
重试还能尝试调用其他提供相同服务的服务器
在幂等操作下设置重试次数(查询,删除,修改)——运行多次的效果和运行一次的效果一样
非幂等不适用(插入)
设为true,表示使用缺省代理类名,即:接口名 + Local后缀,服务接口客户端本地代理类名,用于在客户端执行本地逻辑,如本地缓存,参数验证等,该本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService)