littlebot
Published on 2025-04-08 / 2 Visits
0

【源码】基于Netty + Zookeeper + SpringBoot的RPC框架

项目简介

本项目是基于Netty、Zookeeper和Spring Boot实现的自定义RPC框架,主要用于解决分布式系统中服务间的调用问题。借助此框架,开发者能够像调用本地方法一样调用远程服务,降低了分布式系统的开发复杂度。

项目的主要特性和功能

  1. 网络通信:支持Netty、Socket和Http三种网络通信方式。
  2. 自定义消息协议:设计了专属的消息协议与编解码器,保障数据高效传输。
  3. 序列化算法:提供JDK、JSON、HESSIAN、KRYO、PROTOSTUFF五种序列化算法,可按需选择。
  4. 负载均衡:实现RoundRobin、Random、ConsistentHash三种负载均衡算法,确保服务的高可用性和性能。
  5. 动态代理:支持JDK、CGLIB两种动态代理方式,屏蔽RPC调用底层细节。
  6. 服务注册与发现:基于Zookeeper实现服务注册与发现,支持服务优雅上线和下线。
  7. 集成Spring和Spring Boot:通过自定义注解和自动配置,简化RPC服务的注册与消费。
  8. 心跳机制:增加Netty心跳机制,维持长连接,复用Channel连接,提升调用效率。
  9. 本地缓存与监听:增加Zookeeper服务本地缓存并监听,动态更新本地服务列表,减少对Zookeeper的频繁访问。
  10. SPI机制:实现自定义SPI机制,支持根据接口类型加载配置文件中的扩展实现类。

安装使用步骤

环境准备

  1. 安装并启动Zookeeper。
  2. 确保已安装JDK 1.8及以上版本。
  3. 使用Maven管理项目依赖。

配置修改

修改Consumer和Provider模块下的application.yml文件,配置Zookeeper的连接地址,例如设置rpc.client.registry-addrrpc.server.registry-addr为Zookeeper的连接地址。

启动服务

  1. 先启动Provider模块,正常启动Spring Boot项目。
  2. 再启动Consumer模块,通过Controller访问服务进行RPC调用。

测试调用

通过浏览器或API工具访问Consumer模块的接口,如http://localhost:8080/hello/zhangsan,验证RPC调用是否成功。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】