Dubbo面试深度解析:协议、超时设置与注册中心

需积分: 5 0 下载量 104 浏览量 更新于2024-07-08 收藏 1.1MB PDF 举报
"Dubbo面试及答案(上)" 在面试中,了解Dubbo的各种协议、超时设置以及注册中心是至关重要的。以下是这些知识点的详细解释: 1. Dubbo支持的协议及其应用场景和优缺点: - **Dubbo协议**:这种协议采用单一长连接和NIO(非阻塞I/O)异步通信,适用于高并发、小数据量的服务调用,特别是当消费者数量远大于提供者时。它基于TCP协议,使用Hessian序列化,能有效提升性能。 - **RMI协议**:RMI是Java的标准远程方法调用协议,需要服务参数和返回值实现Serializable接口,通过java的序列化机制。它采用短连接,适合数据包混合大小的场景,消费者和提供者的数量相近。然而,由于使用了阻塞式传输和Java序列化,可能存在安全漏洞。 - **WebService协议**:基于CXF实现,支持与原生Web服务的互操作。适合系统集成和跨语言调用,使用HTTP传输,同步模式,多个短连接。 - **HTTP协议**:使用Spring的HttpInvoke实现,适合浏览器JS和应用程序调用,提供者数量多于消费者。传输协议为HTTP,支持混合大小的参数。 - **Hessian协议**:基于HTTP通信,集成Hessian服务,使用Servlet暴露服务,适合传入参数较大的情况。它有较高的提供者压力,支持文件传输。 - **Memcache和Redis协议**:基于Memcached和Redis实现的RPC协议,分别用于这两种缓存服务的远程调用。 2. Dubbo超时时间设置: - **服务提供者端设置**:推荐在服务提供者端设置超时时间,因为提供者更了解其服务的特性。这样可以更好地调整服务响应速度。 - **服务消费者端设置**:消费者端设置的超时时间优先级更高,可以灵活控制调用方的时间限制。如果消费者端设定了超时,服务端线程将不受影响,但会产生警告。 3. Dubbo注册中心: - **Multicast注册中心**:使用网络中的组播地址进行服务注册和发现,无需中心节点,更加去中心化。 - **Zookeeper注册中心**:基于分布式协调服务Zookeeper,提供可靠的注册和发现功能,支持集群部署,具有高可用性和强一致性。 这些知识点对于理解和优化Dubbo应用至关重要,它们涉及到服务调用的效率、可靠性和扩展性,以及服务发现的灵活性。掌握这些,可以帮助开发者更好地设计和维护分布式系统。