参考文章:Dubbo官方文档 http://dubbo.apache.org/zh-cn/index.html
Dubbo 入门 demo:https://github.com/MiaoPlus/dubbodemo.git
1、dubbo:service
服务提供者暴露服务配置。对应的配置类:org.apache.dubbo.config.ServiceConfig
属性 | 类型 | 填写 | 缺省 | 描述 |
---|---|---|---|---|
interface | class | 必填 | 服务接口名 | |
ref | object | 必填 | 服务对象实现引用 | |
group | string | 可选 | 服务分组,当一个接口可以有多个实现,可以用分组区分 | |
delay | int | 可选 | 0 | 延迟注册服务时间(毫秒),设为 -1 时,表示延迟到 Spring 容器初始化完成时暴露服务 |
protocol | string | 可选 | 使用指定的协议暴露服务,在多协议时使用,值为<dubbo:protocol> 的id属性,多个协议ID用逗号分隔 | |
version | string | 可选 | 0.0.0 | 服务版本,建议使用两位数字版本,如1.0,通常在接口不兼容时版本号才需要升级 |
2、dubbo:reference
服务消费者引用服务配置。对应的配置类: org.apache.dubbo.config.ReferenceConfig
属性 | 类型 | 填写 | 缺省 | 描述 |
---|---|---|---|---|
id | string | 必填 | 服务引用BeanID | |
interface | class | 必填 | 服务接口名 | |
check | boolean | 可选 | 缺省使用<dubbo:comsumer>的check | 启动时检查提供者是否存在,true报错,false忽略 |
timeout | long | 可选 | 缺省使用<dubbo:comsumer>的timeout | 服务方法调用超时时间(毫秒) |
group | string | 可选 | 服务分组,当一个接口有多个实现,可以用分组区分,必须和服务提供方一致 | |
version | string | 可选 | 服务版本,与服务提供者的版本一致 | |
url | string | 可选 | 点对点直连服务提供者地址,将绕过注册中心 |
3、dubbo:protocol
服务提供者协议配置。对应的配置类: org.apache.dubbo.config.ProtocolConfig
。同时,如果需要支持多协议,可以声明多个 <dubbo:protocol>
标签,并在 <dubbo:service>
中通过 protocol
属性指定使用的协议。
属性 | 类型 | 填写 | 缺省 | 描述 |
---|---|---|---|---|
name | string | 必填 | dubbo | 协议名称 |
version | string | 可选 | 服务版本,与服务提供者版本一致 | |
4、dubbo:registry
注册中心配置。对应的配置类: org.apache.dubbo.config.RegistryConfig
。同时如果有多个不同的注册中心,可以声明多个 <dubbo:registry>
标签,并在 <dubbo:service>
或 <dubbo:reference>
的 registry
属性指定使用的注册中心。
属性 | 类型 | 填写 | 缺省 | 描述 |
---|---|---|---|---|
id | string | 可选 | 注册中心引用BeanId,可以在<dubbo:service registry=""> 或 <dubbo:reference registry="">中引用此ID | |
address | string | 必填 | 注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:ip:port,ip:port,不同集群的配置中心,请配置多个<dubbo:registry>标签 | |
group | string | 可选 | dubbo | 服务注册分组,跨组的服务不会相互影响,也无法相互调用,适用于环境隔离 |
check | boolean | 可选 | true | 注册中心不存在时,是否报错 |
timeout | int | 可选 | 5000 | 注册中心请求超时时间(毫秒) |
补充:集群技术特点
a.通过多台计算机完成同一个工作,达到更高的效率。
b.两机或多机内容、工作过程等完全一样。如果一台死机,另一台可以起作用。
Zookeeper单机配置:
<dubbo:registry address="zookeeper://10.20.153.10:2181" />
Or:
<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181" />
Zookeeper集群配置:
<dubbo:registry address="zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181,10.20.153.12:2181" />
Or:
<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181" />
同一Zookeeper,分成多组注册中心:
<dubbo:registry id="chinaRegistry" protocol="zookeeper" address="10.20.153.10:2181" group="china" />
<dubbo:registry id="intlRegistry" protocol="zookeeper" address="10.20.153.10:2181" group="intl" />
5、dubbo:application
应用信息配置。对应的配置类:org.apache.dubbo.config.ApplicationConfig
属性 | 类型 | 填写 | 缺省 | 描述 |
---|---|---|---|---|
name | string | 必填 | 当前应用名称,用于注册中心计算应用间依赖关系,注意:消费者和提供者应用名不要一样,此参数不是匹配条件,当前项目叫什么名字就填什么,和提供者消费者角色无关,比如,A应用调用了B应用的服务,则A项目配置成A,B项目配置成B,可能A也提供其他服务给别人使用,但A永远配置成A,这样注册中心将显示A依赖于B | |
owner | string | 可选 | 应用负责人,用于服务治理,请填写负责人公司邮箱前缀 |
6、dubbo:method
方法级配置。对应的配置类: org.apache.dubbo.config.MethodConfig
。同时该标签为 <dubbo:service>
或 <dubbo:reference>
的子标签,用于控制到方法级。
属性 | 类型 | 填写 | 缺省 | 描述 |
---|---|---|---|---|
name | string | 必填 | 方法名 | |
timeout | 可选 | 可选 | 方法调用超时时间 | |