Skip to content

Latest commit

 

History

History
51 lines (26 loc) · 2.85 KB

File metadata and controls

51 lines (26 loc) · 2.85 KB

3 基于 Netty 重构 RPC 框架

3.1 RPC 概

image-20220312170412058

image-20220312170739496

它描述了每一种架构需要的具体配置和组织形态。当网站流量很小时,只需一个应用,将所有功能都部署在一起, 以减少部署节点和成本,我们通常会采用单一应用架构。之后出现了 ORM 框架,主要用于简化增删改查工作流的,数 据访问框架 ORM 是关键。

它描述了每一种架构需要的具体配置和组织形态。当网站流量很小时,只需一个应用,将所有功能都部署在一起, 以减少部署节点和成本,我们通常会采用单一应用架构。之后出现了 ORM 框架,主要用于简化增删改查工作流的,数 据访问框架 ORM 是关键。

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服逐渐形成稳定的服务中心, 使前端应用能更快速的响应,多变的市场需求,就出现了分布式服务架构。分布式架构下服务数量逐渐增加,为了提 高管理效率,RPC 框架应运而生。RPC 用于提高业务复用及整合的,分布式服务框架下 RPC 是关键

下一代框架,将会是流动计算架构占据主流。当服务越来越多,容量的评估,小服务的资源浪费等问题,逐渐明 显。此时,需要增加一个调度中心 ,基于访问压力实时管理集群容量,提高集群利用率。SOA 架构就是用于提高及其 利用率的,资源调度和治理中心 SOA 是关键。

Netty 基本上是作为架构的技术底层而存在的,主要完成高性能的网络通信。

3.2 环境预设

目前流行的 RPC 服务治理框架主要有 Dubbo 和 Spring Cloud,下面我们以比较经典的 Dubbo 为例。Dubbo 核 心模块主要有四个:Registry 注册中心、Provider 服务端、Consumer 消费端、Monitor 监控中心,如下图所示:

image-20220312171322121

为了方便,我们将所有模块全部放到一个项目中,主要模块包括:

api:主要用来定义对外开放的功能与服务接口。

protocol:主要定义自定义传输协议的内容。

registry:主要负责保存所有可用的服务名称和服务地址。

provider:实现对外提供的所有服务的具体功能。

consumer:客户端调用。

monitor:完成调用链监控。

3.3 代码实战

3.3.1 创建API模块

3.3.2 创建自定义协议

3.3.3 实现 Provider 服务端业务逻辑

3.3.4 完成 Registry 服务注册

3.3.5 实现 Consumer 远程调用

3.3.6 Monitor 监控