一、地址缓存
注册中心挂了,服务是否还能正常访问?
如果消费者之前访问过相关服务,会将地址缓存在本地,不会再经过注册中心,因此可以访问。
二、服务超时与重试
使用timeout属性配置超时时间,默认值1000,单位毫秒,建议配置在服务提供者,因为只有服务提供者确切的知道执行要花多长时间。
通过retries属性来设置重试次数。默认为2次。
//timeout 超时时间 单位毫秒 retries 重试次数
@Service(timeout = 3000,retries=0)
三、多版本设置
dubbo中使用version属性来设置和调用同一个接口的不同版本。
生产者配置
@Service(version="v2.0")
public class UserServiceImp12 implements UserService {...}
消费者配置
@Reference(version = "v2.0")//远程注入
private UserService userService;
四、负载均衡策略
服务提供者配置
@Service(weight = 100)
public class UserServiceImp12 implements UserService {...}
消费者配置
//@Reference(loadbalance = "roundrobin")
//@Reference(loadbalance = "leastactive")
//@Reference(loadbalance = "consistenthash")
@Reference(loadbalance = "random")//默认 按权重随机
private UserService userService;
五、集群容错
消费者配置
@Reference(cluster = "failover")//远程注入
private UserService userService;
六、服务降级
消费方配置
@Reference(mock =“ force :return null")//不再调用userService的服务
private UserService userService;