版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25484147/article/details/80846435
Dubbo服务架构
节点 | 角色说明 | 备注 |
---|---|---|
Provider | 暴露服务的服务提供方 | |
Consumer | 调用远程服务的服务消费方 | |
Registry | 服务注册与发现的注册中心 | |
Monitor | 统计服务的调用次数和调用时间的监控中心 | |
Container | 服务运行容器 |
Dubbo的参数
retries
<!--retries 代表着重复次数,默认值是0-->
<dubbo:service interface="cn.com.mkit.supplement.service.SupplementService" ref="supplementServiceImpl" timeout="30000" version="1.0.0" retries="2">
<dubbo:method name="getUserAccountByPid" retries="2"/>
</dubbo:service>
loadbalance(负载均衡)
<!--dubbo调用服务的负载均衡,最后一种比较适合短时间内大量参数一样的请求-->
<dubbo:service interface="cn.com.mkit.supplement.service.SupplementService" ref="supplementServiceImpl" loadbalance="Random" version="1.0.0" retries="2">
<dubbo:method name="getUserAccountByPid" retries="2"/>
</dubbo:service>
<!--
Random LoadBalance
随机,按权重设置随机概率。
在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。
RoundRobin LoadBalance
轮循,按公约后的权重设置轮循比率。
存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
LeastActive LoadBalance
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。
ConsistentHash LoadBalance
一致性Hash,相同参数的请求总是发到同一提供者。
当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。
-->
protocol
<!--protocol不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议。-->
<dubbo:service interface="cn.com.mkit.supplement.service.SupplementService" ref="supplementServiceImpl" protocol="rmi" version="1.0.0" retries="2">
<dubbo:method name="getUserAccountByPid" retries="2"/>
</dubbo:service>
多注册中心
<!-- 多注册中心配置 -->
<dubbo:registry id="hangzhouRegistry" address="10.20.141.150:9090" />
<dubbo:registry id="qingdaoRegistry" address="10.20.141.151:9010" default="false" />
<!-- 向多个注册中心注册 -->
<dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService" registry="hangzhouRegistry,qingdaoRegistry" />