依赖的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/  
版权声明:本文为博主原创文章。转载请附上博客链接!								
					版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除