dubbo配置文件解析
2015-11-12 15:23
260 查看
(1)<dubbo:service/>
用于服务提供方暴露服务位置
例子:
服务实现的接口名称
2.ref
指向真正的服务实现类,已经在spring中定义了
3.version
服务的版本
4.delay
表示延迟注册时间,也就是什么时候暴露服务,-1表示spring容器初始化完成时暴露服务(所以通常为-1)
5.timeout
远程服务调用超时时间(毫秒),默认为1000
6.connections
对每个提供者的最大连接数,rmi\http\hessian等短连接协议表示限制连接数,dubbo等长连接协议表示建立的长连接个数
7.loadbalance
负载均衡策略,也就是说同一个服务有多个提供者时,客户端如何选择提供者
1)random
随机分配,并且可以给提供者设置权重
2)roundrobin
轮询,也就是一个个轮流来调用.但是存在慢的提供者累积请求问题,比如:第二台机器很慢,但是没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上
3)leastactive
最少活跃调用,也就是越慢的提供者获得更少请求
4)consistenthash
一致性hash,也就是如果参数相同就会发送到同一台机器上
如果某一台挂掉了,原本发往该提供者的请求会平摊到其他提供者,不会引起剧烈变动
缺省只对第一个参数hash,如果要修改,可以配置
8.retries
服务调用重试次数,不包括第一次,所以不需要重试设置为0,默认为2
9.cluster
集群方式
1)failover
调用失败会重试其他服务器,所以通常用于读操作,但重试会带来更长延迟
2)failfast
快速失败,只发起一次调用,如果失败就立即报错,通常用在新增\更新操作
3)failback
失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作
4)failsafe
也就是出现异常也没事,比如写入审计日志等操作
5)broadcast
广播所有服务提供者,挨个调用,只要有一台报错就报错,通常用来通知所有提供者更新缓存或日志等本地资源信息
5)forking
并行调用多个服务器,只要一个成功就返回,通常用于实时性要求较高的读操作,但会浪费更多服务资源
10.executes
服务提供者每个方法最大可并行执行请求数
(2)<dubbo:reference/>
用于消费者饮用服务的配置
例子:
服务饮用beanId
2.interface
服务接口名
3.version
服务版本,需要与服务提供者的版本一致
4.protocol
只调用指定协议的服务提供方
5.url
点对点直连服务提供者地址,将绕过注册中心
(3)<dubbo:protocol/>
服务提供者的协议配置.
如果需要支持多种协议,可以声明多个<dubbo:rpotocol>标签,并在<dubbo:service>中protocol属性指定使用的协议
1.id
协议的beanId,可以在<dubbo:service protocol="">中引用此ID,如果ID不填,缺省和name属性值一样,重复则在name后加序号
2.name
协议名称
3.port
服务端口,dubbo协议默认为20800,http、hessian默认为80,rmi默认为1099.
如果配置为-1或没配,则会自动分配一个没被占用的端口
4.server
协议的服务器实现类型,dubbo协议有mina、netty,默认为netty,http有jetty、servlet,默认为servlet
5.accesslog
设置为true则会向logger中输出访问日志;也可以填写日志文件路径,直接把访问日志输出到指定文件
6.threadpool
线程池类型,可选fixed/cached
7.threads
服务线程池大小
8.dispatcher
协议的消息派发方式,用于指定线程模型,如dubbo协议的all,direct等
(4)<dubbo:registry/>
注册中心配置
如果有多个不同的注册中心,可以声明多个<dubbo:registry>标签,并在<dubbo:service>或<dubbo:reference>的registry属性指定使用的注册中心。
1.address
注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如ip:port,ip:port,不同集群的注册中心则配置多个<dubbo:registry>
(5)<dubbo:provider/>
服务提供者缺省值配置。
为<dubbo:service>和<dubbo:protocol>标签的缺省值设置
也就是说provider中有些设置是各个service公用的,又与默认值不一样,就可以使用这个标签
那么标签中属性也就和<dubbo:service>和<dubbo:protocol>完全一样
如:
用于服务提供方暴露服务位置
例子:
<!--1.更新服务-快速失败,只发起一次调用,失败立即报错。 --> <bean id="bzCommitService" class="provider.BzCommitServiceImpl" /> <dubbo:service interface="domain.IBzCommitService" ref="bzCommitService" cluster="failfast" loadbalance="leastactive" version="1.0.0" delay="-1" connections="1000" timeout="180000"> </dubbo:service>1.interface
服务实现的接口名称
2.ref
指向真正的服务实现类,已经在spring中定义了
3.version
服务的版本
4.delay
表示延迟注册时间,也就是什么时候暴露服务,-1表示spring容器初始化完成时暴露服务(所以通常为-1)
5.timeout
远程服务调用超时时间(毫秒),默认为1000
6.connections
对每个提供者的最大连接数,rmi\http\hessian等短连接协议表示限制连接数,dubbo等长连接协议表示建立的长连接个数
7.loadbalance
负载均衡策略,也就是说同一个服务有多个提供者时,客户端如何选择提供者
1)random
随机分配,并且可以给提供者设置权重
2)roundrobin
轮询,也就是一个个轮流来调用.但是存在慢的提供者累积请求问题,比如:第二台机器很慢,但是没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上
3)leastactive
最少活跃调用,也就是越慢的提供者获得更少请求
4)consistenthash
一致性hash,也就是如果参数相同就会发送到同一台机器上
如果某一台挂掉了,原本发往该提供者的请求会平摊到其他提供者,不会引起剧烈变动
缺省只对第一个参数hash,如果要修改,可以配置
<dubbo:parameter key="hash.arguments" value="0,1" />
8.retries
服务调用重试次数,不包括第一次,所以不需要重试设置为0,默认为2
9.cluster
集群方式
1)failover
调用失败会重试其他服务器,所以通常用于读操作,但重试会带来更长延迟
2)failfast
快速失败,只发起一次调用,如果失败就立即报错,通常用在新增\更新操作
3)failback
失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作
4)failsafe
也就是出现异常也没事,比如写入审计日志等操作
5)broadcast
广播所有服务提供者,挨个调用,只要有一台报错就报错,通常用来通知所有提供者更新缓存或日志等本地资源信息
5)forking
并行调用多个服务器,只要一个成功就返回,通常用于实时性要求较高的读操作,但会浪费更多服务资源
10.executes
服务提供者每个方法最大可并行执行请求数
(2)<dubbo:reference/>
用于消费者饮用服务的配置
例子:
<dubbo:reference id="bzCommitService" interface="cloudserver.domain.IBzCommitService" protocol="hessian" url="dubbo://localhost:20880" version="1.0.0" />1.id
服务饮用beanId
2.interface
服务接口名
3.version
服务版本,需要与服务提供者的版本一致
4.protocol
只调用指定协议的服务提供方
5.url
点对点直连服务提供者地址,将绕过注册中心
(3)<dubbo:protocol/>
服务提供者的协议配置.
如果需要支持多种协议,可以声明多个<dubbo:rpotocol>标签,并在<dubbo:service>中protocol属性指定使用的协议
1.id
协议的beanId,可以在<dubbo:service protocol="">中引用此ID,如果ID不填,缺省和name属性值一样,重复则在name后加序号
2.name
协议名称
3.port
服务端口,dubbo协议默认为20800,http、hessian默认为80,rmi默认为1099.
如果配置为-1或没配,则会自动分配一个没被占用的端口
4.server
协议的服务器实现类型,dubbo协议有mina、netty,默认为netty,http有jetty、servlet,默认为servlet
5.accesslog
设置为true则会向logger中输出访问日志;也可以填写日志文件路径,直接把访问日志输出到指定文件
6.threadpool
线程池类型,可选fixed/cached
7.threads
服务线程池大小
8.dispatcher
协议的消息派发方式,用于指定线程模型,如dubbo协议的all,direct等
(4)<dubbo:registry/>
注册中心配置
如果有多个不同的注册中心,可以声明多个<dubbo:registry>标签,并在<dubbo:service>或<dubbo:reference>的registry属性指定使用的注册中心。
1.address
注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如ip:port,ip:port,不同集群的注册中心则配置多个<dubbo:registry>
(5)<dubbo:provider/>
服务提供者缺省值配置。
为<dubbo:service>和<dubbo:protocol>标签的缺省值设置
也就是说provider中有些设置是各个service公用的,又与默认值不一样,就可以使用这个标签
那么标签中属性也就和<dubbo:service>和<dubbo:protocol>完全一样
如:
<dubbo:provider timeout="180000"/>也就是说所有service默认的timeout=180000
相关文章推荐
- 【转】HttpClient 教程 (一)
- Caused by: java.lang.NoClassDefFoundError:
- 奇 偶 行的css 设置背景颜色.
- JavaScript中的this用法总结
- WebApp网站有关meta标签
- 欢迎使用CSDN-markdown编辑器
- eclipse快捷键大全
- SQL字符串截取
- 1112-对同学作业评论·
- 15个IT程序员必须思考的问题
- [转] 《实用技巧》——让你的网站变成响应式的3个简单步骤
- 解决模板生成Linux虚机后网卡eth1变成eth0方法
- maven install 同时生成jar和war
- 利用TouchesBegan解决页面内 触摸 某个视图以外的处理的情况
- Longest Common Prefix
- OData V4 学习目录
- KALI LINUX 2.0 个人软件安装
- 在Unity中,获得包含某种component的gameobject
- 对话框简介 parent指针 模态/非模态对话框 栈/堆 内存泄漏
- poj 1320 Street Numbers 解pell方程