RPC(Remote Procedure Call):远程过程调用,指的是一个程序调用另一个地址空间(通常是网络上的另一台机器)的过程或函数,就像调用本地服务一样方便。Dubbo 本质上就是一个 RPC 框架。
服务提供者(Provider):提供可远程调用的服务实现的一方。在 Dubbo 中,服务提供者通常是一个运行在服务器上的 Java 应用,它暴露出一些服务接口供远程调用。
服务消费者(Consumer):调用远程服务的一方。在 Dubbo 中,服务消费者可以是一个 Web 应用、一个移动应用或其他任何需要调用远程服务的客户端。
注册中心(Registry):用于服务注册与发现的组件。服务提供者启动时,会向注册中心注册自己提供的服务;服务消费者会通过注册中心来查找所需的服务。常见的注册中心有 Zookeeper、Nacos 等。
服务协议(Protocol):Dubbo 支持多种服务协议,如 Dubbo 协议、HTTP 协议、REST 协议等。服务协议定义了服务调用的方式、数据格式等。
服务分组(Group):用于将服务进行逻辑分组,以区分不同环境下的服务。比如,可以将开发环境的服务和生产环境的服务分成不同的组。
服务版本(Version):用于区分同一个服务的不同版本。这在服务升级或回滚时非常有用。
集群(Cluster):Dubbo 提供了多种集群容错策略,如Failover(失败重试)、Failfast(快速失败)、Failsafe(失败安全)、Failback(失败自动恢复)等。这些策略决定了当服务调用失败时,Dubbo 如何处理。
负载均衡(LoadBalance):Dubbo 提供了多种负载均衡策略,如随机(Random)、轮询(RoundRobin)、最少活跃调用(LeastActive)、一致性哈希(ConsistentHash)等。这些策略决定了如何将请求分发到不同的服务提供者上。
服务降级(Fallback):当某个服务提供者不可用或响应时间过长时,Dubbo 允许消费者调用一个本地的备选实现(降级逻辑),以保证系统的稳定性和可用性。
服务限流(Throttling):为了防止系统过载,Dubbo 允许对服务调用进行限流,即限制一段时间内允许调用的次数或速率