关于dubbo的常用配置

利用springboot+dubbo,构建分布式微服务,全程注解开发 每天早上七点三十,准时推送干货随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。一、... 阅读详情

一、dubbo常用配置

复制代码
<dubbo:service/> 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。
eg、<dubbo:service ref="demoService" interface="com.unj.dubbotest.provider.DemoService" />

<dubbo:reference/> 引用服务配置,用于创建一个远程服务代理,一个引用可以指向多个注册中心。
eg、<dubbo:reference id="demoService" interface="com.unj.dubbotest.provider.DemoService" />

<dubbo:protocol/> 协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
eg、<dubbo:protocol name="dubbo" port="20880" />

<dubbo:application/> 应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
eg、<dubbo:application name="xixi_provider" />
    <dubbo:application name="hehe_consumer" />

<dubbo:module/> 模块配置,用于配置当前模块信息,可选。
<dubbo:registry/> 注册中心配置,用于配置连接注册中心相关信息。
eg、<dubbo:registry address="zookeeper://192.168.2.249:2181" />

<dubbo:monitor/> 监控中心配置,用于配置连接监控中心相关信息,可选。
<dubbo:provider/> 提供方的缺省值,当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值,可选。
<dubbo:consumer/> 消费方缺省配置,当ReferenceConfig某属性没有配置时,采用此缺省值,可选。
<dubbo:method/> 方法配置,用于ServiceConfig和ReferenceConfig指定方法级的配置信息。
<dubbo:argument/> 用于指定方法参数配置。
复制代码

二、服务调用超时设置

上图中以timeout为例,显示了配置的查找顺序,其它retries, loadbalance, actives也类似。
方法级优先,接口级次之,全局配置再次之。
如果级别一样,则消费方优先,提供方次之。

其中,服务提供方配置,通过URL经由注册中心传递给消费方。
建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置。
理论上ReferenceConfig的非服务标识配置,在ConsumerConfig,ServiceConfig, ProviderConfig均可以缺省配置。

三、启动时检查 
Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。

如果你的Spring容器是懒加载的,或者通过API编程延迟引用服务,请关闭check,否则服务临时不可用时,会抛出异常,拿到null引用,如果check=false,总是会返回引用,当服务恢复时,能自动连上。

可以通过check="false"关闭检查,比如,测试时,有些服务不关心,或者出现了循环依赖,必须有一方先启动。

复制代码
1、关闭某个服务的启动时检查:(没有提供者时报错)
<dubbo:reference interface="com.foo.BarService" check="false" />

2、关闭所有服务的启动时检查:(没有提供者时报错)  写在定义服务消费者一方
<dubbo:consumer check="false" />

3、关闭注册中心启动时检查:(注册订阅失败时报错)
<dubbo:registry check="false" />
复制代码

引用缺省是延迟初始化的,只有引用被注入到其它Bean,或被getBean()获取,才会初始化。
如果需要饥饿加载,即没有人引用也立即生成动态代理,可以配置:

<dubbo:reference interface="com.foo.BarService" init="true" />

四、订阅
1、问题
为方便开发测试,经常会在线下共用一个所有服务可用的注册中心,这时,如果一个正在开发中的服务提供者注册,可能会影响消费者不能正常运行。

2、解决方案
可以让服务提供者开发方,只订阅服务(开发的服务可能依赖其它服务),而不注册正在开发的服务,通过直连测试正在开发的服务。

禁用注册配置:
<dubbo:registry address="10.20.153.10:9090" register="false" />
或者:
<dubbo:registry address="10.20.153.10:9090?register=false" />

五、回声测试(测试服务是否可用)
回声测试用于检测服务是否可用,回声测试按照正常请求流程执行,能够测试整个调用是否通畅,可用于监控。
所有服务自动实现EchoService接口,只需将任意服务引用强制转型为EchoService,即可使用。

复制代码
eg、<dubbo:reference id="memberService" interface="com.xxx.MemberService" />

