RPC
12 篇文章
-
手写RPC框架系列(十一) - 总结
在这个系列的文章中,一步步构建了一个基础的RPC框架。从最初的网络通信,到协议设计、编解码、请求处理和应答,再到客户端和服务端的示例,逐步完善了RPC框架的各个组成部分。现在,让回顾一下每个章节的主要内容,并对整个系列进行总结和展望。
-
手写RPC框架系列(十) - 客户端与服务端示例及调用流程
在前面的章节中,我们详细探讨了RPC框架的各个组成部分,包括网络通信、编解码、请求处理和应答等。本章将通过创建客户端和服务端的示例模块,来演示如何使用我们自己实现的 RPC 框架进行远程方法调用。
本章的大致内容如下: - 创建公共 API 模块。 - 创建 客户端示例。 - 创建 服务端示例。 - 发起 RPC 调用以及观察调用结果。
-
手写RPC框架系列(九) - RPC请求处理以及应答
在上一章节中,我们详细介绍了如何使用 Netty 实现 RPC 框架的网络通信层,包括服务端和客户端的实现、自定义的通信协议,以及消息的编码和解码。本章将继续探讨 RPC 请求的处理流程以及如何将处理结果返回给调用方。
本章内容大致如下: - RPC请求以及应答的实体类抽象。 - 客户端怎么去发送请求以及维护请求的维护。 - 服务端怎么去接收请求以及处理本地方法调用。 - 服务端怎么给客户端应答请求结果。 - 客户端怎么接收请求结果。
-
手写RPC框架系列(八) - 编写 RPC 网络通信
这个章节将开始编写 RPC 网络通信部分,稍微会有点小难度,并会涉及到一些新的概念。
本章节的内容大概如下: - 编写基本的 Netty 服务端以及客户端代码 - 设计 RPC 通信协议 (包括协议头以及协议体) - 实现消息编码解码器 - 创建业务处理器以处理 RPC 请求 - 将编解码器以及业务处理器加入 Netty 的 ChannelPipeLine - 理解心跳机制以及在 RPC 中的应用
在计算机体系中,存在着很多的网络通信协议。 什么是通信协议呢,简单的来说就是一段通信双方事先约定好的按照规定的格式去编码以及解码的数据。 通过约定好的结构,最终达到传输数据的目的。在前面章节中,我们选择使用 TCP 协议进行数据传输,那么 TCP 协议必然也有自己的协议报文格式。
-
手写RPC框架系列(七) - Netty 快速入门
前一章节我们介绍了基本的通信相关的基础知识,有了基础知识的铺垫有利于本章节的学习。
本章节包含的大致内容如下: - 理解 Netty 是什么以及核心组件 - 为什么要选用 Netty - 快速上手 Netty - 总结
-
手写RPC框架系列(五) - RPC服务的自动扫描与依赖注入
在前几个章节中我们已经开始实现 RPC 框架的核心功能,包括服务的注册发现、代理模式的引入等。但是,每次调用服务时手动创建代理对象显然是不现实的,而且服务的实现类也需要自动注册到注册中心。
本章节将介绍如何利用 Spring 的扩展点,实现 RPC 服务的自动扫描与依赖注入。主要内容包括: - 回顾 Spring 的 Bean 注册以及依赖注入机制 - 自定义 RPC 服务注解及扫描注解 - 基于 Spring 扩展点实现 RPC 服务自动注册 - 自定义 RPC 依赖注入注解 - 基于 Spring 扩展点实现 RPC 依赖自动注入 - 使用示例
-
手写RPC框架系列(六) - 构建RPC通信基础
从本章节开始,我们将逐步切换到RPC框架的核心部分——通信。本章节主要涵盖以下内容: - 通信协议的选择 - 序列化与反序列化方案 - 常用的网络通信模型 - Java生态中常用的网络编程框架
-
手写RPC框架系列(四) - 实现服务注册与发现机制
在上一个章节中,我们讲述了动态代理的基本概念以及基于动态代理的 RPC 服务调用。这一章节中将逐步讲解服务注册中心相关内容。
本章节的大致内容如下: - 为什么要用服务注册中心 - 服务注册中心的作用 - 服务注册中心的选型 - 实现服务注册中心要点 - 结合 Zookeeper 实现注册中心
-
手写RPC框架系列(三) - 在RPC框架中实现代理模式
本章节将主要探讨以下几个内容: - 代理模式简介 - 为什么要使用代理模式 - 理解静态代理和动态代理(JDK动态代理和Cglib动态代理) - 通过例子感受代理模式的作用 - 在RPC框架中实现代理模式
-
手写RPC框架系列(二) - 搭建RPC框架基础工程
通过上一章节中,我们学习了 RPC 的基本理论以及结构。 这个章节将开始实际的动手操作,搭建我们的 RPC 框架基础工程。
章节的大致内容如下: 1. 项目的基本结构 2. 初始化核心模块 3. 初始化客户端例子模块 4. 初始化服务端例子模块 5. 初始化 RPC 服务接口模块