Dubbo面试深度解析:注册中心、负载均衡与安全机制

需积分: 5 0 下载量 10 浏览量 更新于2024-08-05 收藏 236KB PDF 举报
"Dubbo面试题.pdf包含了关于阿里巴巴开源的高性能RPC框架Dubbo的相关面试问题,涉及服务注册中心、负载均衡策略、安全机制以及连接注册中心与直连的区别。" 在Dubbo中,Zookeeper作为注册中心的角色至关重要。如果Zookeeper集群完全挂掉,已经启动的发布者和订阅者之间依然能够通信。这是因为消费者在启动时会从Zookeeper获取服务提供者的地址信息并缓存在本地。即使注册中心不可用,消费者仍能依赖本地缓存进行服务调用。然而,如果在此期间添加了新的服务,由于无法从注册中心获取新信息,这些新服务将无法被调用。此外,服务提供者的无状态特性意味着单个或全部提供者宕机不会影响整个系统的可用性,但全部宕机会导致消费者无法使用对应服务,并会持续尝试重连。 Dubbo提供了多种服务负载均衡策略: 1. 随机负载均衡(RandomLoadBalance):根据权重设置随机概率,随着调用量的增大,分布趋于均匀,且支持动态调整提供者权重。 2. 轮询负载均衡(RoundRobinLoadBalance):按权重设置轮循比率,可能导致慢的提供者积累请求。 3. 最少活跃调用数负载均衡(LeastActiveLoadBalance):选择活跃调用数最少的提供者,以减少慢服务的请求。 4. 一致性Hash负载均衡(ConsistentHashLoadBalance):确保相同参数的请求总是发送到同一个提供者,避免因提供者故障导致请求剧烈变动,通过虚拟节点实现负载均衡,可配置参数调整。 在安全机制方面,Dubbo通过Token令牌防止用户绕过注册中心直接连接服务提供者。注册中心可以进行权限管理,控制服务的调用方,同时提供服务的黑白名单功能,以控制允许的调用来源。 至于Dubbo连接注册中心和直连的区别,通常在开发和测试环境中,为了测试特定服务提供者,可能需要绕过注册中心进行点对点直连。这种方式方便快速调试,但不适用于生产环境,因为它削弱了系统容错性和服务发现的能力。在正常情况下,通过注册中心可以实现服务的动态注册、发现和负载均衡,保证系统的健壮性和可扩展性。