Dubbo配置 -- 服务发布与消费

github测试Demo项目地址:https://github.com/HopeAndStart/spring-dubbp.git

一:概述

本文为Dubbo学习第一步,使用XML配置文件发布与消费服务。文件配置参考Dubbo官网后经过自身Demo项目测试完成编写,当然不对亦或是不全地方欢迎大家补充或自行查看Dubbo官网。当然本文主要还是讲述使用评率较高的配置项

二:服务发布dubbbo:service

服务发布方配置,进行发布服务类型、分组、版本的限定。以及服务发布注册中心、服务发布协议类型、发布延时以及负载均衡、最大连接执行线程数量等关联调优配置。

2.1 服务发现

简单来讲即一个服务发布以后消费方调用需要完全匹配一致的属性,匹配完成才能远程调用消费。共三个属性分别为:interface、group、version
在这里插入图片描述

属性作用默认值描述
interface服务类型必填项,无默认值个人理解与Spring中依赖注入先匹配对象类型相似
group服务分组Dubbo采用分组实现多服务实例时的分别消费,要求提供方与消费方一致
version服务版本0.0.0通常使用情况为接口进行修改后不兼容,如入参修改等
2.2 配置关联

Dubbo的服务可以向多注册中心发布,同时也支持多种通信协议。在<dubbo:service>标签中对上述两者可以进行相应定义,注册中心的配置需要<dubbo:registry>,发布协议配置需要<dubbo:protocol>,这两块会有专门文章讲解。目前在这里就是讲怎么在<dubbo:service>中配置两者
在这里插入图片描述

属性作用默认值描述
registry服务发布注册中心默认向所有<dubbo:registry>发布服务Dubbo默认情况下向所有配置的注册中心发布服务,如果需要限定服务发布范围则可以在属性registry中填入对应注册中心<dubbo:registry>的id属性,中间","隔开
protocol服务发布协议默认发布所有<dubbo:protocol>配置协议类型Dubbo默认情况下发布所有<dubbo:protocol>标签配置协议,需要限定某服务发布通信协议类型可以在属性protocol中填入对应通信协议<dubbo:protocol>的id属性,中间用","隔开
provider属性补全默认使用第一个<dubbo:provider>配置很多服务发布,这时许多服务具备公共属性不想逐一填写,则可以配置<dubbo:provider>。当<dubbo:service>中缺少属性配置时就会采用其中的属性配置,当有多个<dubbo:provider>时默认采用第一个,若想指定则在provider属性中写入对应<dubbo:provider>标签id属性即可
2.3 服务治理

服务经过服务发现与注册中心、协议类型等关联配置已经可以正常发布、消费。但是在这基础上如果需要对服务进行其它管理,Dubbo中也提供了许多配置属性
在这里插入图片描述

属性作用默认值描述
token令牌限定消费者只能在注册中心进行服务消费,空值表示不开启,true表示随机生成,固定值相当于密码
deprecated设置服务过时false当服务被设置为过时,消费者调用会打印error级别的日志
dynamic动态注册true设置为false时需要将服务手动启用才能使用
register是否注册到注册中心true设置false以后的协议服务不会发布到注册中心
2.3 性能调优

发布服务被调用肯定涉及到性能问题,Dubbo在针对服务发布的层面设计了一些相关属性参数进行调节
在这里插入图片描述

属性作用默认值描述
delay延迟注册服务时间0毫秒级别的设置,-1表示Spring容器初始化完成时暴露服务
connnections连接数量100短连接协议表示限制的连接数量,长连接表示建立长连接个数
loadbalance负载均衡策略randomrandom随机、roundrobin轮训、leastactive最少活跃
weight服务权重
cluster集群方式failover集群方式,可选:failover/failfast/failsafe/failback/forking
filter拦截器default服务提供方远程调用过程拦截器名称,多个名称用逗号分隔
listener监听器default服务提供方导出服务监听器名称,多个名称用逗号分隔
三:服务消费dubbo:reference

服务消费者配置,设置服务发现三大属性interface、group、version。同时还能对Bean注入Id以及发现服务列表注册中心registry进行配置。当然也可以对可获取服务提供发布协议类型进行限定等操作

3.1 服务发现

在这里插入图片描述
服务发现相关属性与服务发布dubbo:service介绍一致,注意保持服务发布方相关属性配置与服务消费方相关属性配置一致性。不然无法提供远程服务

3.2 配置关联

在这里插入图片描述

属性作用默认值描述
id声明容器实例ID必填项当消费方消费服务提供方提供的多实现服务时,Spring容器就需要ID进行区别注入
registry声明注册中心默认所有配置注册中心默认将所有<dubbo:registry>的服务列表合并后寻找提供者,指定只需要使用registry属性配置<dubbo:registry>的id属性即可,多个中间用","隔开
consumer默认配置与provider一致
3.3 服务治理
属性作用默认值描述
generic是否缺省泛化接口缺省使用<dubbo:consumer>的generic如果为泛化接口,将返回GenericService
check启动检查服务提供是否存在缺省使用<dubbo:consumer>的check启动时检查提供者是否存在,true报错,false忽略
url绕开注册中心,服务直连点对点直连服务提供者地址,将绕过注册中心
validation参数注解校验是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验
protocol消费服务协议类型只调用指定协议的服务提供方,其它协议忽略
stub详情如下3.3.1描述
mock详情如下3.3.2描述
3.3.1 stub示例

在这里插入图片描述
在这里插入图片描述
远程服务调用前执行。参数可以为true/false打开关闭,亦或是直接写调用前执行类。当使用boolean变量时默认类名为接口名+Stub,寻找类包路径与接口一致。该类必须提供参数为接口类型的有参构造函数

3.3.2 mock示例

在这里插入图片描述
在这里插入图片描述
远程服务调用失败后执行。参数与stub一致,使用boolean时默认类名为接口名+Mock,寻找类包路径与接口一致

3.4 性能调优

服务消费的性能调优更多的是倾向于消费调用层面,对响应时间、尝试次数、延迟初始化等方面实现

属性作用默认值描述
timeout远程调用超时时长缺省使用<dubbo:consumer>的timeout服务方法调用超时时间(毫秒)
retries远程调用重试次数2不包括第一次调用
filter拦截器default服务消费方远程调用过程拦截器名称,多个名称用逗号分隔
listener监听器default服务消费方引用服务监听器名称,多个名称用逗号分隔
init是否延迟加载false是否在afterPropertiesSet()时饥饿初始化引用,否则等到有人注入或引用该实例时再初始化
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值