Dubbo spring cloud 学习(二)dubbo功能特性
多协议支持
服务可以暴露多种协议,默认dubbo协议
- dubbo
- hessian
- thrift
- rmi
- rest
- …
@DubboService(protocol = {"dubbo","rest"})
public class LoginServiceImpl implements ILoginService {
@Override
public String login(String userName, String password) {
return "success";
}
}
集群容错
负载均衡
- 客户端软负载模式,服务调用者根据策略选取一个服务调用
-
Random(默认)
根据权重随机,比如 A、B、C 三台服务,权重 1:2:3 ,那么就是 A,B1,B2,C1,C2,C3 ,总计6个,然后在这6个中随机选择一个
-
roundrobin
按权重轮询,比如 A、B、C 三台服务,权重 1:2:3 那么就是 A,B1,B2,C1,C2,C3 ,总计6个,然后 在这6个中轮询执行
-
leastActive
最小活跃数,根据目标集群服务器列表,处理性能最高的,权重也越高。处理性能较低的,权重也比较低
怎么计算活跃数呢?根据请求处理的吞吐量 -> 发起一次请求(开始),计数器+1、 一次请求处理完成,计数器-1
-
consistentHash
一致性哈希算法,可以保证同一个参数的请求都落到相同的服务节点
参考: https://www.cnblogs.com/williamjie/p/9477852.html 讲的很细致
多注册中心
…