序列化
地址缓存
注册中心挂了,服务是否可以正常访问?
可以,因为dubbo服务消费者在第一次调用时,会将服务提供方地址缓存到本地,以后在调用则不会访问注册中心。当服务提供者地址发生变化时,注册中心会通知服务消费者。新的服务不可用,老的服务仍可以使用
超时
服务消费者在调用服务提供者的时候发生了阻塞、等待的情形,这个时候,服务消费者会一直等待下去。在某个峰值时刻,大量的请求都在同时请求服务消费者,会造成线程的大量堆积,势必会造成雪崩。
dubbo 利用超时机制来解决这个问题,设置一个超时时间,在这个时间段内,无法完成服务访问,则自动断开连接。
使用timeout属性配置超时时间,默认值1000,单位毫秒
重试
Dubbo设置了超时时间,这个时间内,无法完成服务访问,自动断开连接
如果出现网络抖动,则这一次请求就会失败
Dubbo 提供重试机制来避免类似问题的发生
通过retries属性来设置重试次数。默认为 2 次
@Service(timeout = 3000,retries = 2) //当服务器3秒超时,重试2次,一共3次
路径注册到注册中心之中
public class UserServiceImpl implements UserService {
@Override
public String sayHello() {
return "Hello dubbo!~";
}
}