MemberService memberService = ctx.getBean("memberService"); // 远程服务引用
EchoService echoService = (EchoService) memberService; // 强制转型为EchoService
String status = echoService.$echo("OK"); // 回声测试可用性
assert(status.equals("OK"))
复制代码

六、延迟连接 
延迟连接,用于减少长连接数,当有调用发起时,再创建长连接。
只对使用长连接的dubbo协议生效。

<dubbo:protocol name="dubbo" lazy="true" />

七、令牌验证 
防止消费者绕过注册中心访问提供者,在注册中心控制权限,以决定要不要下发令牌给消费者,注册中心可灵活改变授权方式,而不需修改或升级提供者

复制代码
1、全局设置开启令牌验证:
<!--随机token令牌,使用UUID生成-->
<dubbo:provider interface="com.foo.BarService" token="true" />

<!--固定token令牌,相当于密码-->
<dubbo:provider interface="com.foo.BarService" token="123456" />

2、服务级别设置开启令牌验证:
<!--随机token令牌,使用UUID生成-->
<dubbo:service interface="com.foo.BarService" token="true" />

<!--固定token令牌,相当于密码-->
<dubbo:service interface="com.foo.BarService" token="123456" />

3、协议级别设置开启令牌验证:
<!--随机token令牌,使用UUID生成-->
<dubbo:protocol name="dubbo" token="true" />

<!--固定token令牌,相当于密码-->
<dubbo:protocol name="dubbo" token="123456" />
复制代码

八、日志适配 
缺省自动查找:log4j、slf4j、jcl、jdk

可以通过以下方式配置日志输出策略:dubbo:application logger="log4j"/>

访问日志:
如果你想记录每一次请求信息,可开启访问日志,类似于apache的访问日志。此日志量比较大,请注意磁盘容量。

将访问日志输出到当前应用的log4j日志:

<dubbo:protocol accesslog="true" />

将访问日志输出到指定文件:

<dubbo:protocol accesslog="http://10.20.160.198/wiki/display/dubbo/foo/bar.log" />

九、配置Dubbo缓存文件

配置方法如下:

<dubbo:registryfile=”${user.home}/output/dubbo.cache” />

注意:
文件的路径,应用可以根据需要调整,保证这个文件不会在发布过程中被清除。如果有多个应用进程注意不要使用同一个文件,避免内容被覆盖。

这个文件会缓存:
注册中心的列表
服务提供者列表

有了这项配置后,当应用重启过程中,Dubbo注册中心不可用时则应用会从这个缓存文件读取服务提供者列表的信息,进一步保证应用可靠性。

 

分类:  dubbo
dubbo详解 基础知识 分布式基础理论 什么是分布式系统? 《分布式系统原理与范型》定义: “分布式系统是若干独立计算机的集合。这些计算机对于用于来说就像单个相关系统” 分布式系统(distributed system)是建立在网络之上的软件系统。 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 发展演变 ... 阅读详情

相关推荐

Dubbo常用配置

