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注册中心不可用时则应用会从这个缓存文件读取服务提供者列表的信息,进一步保证应用可靠性。

时间: 2024-11-08 02:07:55

dubbo 配置文件详解的相关文章

Dubbo配置文件详解

为新项目练手,把项目中用到的web service.RMI的服务改用Dubbo+Zookeeper+Spring,网上找到几篇不错的配置详解 1.此篇博文主要从以下几种配置方式来讲 XML 配置文件方式.XML 配置文件方式.annotation 配置方式 https://www.cnblogs.com/chanshuyi/p/5144288.html 2.此篇博文主要从以下几点来讲 服务发现:表示该配置项用于服务的注册与发现,目的是让消费方找到提供方. 服务治理:表示该配置项用于治理服务间的关

监控服务 - Nagios配置文件详解

一.Nagios的配置文件类型: Nagios安装后有四种默认的配置文件:主配置文件.CGI配置文件.资源定义文件.对象定义文件.这些配置文件间具有一些关系,只有充分理解各配置文件,才能使得配置Nagios服务如行云流水. 二.Nagios配置文件详解: 1.主配置文件(nagios.cfg): Nagios的主配置文件是用来定义Nagios服务的基本参数信息的,其中包括:对象定义文件的声明.CGI配置文件的声明.资源定义文件的声明等.其常用参数如下: log_file=/usr/local/n

Hadoop1.2.1 配置文件详解

首先我们先回顾一下Hadoop的一些概念: Apache Hdoop 1.x 组成 NameNode(元数据服务器) Secondary NameNode(辅助元数据服务器) JobTracker(任务调度员) DataNodes(块存储) TaskTrackers(任务执行) HDFS文件系统 NameNoode:属于管理层,用于管理数据存储 SecondaryNameNode:也属于管理层,辅助NameNode进行管理 DataNode:属于应用层,用户进行数据的存储,被NameNode进行

ThinkPHP源码阅读2-----C函数配置文件详解

ThinkPHP的配置非常灵活,可自定义加载.大概看了一下,一共有这几个地方会加载配置文件,方便以后的读取 /** * 获取和设置配置参数 支持批量定义 * * @param string|array $name * 配置变量 * @param mixed $value * 配置值 * @return mixed */ function C($name = null, $value = null) { static $_config = array (); // 无参数时获取所有 if (emp

Zabbix配置文件详解之服务端——zabbix_server

作为zabbix的部署,这里就不说了,网上一大堆文档,但关于配置文件的说明就比较少,这里列出服务端的配置文件zabbix_server的详细解释,感谢我主管的功劳. Zabbix Server端配置文件说明 # This is a configuration file for Zabbix Server process # To get more information about Zabbix, # visit http://www.zabbix.com ############ GENERA

Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解

原创整理不易,转载请注明出处:Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解 代码下载地址:http://www.zuidaima.com/share/1772661373422592.htm 本文介绍了使用Spring注解注入属性的方法.使用注解以前,注入属性通过类以及配置文件来实现.现在,注入属性可以通过引入@Autowired注解,或者@Resource,@Qualifi

[转]Web.config配置文件详解(新手必看)

本文转自:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以

Nagios服务器端配置文件详解(2)

上一步骤: http://blog.csdn.net/mchdba/article/details/25654889 6 配置nagios Nagios 主要用于监控一台或者多台本地主机及远程的各种信息,包括本机资源及对外的服务等.默认的Nagios 配置没有任何监控内容,仅是一些模板文件.若要让Nagios 提供服务,就必须修改配置文件,增加要监控的主机和服务,下面将详细介绍. 6.1 默认配置文件介绍 Nagios 安装完毕后,默认的配置文件在/usr/local/nagios/etc目录下

Hibernate3 Api,配置文件详解

1 api详解[多练] 1.1 体系结构 PO:persistent object ,用于与数据库交互数据.--dao层  (JavaBean + hbm ) BO:Business object 业务数据对象.--service层 VO:Value Object 值对象.--web层 开发中:直接使用JavaBean 描述三个对象. 1.2 Configuration 配置对象 l hibernate 核心配置文件种类 hibernate.cfg.xml 通常使用xml配置文件,可以配置内容更