必须先启动服务提供者,否则会报错
解决方案-->解决服务间相互调用无法启动问题
- 启动检查(Dubbo的默认特性)
在服务启动过程中去验证服务提供者的可用性,验证过程出现问题会阻止整个spring容器的初始化,尽可能不要关闭服务启动检查让我们尽可能早地发现服务问题,但是并不是所有的服务不去关闭服务检查,对于一些相互强依赖的服务可以关闭服务检查;关闭启动检查以后需要注意的是在启动服务的时候一定要记得启动所有的服务(谨慎),否则容易引发线上故障。
@Reference(interfaceClass = UserAPI.class,check = false)
private UserAPI userAPI;
复制代码
**某一个子服务部署多台服务器,消费者如何调用?
Dubbo的负载均衡策略
策略名称 | 策略描述 |
Random(dubbo默认) | 随机,按照权重设置随机概率 |
RoundRobin | 轮询,按照公约后的权重设置轮询比例,某一机器很慢时容易造成服务雪崩 |
LeastActive | 最少活跃调用数,会计算服务调用的响应时间,慢提供者会受到更少的请求 |
ConsistentHash | 一致性Hash,相同参数的请求总是发到同一提供者 |
protocol
- protocol是服务之间的通信协议,如下所示,name是协议名称,port是协议的端口号,dubbo支持多种协议:http、Hessian、Redis 等等,最常见的是dubbo。