擅长Dubbo——Dubbo配置文件介绍转载

原创
小哥 3年前 (2022-11-11) 阅读数 5 #大杂烩

依赖的jar
理论上Dubbo只能依靠JDK,不依赖任何第三方库运行,只需配置使用即可。JDK相关实施策略。

默认依赖项(系统默认)
通过mvn dependency:tree > dep.log命令(Eclipse或Linux命令行)分析,Dubbo默认值依赖于以下三向库:

[INFO] +- com.alibaba:dubbo:jar:2.1.2:compile
[INFO] |  +- log4j:log4j:jar:1.2.16:compile
[INFO] |  +- org.javassist:javassist:jar:3.15.0-GA:compile
[INFO] |  +- org.springframework:spring:jar:2.5.6.SEC03:compile
[INFO] |  +- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] |  - org.jboss.netty:netty:jar:3.2.5.Final:compile

此处的所有依赖项都是已更改的照片。Dubbo选择默认配置,这些默认值基于稳定性和性能考虑。
log4j.jar和commons-logging.jar日志输出包:
可以直接移除,dubbo日志本身将自动切换JDK的java.util.logging输出但是,如果其他三方库如下spring.jar间接依赖commons-logging,无法删除。
javassist.jar 字节码生成:
如果或、和,则不需要。
spring.jar 配置分辨率:
如果用ServiceConfig和ReferenceConfig的API呼叫,不需要。
netty.jar 网络传输:
如果或,更换mina.jar或grizzly.jar。如果不需要。

Dubbo配置说明
xml配置
所有配置项分为三大类,如下所示:
服务发现:表示配置项用于注册和发现服务,目的是允许使用者找到提供者。
服务治理:表示配置项用于治理服务之间的关系或促进开发测试。
性能调整:表示配置项用于调整性能,不同的选项可能会影响性能。
最终将转换所有配置URL它由服务提供者表示和生成,并由注册表传递给使用者,每个属性对应于URL的参数,URL格式如下:
protocol://username:password@host:port/path?key=value&key=value

服务提供商
服务发现类
1、interface
dubbo服务公开的接口的完整路径,例如:
2、ref
dubbo服务公开的接口的实现类是,例如:

1
2
3、version
服务版本号,服务提供商和服务消费者的version确保一致
4、group
服务分组,当一个接口有多个实现时,可以使用分组来区分配置类:com.alibaba.dubbo.config.ServiceConfig
服务管理类
1、stub
设为true,这意味着使用默认的代理类名,即接口名 + Local后缀,服务接口客户端本地代理类名,用于在客户端上执行本地逻辑,如本地缓存等,本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService)
2、mock
设为true,这意味着使用默认值Mock类名,即接口名 + Mock后缀,服务接口调用失败Mock实现类,Mock类必须具有非参数构造函数,。Local不同之处在于,Local始终执行,而Mock仅当发生非业务异常时(如超时、网络异常等。)时执行,Local在远程调用之前执行,Mock远程调用后执行。
3、token
令牌验证,空表示不启用,如果。true,这意味着动态令牌是随机生成的。否则,将使用静态标记。代币的功能是防止消费者绕过注册中心直接访问,并确保注册中心的授权功能有效。如果使用点对点调用,则需要关闭令牌函数。
4、registry
在指定的注册中心注册,用于多个注册中心,具有值的id属性,多个注册表ID如果您不想将服务注册到任何registry,可以设置该值N/A
5、provider
指定provider,值为的id属性
6、deprecate
服务已过期(如果已设置)true,消费者将在引用时打印服务过期警告。error日志
7、dynamic
是否动态注册服务(如果已设置)false注册后,将显示disable状态,需要手动启用,当服务提供商停止时,书本不会自动取消,需要手动禁用。
8、accesslog
设为true,将向logger您还可以填写访问日志文件路径,并将访问日志直接输出到指定的文件。
9、owner
服务经理,对于服务治理,请填写公司电子邮件前缀
10、protocol
使用指定的协议公开服务,用于多协议,具有值的id属性,多协议ID用逗号分隔,可以有dubbo/hessian/rmi/thrift/redis稍后将详细描述每个协议。
11、register
协议的服务是否在注册处注册。
服务调整类
1、delay
注册服务时间延迟(毫秒) ,设为-1表示延迟。Spring容器初始化完成时公开服务
2、timeout
远程呼叫服务超时,如果客户端服务器配置了客户端,则客户端未配置服务器,默认单位为毫秒。1000
3、retries
远程服务调用的重试次数(不包括第一次调用)不需要重试。请设置0,默认2
4、connections
对于每个提供商的最大连接数,rmi、http、hessian诸如短连接协议之类的短连接协议指示对连接数量的限制,dubboiso-long连接关联表示默认情况下建立的长连接数。100
5、loadbalance
负载平衡策略,random,roundrobin,leastactive,分别为:随机、循环、最少活动呼叫
6、async
默认的异步执行,不可靠的异步,只是忽略返回值,不会阻塞执行线程。
7、weigth
服务权重,与负载平衡策略结合使用
8、executes
服务提供者可以并行执行的每个方法的每个服务的最大请求数。
9、actives
每个服务使用者每个服务的每个方法的最大并发调用数
10、proxy
生成动态代理,可选:jdk/javassist
11、cluster
群集模式,可选:
【failover】
故障自动切换,当出现故障时,重试其他服务器(默认),通常用于读取操作,但重试会带来更长的延迟,可以通过。retries=“2“设置重试次数(不包括第一次)

