Dubbo如何传输java对象?注册中心挂了,服务可以正常访问吗?什么是超时和重试?

序列化

 

地址缓存

       注册中心挂了,服务是否可以正常访问?

       可以,因为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!~";

        }

}

 


版权声明:本文为wsq19980112原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。