当前位置: 首页 > news >正文

09-netty基础-手写rpc-原理-01

netty系列文章:

01-netty基础-socket
02-netty基础-java四种IO模型
03-netty基础-多路复用select、poll、epoll
04-netty基础-Reactor三种模型
05-netty基础-ByteBuf数据结构
06-netty基础-编码解码
07-netty基础-自定义编解码器
08-netty基础-自定义序列化和反序列化
09-netty基础-手写rpc-原理-01
10-netty基础-手写rpc-定义协议头-02
11-netty基础-手写rpc-支持多序列化协议-03
12-netty基础-手写rpc-编解码-04
13-netty基础-手写rpc-消费方生成代理-05
14-netty基础-手写rpc-提供方(服务端)-06

1 涉及到的知识点

  • netty自定义编解码(自定义消息头、传输对象)
  •  支撑多序列化实现
  • 服务消费方使用spring生成代理对象并放入到spring容器中
  • 使用netty实现客户端和服务端通信代码
  • 使用EnvironmentAware实现用yml中读取配置
  • ......

2 代码以及分支说明

地址:https://gitee.com/huyanqiu6666/netty-rpc-protocol.git

分支说明:

分支名描述
master搭建多模块的项目
20250805-01-base-provider服务端协议api
20250805-02-protocol自定义协议相关的类
20250805-03-serializer序列化相关的类
20250805-04-encoder-decoder编解码
20250805-05-spring-bean增加spring为客户端增加代理类、依赖注入等
20250806-06-netty-server-client增加客户端连接服务端
20250806-07-consumer-config增加客户端配置,ip、端口号等
20250806-08-provider-config 服务端编写以及配置

3 项目结构

4 rpc流程

1、自定义服务提供方和消费方注解 BonnieRemoteReference(消费方)、BonnieRemoteService(提供方)
2、自定义协议头(包含序列化方式)、协议体
3、支撑多种序列化方式,比如java、json
4、自定义编解码
5、客户端启动的时候在spring容器加载bean定义文件之后,初始化之前,为添加了BonnieRemoteReference的类属性生成Bean的代理对象放入到spring容器中
6、服务端启动的时候,在spring的对象初始化完成之后,识别出被BonnieRemoteService修饰的类,将这种类下的所有方法都缓存到Map中,以供后续处理客户端的请求反射调用

后面的文章会详细介绍涉及到的实现rpc的重点知识

http://www.dtcms.com/a/319172.html

相关文章:

  • 上位机知识篇---aptapt-get
  • 全栈:怎么把sql导入SQLserver里面
  • [特殊字符] 2025年生成式大模型部署与推理优化全景解析
  • STM32 串口控制电机运行系统
  • PyTorch + PaddlePaddle 语音识别
  • 【基础】go进阶学习笔记
  • Android渲染/合成底层原理详解
  • B 站 SEO 优化全景指南:从基础到进阶的实操方法
  • 贪心+矩阵算法
  • Oracle 关闭 impdp任务
  • 云原生安全挑战与治理策略:从架构思维到落地实践
  • 基于大数据的美食视频播放数据可视化系统 Python+Django+Vue.js
  • 解读 gpt-oss-120b 和 gpt-oss-20b开源模型
  • 仓库管理系统-20-前端之记录管理的联表查询
  • Android中视图测量、布局、绘制过程
  • 嵌入式 - 数据结构:二叉树
  • GitHub 上 Star 数量前 20 的开源 AI 项目
  • X4000 私有 5G 实验室入门套件
  • 90-基于Flask的中国博物馆数据可视化分析系统
  • MySQL的变量、控制流程和游标:
  • 智能升级新纪元:基于Deepoc具身模型外拓开发板的除草机器人认知进化
  • git工程多个remote 拉取推送
  • 配置VScode内置Emmet自动补全代码
  • leetcode 415.字符串相加
  • 如何重塑企业服务体验?
  • 六边形架构模式深度解析
  • 深度学习(1):pytorch
  • SurgRIPE 挑战赛:手术机器人器械位姿估计基准测试|文献速递-医学影像算法文献分享
  • Next.js 样式:CSS 模块、Sass 等
  • 前端技术架构设计文档(Vue2+Antd+Sass)