1 或者 1 或者 1 2 3 【failfast】 快速故障,仅启动一个呼叫,故障后立即报告错误。通常用于非幂等写入操作,如添加新记录。 1 或者 1 或者 1 【failback】 故障自动恢复、后台记录故障请求、定时重传,通常用于消息通知操作 1 或者 1 【forking】 并行调用多个服务器,只要一个成功就返回。它通常用于实时读取操作,但需要浪费更多的服务器资源。可通过forks=“2“设置最大平行行数。 1 或者 1 12、filter 服务提供商远程调用过程拦截器名称,多个名称用逗号分隔,Spring拦截器可以拦截Web接口,无法拦截dubbo界面dubbo提供了Filter扩展 13、listener 服务提供商导出服务监听器名称,多个名称用逗号分隔 服务消费者 配置类:com.alibaba.dubbo.config.ReferenceConfig 服务发现类 1、id 服务引用Bean的id,例如 1 2 3 4 2、interface 例如,服务接口的完整路径与上面的相同。 3、version 版本号,与服务提供商一致 4、group 服务分组,当一个接口有多个实现,可以用分组区分,必需和服务提供商一致 5、registry 从指定的注册表中获取服务列表,该列表用于多个注册表,具有值的id属性,多个注册表ID用逗号分隔 服务管理类 1、generic 如果是泛化接口,是否返回默认泛化接口。GenericService 2、check 检查启动时提供程序是否存在,true报错,false忽略 3、url 点对点直接服务提供商地址将绕过注册表。 4、stub 服务接口客户端本地代理类名,用于在客户端上执行本地逻辑,如本地缓存等,本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService) 5、mock 服务接口调用失败Mock实现类名Mock类必须具有非参数构造函数,。Local不同之处在于,Local始终执行,而Mock仅当发生非业务异常时(如超时、网络异常等。)时执行,Local在远程调用之前执行,Mock远程调用后执行 6、cache 使用调用参数key,cache返回结果,可选:lru, threadlocal, jcache等 7、validation 是否启用JSR303标准注释验证(如果启用)将验证方法参数上的注释 8、layer layer服务调用方所在的层次结构。例如:biz、dao、intl:web、china:acton 9、protocol 只调用指定协议的服务提供商,其它协议忽略 服务调整类 1、timeout 如果客户端配置基于客户端,则服务调用超时。 2、retries 远程服务调用的重试次数(不包括第一次调用)不需要重试。请设置0 3、connections 对于每个提供商的最大连接数,rmi、http、hessian诸如短连接协议之类的短连接协议指示对连接数量的限制,dubboiso长连接关联表示建立的长连接数。 4、loadbalance 负载平衡策略,可选值:random,roundrobin,leastactive,分别为:随机、循环、最少活动呼叫 5、async 是否异步执行,不可靠的异步执行,只需忽略返回值而不阻塞执行线程。 6、proxy 选择动态代理实现策略(可选):javassist, jdk 7、client 客户端传输类型设置,例如Dubbo协议的netty或mina 8、actives 每个服务使用者每个服务的每个方法的最大并发调用数 9、cluster 群集模式,可选: 【failover】 故障自动切换,当出现故障时,重试其他服务器(默认),通常用于读取操作,但重试会带来更长的延迟,可以通过。retries=“2“设置重试次数(不包括第一次) 1 或者 1 或者 1 2 3 【failfast】 快速故障,仅启动一个呼叫,故障后立即报告错误。通常用于非幂等写入操作,如添加新记录。 1 或者 1 或者 【failback】 1 2 故障自动恢复、后台记录故障请求、定时重传,通常用于消息通知操作 1 或者 1 【forking】 并行调用多个服务器,只要一个成功就返回。它通常用于实时读取操作,但需要浪费更多的服务器资源。可通过forks=“2“设置最大平行行数。 1 或者 1 10、filter 服务消费者远程调用过程拦截器名称,多个名称用逗号分隔 11、listener 服务消费者引用服务监听器名称,多个名称用逗号分隔 12、init 是否在afterPropertiesSet()饥饿时初始化引用,否则,请等到有人注入或引用实例后再初始化。 服务提供商 配置类:com.alibaba.dubbo.config.ProtocolConfig 注意:如果需要支持多个协议,可以声明多个标签,和中通过protocol该属性指定使用的协议。 服务发现类 1、id 协议BeanId,可以在中引用此ID,如果ID未填写,默认和name属性值相同,在中重复。name后加序号 2、port dubbo协议默认端口为20880,rmi协议默认端口为1099,http和hessian协议默认端口为80 如果已配置-1 或者 没有配置port,分配未占用的端口。Dubbo 2.4.0+,分配的端口在协议默认端口的基础上增长,以确保端口段是可控的; 3、host 默认查找本机IP、服务主机名、多网卡选择或指定。VIP和域名,如果它是空的,它会自动找到这台机器。IP,-建议不要配置,让Dubbo自动获取这台机器。IP 4、path 服务的提供程序上下文路径path的前缀 服务管理类 1、accesslog 设为true,将向logger您还可以填写访问日志文件路径,并将访问日志直接输出到指定的文件。 2、telnet 所支持的telnet命令,用逗号分隔的多个命令 3、register 协议的服务是否在注册处注册。服务调整类 1、name 协议名称,支持通用传输协议:RMI、Dubbo、Hessain、WebService、Http等 2、threadpool 默认fixed,线程池类型,可选:fixed/cached 3、threads 服务线程池大小(固定大小) 4、iothreads io线程池大小(固定大小) 5、accepts 服务提供商最大可接受连接数 6、payload 请求和响应数据包大小限制,默认为字节。88388608(=8M) 7、codec 协议编码方法 8、serialization dubbo协议违约hessian2,rmi协议违约java,http协议违约json; 当协议支持多种序列化方法时,使用协议序列化,例如:dubbo协议的dubbo,hessian2,java,compactedjava,以及http协议的json等 9、transporter 协议的服务器和客户端实现类型,例如:dubbo协议的mina,netty等等,可以拆分server和client配置 10、server 协议的服务器端实现类型,例如:dubbo协议的mina,netty等,http协议的jetty,servlet等 11、client 协议的客户端实现类型,例如:dubbo协议的mina,netty等 1**2、dispather** 协议的消息分发方法用于指定线程模型,例如:dubbo协议的all, direct, message, execution, connection等 13、queues 线程池队列大小,当线程池已满时,队列等待执行队列大小,建议不要设置线程池应立即失败时,重试其他服务以提供机器,而不是排队,除非有特殊需要。 14、charset 串行化编码 15、buffer 网络缓冲区大小 16、heartbeat 对于长连接,当物理层断开连接时,如拔下网络电缆,心跳间隔,TCP的FIN消息发送太晚,另一方无法接收断开连接事件。此时,需要心跳来帮助检查连接是否已断开。 注册表配置 配置类:com.alibaba.dubbo.config.RegistryConfig 注意:如果有多个不同的注册中心,您可以声明多个标签,和的registry属性指定要使用的注册表。 服务发现类 1、id 注册表参考BeanId,可以在中引用此ID 1.0.16以上版本 2、address 注册表服务器地址,如果该地址没有端口,则默认为。9090,同一集群中的多个地址用逗号分隔,例如:ip:port,ip:port,不同集群的注册中心,请配置多个 3、protocol 请注意,支持相同的中心地址协议dubbo, http, local三项协议,分别表示,dubbo地址,http地址,本地注册表 4、port 注册表默认端口,当。address当没有端口时,使用此端口作为默认端口。 服务管理类 1、username 登录注册中心用户名,如果注册中心不需要验证,则无法填写 2、password 如果注册中心不需要验证,则无法填写登录注册中心的密码。 3、file 使用文件缓存注册表地址列表和服务提供商列表,重新启动时将基于此文件还原应用程序。注意:两个注册表不能使用相同的文件存储 4、check 如果注册中心不存在,是否报告错误 5、 register 是否在此注册表中注册服务(如果已设置)。false,将仅订阅,不注册 6、subscribe 是否从此注册表订阅服务(如果已设置)false,将只注册,不订阅 7、dynamic 是否动态注册服务(如果已设置)false注册后,将显示disable状态,需要手动启用,当服务提供商停止时,书本不会自动取消,需要手动禁用。 服务调整类 1、transport 网络传输模式,可选mina,netty 2、timeout 注册表请求超时(毫秒) 3、session 注册表会话超时(毫秒),用于检测提供商异常断开连接后的脏数据,如实现心跳检测,此时是心跳间隔,不同注册中心实现不同 4、wait 停止时等待通知完成时间(毫秒) 监控中心配置 服务管理类 1、protocol 监控中心协议,如果protocol=”registry“意味着从登记中心找到监控中心的地址,否则监控中心直接连接。 2、address 直接连接监控中心的服务器地址,address=”10.20.130.230:12080” 服务提供商默认配置 配置类:com.alibaba.dubbo.config.ProviderConfig 说明:标签为标签的默认值设置。具体配置可参考。配置 服务消耗默认配置 配置类:com.alibaba.dubbo.config.ConsumerConfig 说明:标签为标签的默认值设置。具体配置可参考。配置 方法级配置 配置类:com.alibaba.dubbo.config.MethodConfig 说明:标签为用于控制方法级别的子标签, 服务发现类 1、name 方法名 服务管理类 1.deprecated 无论服务方法是否过时,此属性仅在中。作为子标签有效 2、sticky 此接口上的所有方法都使用相同的provider.如果需要更复杂的规则,请使用路由。 3、cache 使用调用参数key,cache返回结果,可选:lru, threadlocal, jcache等 4、validation 是否启用JSR303如果启用标准注释验证,将在方法参数上注释 服务调整类 1、timeout 方法调用超时(毫秒) 2、retries 缺省为的retries,远程服务调用的重试次数(不包括第一次调用)不需要重试。请设置0 3、loadbalance 负载平衡策略,可选值:random,roundrobin,leastactive,分别为:随机、循环、最少活动呼叫 4、async 是否异步执行,不可靠的异步执行,只需忽略返回值而不阻塞执行线程。 5、sent 异步调用时,标记sent=true表示网络已发出数据。 6、actives 每个服务使用者的最大并发呼叫限制 7、executes 每个方法限制的每个服务的最大线程数- -,此属性仅在中。作为子标签有效 8、return 方法调用是否需要返回值,async设置为true仅在设置时生效true,则返回future,或回调onreturn依此类推,如果已设置。false,请求成功发送并直接返回。Null 9、oninvoke 执行截取前的方法 10、onreturn 方法在返回后执行拦截。 11、onthrow 方法执行异常侦听 例如 1 2 3 方法参数配置 配置类:com.alibaba.dubbo.config.ArgumentConfig 说明:标签为方法参数特征描述的子标签,如: 1 2 3 1、index 方法名 2、type 按参数类型查找参数。index 3、callback 参数是否为callback接口,如果callback,服务提供商将生成反向代理,可以从服务提供商反向调用消费方,通常用于事件推送 选项参数配置 配置类:java.util.Map 说明:标签为子标签,用于配置自定义参数,它将用作设置自定义参数的扩展点。 1、key 路由参数密钥 2、value 路由参数值 例如: --------------------- 作者:孙\_悟\_空 来源:CSDN 原文:https://blog.csdn.net/fuyuwei2015/article/details/72836075/ 版权声明:本文为博主原创文章。转载请附上博客链接!
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除