Dubbo常用配置 使用Dubbo作为项目的RPC框架,可以根据项目实际需要,选择Dubbo提供的自定义配置,本文介绍了Dubbo常用的配置选项 启动时检查 默认情况下,消费者服务启动时,会检查注册中心是否有启用的提供者服务,如果没有,会造成检查不通过,启动失败 有时候在开发过程中,需要绕过启动检查,可以使用check属性,将值设置为false既可 @Service public class OrderServiceImpl implements OrderService { @DubboRef

blackball1998的博客 887

dubbo 配置文件详解

Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。1、config.properties配置文件(包含数据库的,zk的,redis的等等一些配置信息)。...

m0_67403272的博客 4502

maybe multi java process use the file, please config: dubbo.registry.file=xxx.properties

看到一篇解释比较好的文章: https://blog.youkuaiyun.com/lkforce/article/details/78544120

3271

研究之dubbo-registry模块

dubbo-registry注册中心模块,基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。     registry模块顶层接口为RegistryService和NotifyListener以及一个工厂接口RegistryFactory。     RegistryService接口包含4个方法。     void register(URL url); 注册服务     void

mark's technic world 1734

SVG文件上传漏洞实战:从XSS攻击到防御策略

本文深入剖析了SVG文件上传漏洞的成因与危害,揭示了攻击者如何利用SVG的XML本质构造恶意文件,绕过常规检查实现存储型XSS攻击。文章通过实战复现演示了完整的攻击链,并提供了从严格内容检查、安全解析过滤到设置CSP策略等多层次的纵深防御方案,帮助开发者从根本上加固文件上传功能。

weixin_29230805的博客 395

从量子兔AlphaPi硬件拆解到ESP32-C3库开发实战

本文详细拆解了量子兔AlphaPi开发板的硬件构成,重点分析了其核心ESP32-C3芯片及外围传感器。通过逆向工程揭示了GPIO引脚定义与通信协议,并实战演示了如何从零开发MicroPython库,驱动按键、加速度计及LED点阵,最终整合成一个互动平衡球游戏项目,展现了开源硬件在教育与二次开发中的潜力。

weixin_29164497的博客 458

dubbo的常用配置方式

dubbo常用配置及注意事项 1、启动时检查 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。 关闭所有服务的启动时检查:(没有提供者时报错) <dubbo:consumer check="false" /> 关闭某个服务的启动时检查:(没有提供者时报错) <dubbo:reference...

黑马程序员广州中心的专栏 336

《哥谭神话-工程篇》01.Palantir 平台架构解析-混乱数据如何转化唯一真相源?

Palantir 平台的架构哲学可以概括为将洞察落地为行动,其核心是将“获取唯一真相”能力深度嵌入现有的、复杂的工作流程中,成为提升运营效率和决策质量的倍增器。

897

dubbo 常用配置

1、多版本支持 多版本支持 veresion1.0 , version1.0.1可以做版本隔离, Server端配置 Client 端配置 zk注册中心的服务节点: 2、主机绑定 [dubbo://192.168.2.105:20880%2Fcom.gupao.edu.dubbo.IGpHello%3Fanyhost%3Dtrue%26applicatio...

laomumu1992的博客 304

ROS与UR10e机械臂实战:从零搭建到精准控制

本文详细介绍了如何从零开始搭建ROS与UR10e机械臂的开发环境,包括硬件准备、软件配置、网络设置以及MoveIt!运动控制实战。通过具体的代码示例和常见问题排查,帮助开发者快速掌握UR10e机械臂的精准控制技术,适用于工业自动化和实验室研究场景。

m3n5b7v8c9x的博客 772

国内主流AI编程工具使用实例及总结

AI编程辅助工具是利用人工智能技术来帮助程序员进行软件开发的工具。它们可以在代码编写、代码审查、错误检测、代码优化等多个编程环节发挥作用,提高编程效率和代码质量。通义灵码,基于通义大模型的AI研发辅助工具,提供代码智能生成、研发智能问答、任务自主执行等能力,为开发者带来智能化研发体验,引领AI原生研发新范式。包含智能编码助手和AI程序员。

技术博客 1万+

Dubbo 常用配置

Dubbo 的配置非常丰富,这里只记录了一些常用的配置用法。包括 属性加载覆盖策略、启动时检查、配置覆盖关系、多版本配置、本地存根

贵在坚持 715

麒麟操作系统安装达梦数据库ARM版

Linux安装达梦数据库ARM版

运维@小兵的博客 8769

5.Dubbo常用配置

Dubbo常用配置 一、启动时检查                1.启动时检查使用check=""属性进行配置,true表示检查(默认),false表示不检查。           2.启动时检查就是服务消费者在启动调用时,会先检查服务提供者有没有上线提供服务,如果没有,就会报错,能够在项目上线是及时的发现问题。            二、Dubbo的多协议           1....

qq_40672748的博客 286

第七篇:A133 Android 10 触摸提示音过大

描述: 开启触摸提示音功能之后,客户反馈触摸提示音过大,需要改小。 解决方案: 看代码注释,在framework下搜索方法即可。 /** @see AudioManager#playSoundEffect(int) */ public void playSoundEffect(int effectType) { playSoundEffectVolume(effectType, -1.0f); } /** @see AudioManager#playSoundEff

qq_33088619的博客 1696

置顶必读(1) |《YOLOv8实战:从入门到深度优化》专栏导读,带你一文了解本专栏!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 14万+

dubbo常用配置项记录

在这一篇中,对一些个人开发时常用的配置参数进行记录。不保证准确,详情请见官方文档 1、启动时检查 简单的讲,就是如果A服务依赖了B服务,那么A在启动时会检查B服务能否提供服务,即A服务在启动时能否从注册中心拿到B服务的引用,如果拿不到,则会阻止A服务的启动,默认是开启的。在服务上线的时候,最好开启,能提早发现问题,比如A服务启动时需要通过B服务加载一些数据等,如果B服务没有启动,则A服务没办法加载到数据,即便启动后也是有问题的。 springboot中关闭其配置一般使用配置文件的方式: applicati

Remember_Z的博客 247

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

dubbo常用配置

1、启动时检查 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。 关闭所有服务的启动时检查:(没有提供者时报错) <dubbo:consumer check="false" /> 关闭某个服务的启动时检查:(没有提供者时报错) <dubbo:reference interface="c...

liao0801_123的博客 216

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

dubbo常用配置总结

1)连接控制 服务器端连接数(并发)控制的配置方式: dubbo:provider protocol="dubbo" accepts="10" />//服务提供者方的配置。 或者:dubbo:protocol name="dubbo" accepts="10" /> //最多在同一时刻接受10个连接 客户端连接数控制的配置方式: dubbo:reference interfa

Seeker-Wu的专栏 5559

Dubbo在开发中的一些常用配置

介绍Dubbo在开发中的一些常用配置,文中内容主要参考dubbo文档配置和示例两节,详细可移步访问 传送站 1. 属性配置方法及加载顺序 属性常用配置方法主要有三种: 第一种是通过启动时在虚拟机参数中加上相关信息 第二种也是最常用的是通过xml方式配置,随着springboot和dubbo的集成,这种方式在springboot项目中表现为通过application.propert...

weixin_30360497的博客 74

dubbo中常用配置说明

上次搭建了简单dubbo项目。今天就来说说dubbo中常用的配置含义。 启东时检查(check=“true"),在dubbo服务起来的时候,回检查该服务是否有对应的提供者,一般配置在consumer方。 默认为true。 <dubbo:reference id="helloDubboProvider1" check="false" interface="com.chenyi.dubboch...

chenyi_wu的博客 365

Dubbo常用配置详解

1、启动时检查 Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true"。 可以通过 check="false" 关闭检查,比如,测试时,有些服务不关心,或者出现了循环依赖,必须有一方先启动。 另外,如果你的 Spring 容器是懒加载的,或者通过 API 编程延迟引用服务,请关闭 check,...

.... 永远年轻,永远热泪盈眶 1万+

5.dubbo常用配置

五.dubbo常用配置 1.配置项所在位置 在dubbo中,每一个服务都有三个位置进行配置 方法处 接口处 全局的 在dubbo中涉及提供者与消费者 如果两个工程均对这三个位置进行配置 因此,共有六种配置位置 当一个配置存在多种情况的,根据优先级策略选择生效的配置 其优先级从大到小如下 消费者引用方法处 提供者暴露方法处 消费者引用接口处 提供者暴露接口处 消费者全局配置 提供者全局配置 <!-- 消费者引用接口处 --> <dubbo:reference id="user

西瓜咬人啦 196
上一篇: List,set,map的数据结构
下一篇: 注解@AutoWired和@Resource的区别
LazyTojava
博客等级 码龄10年 1粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值