Dubbo面试精讲:超时设置与负载均衡策略解析

需积分: 0 1 下载量 117 浏览量 更新于2024-08-03 收藏 20KB DOCX 举报
"Dubbo面试题及答案涵盖了Dubbo的超时时间设置、注册中心故障时的通信情况以及服务负载均衡策略等核心知识点。" 详细说明: 1. **Dubbo超时时间设置** - Dubbo允许在服务提供者和服务消费者两端设置超时时间。服务提供者端的设置是为了更好地理解服务特性,而消费者端的设置具有更高的优先级,能够更灵活地控制调用超时的行为。当消费者端设置超时时间后,即使服务端未设定,也会按照消费者端的设置执行。如果服务调用超过消费者端设定的超时时间,服务端的线程不会被阻塞,但会产生警告。 2. **Zookeeper作为注册中心** - 当Dubbo使用Zookeeper作为注册中心时,如果整个Zookeeper集群都挂掉,服务提供者和消费者仍然可以通信。这是因为在启动时,消费者会从Zookeeper获取服务提供者的地址信息并缓存在本地。因此,即使注册中心不可用,消费者仍能使用本地缓存的数据进行服务调用。同时,注册中心通常配置为对等集群,单台宕机后会自动切换到其他正常运行的节点。只有当所有注册中心都宕机,且无新服务添加时,服务提供者和消费者间的通信才能继续,因为已有的调用路径仍可通过本地缓存维持。 3. **Dubbo服务负载均衡策略** - - **RandomLoadBalance**:随机负载均衡,根据权重随机选择服务提供者,随着调用次数增加,分布趋向均匀。 - - **RoundRobinLoadBalance**:轮询负载均衡,按权重比例分配请求,但可能会导致慢服务积压请求。 - - **LeastActiveLoadBalance**:最少活跃调用数负载均衡,选择当前最不忙碌的服务提供者,以减少慢服务的请求量。 - - **ConsistentHashLoadBalance**:一致性哈希负载均衡,保证相同参数的请求总是发送到相同的提供者,提高请求分布的稳定性。当提供者故障时,请求会被平摊到其他提供者,降低系统冲击。 这些面试题的答案展示了Dubbo在实际应用中的关键特性和应对策略,对于理解和掌握Dubbo的高级用法非常有帮助。了解并能灵活运用这些知识将有助于提升在分布式服务架构中的设计和优化能力。