RPC 面试
RPC 简介
【基础】什么是 RPC?RPC 有什么用?
要点
RPC 的全称是 Remote Procedure Call,即远程过程调用。
RPC 的主要作用是:
- 屏蔽远程调用跟本地调用的差异,让用户像调用本地一样去调用远程方法。
- 隐藏底层网络通信的复杂性,让用户更聚焦于业务逻辑。
RPC 是微服务架构的基石,它提供了一种应用间通信的方式。
RPC 的全称是 Remote Procedure Call,即远程过程调用。
RPC 的主要作用是:
RPC 是微服务架构的基石,它提供了一种应用间通信的方式。
Dubbo 是一款高性能、轻量级的开源 Java RPC 框架。
Dubbo 提供了三大核心能力:
服务定义是服务提供者和服务消费者之间的约定,但是在微服务架构中,如何达成这个约定呢?这就依赖于服务注册和发现机制。
在微服务架构下,服务注册和发现机制中主要有三种角色:
通过注册中心,服务消费者和服务提供者就可以感知彼此。但是,要实现交互还必须解决通信问题。
在单体应用中,一次服务调用发生在同一台机器上的同一个进程内部,因此也被称为本地方法调用。在微服务应用中,由于服务提供者和服务消费者运行在不同物理机器上的不同进程内,因此也被称为远程方法调用,简称 RPC(Remote Procedure Call)。
RPC 是微服务架构的基石,它提供了一种应用间通信的方式。RPC 的主要作用是:
微服务是一种架构模式。
微服务的六个特点:
微服务定义:基于有界上下文的、松散耦合的、面向服务的架构。
架构之道在于权衡利弊。
本文关键词:
定义
、演进
、利弊
、如何拆分
、容量规划
、核心组件
微服务定义
微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。
——Martin Fowler 和 James Lewis 对应微服务( Microservices)的定义
微服务定义
微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理 (例如 Docker)技术,服务可以用不同的编程语言与数据库等。
——Martin Fowler 和 James Lewis
单体应用的问题
微服务是一种架构模式,它提倡将一个单一应用拆分为一些可独立运行、可协同工作的小的服务。在微服务架构中,每个小服务都拥有独立的进程和轻量级通信。这些服务是围绕业务能力构建的,并且可以通过全自动化部署机制独立部署。这些服务会使用最小规模的集中式管理能力(例如 Docker) ,可以用不同的编程语言编写并使用不同的数据存储技术。
第一层:接入层
外部设备访问的统一接入层。
第二层:聚合服务层
对下层的基础服务做一些聚合,剪裁的工作,适配上层不同设备的数据输出。