Dubbo 面试之应用
简介
【简单】Dubbo 是什么?为什么使用 Dubbo?
Dubbo 是一款高性能、轻量级的开源 Java RPC 框架。
Dubbo 提供了三大核心能力:
- 面向接口的远程过程调用(RPC):提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。
- 智能容错和负载均衡:内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。
- 服务自动注册和发现:支持多种注册中心服务,服务实例上下线实时感知。
Dubbo 是一款高性能、轻量级的开源 Java RPC 框架。
Dubbo 提供了三大核心能力:
什么是服务注册与发现?
服务注册与发现是微服务的核心基础设施,通过解耦服务地址硬编码,实现动态扩缩容和故障自动恢复。
订单服务
启动后,向注册中心注册:"order-service: 192.168.1.100:8080"
。支付服务
需要调用订单服务
时,从注册中心获取所有可用的order-service
节点列表。RPC 的全称是 Remote Procedure Call,即远程过程调用。
RPC 的主要作用是:
RPC 是微服务架构的基石,它提供了一种应用间通信的方式。
Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:
Dubbo 是一个分布式服务框架,致力于提供高性能、透明化的 RPC 远程服务调用方案以及服务治理方案,以帮助我们解决微服务架构落地时的问题。
通过注册中心,服务消费者和服务提供者就可以感知彼此。但是,要实现交互还必须解决通信问题。
在单体应用中,一次服务调用发生在同一台机器上的同一个进程内部,因此也被称为本地方法调用。在微服务应用中,由于服务提供者和服务消费者运行在不同物理机器上的不同进程内,因此也被称为远程方法调用,简称 RPC(Remote Procedure Call)。
RPC 是微服务架构的基石,它提供了一种应用间通信的方式。RPC 的主要作用是:
为什么要学习 RPC
RPC 不仅是微服务的架构基础,实际上,只要涉及网络通信,就可能用到 RPC。
例 1:大型分布式应用系统可能会依赖消息队列、分布式缓存、分布式数据库以及统一配置中心等,应用程序与依赖的这些中间件之间都可以通过 RPC 进行通信。比如 etcd,它作为一个统一的配置服务,客户端就是通过 gRPC 框架与服务端进行通信的。
例 2:我们经常会谈到的容器编排引擎 Kubernetes,它本身就是分布式的,Kubernetes 的 kube-apiserver 与整个分布式集群中的每个组件间的通讯,都是通过 gRPC 框架进行的。