项目简介
本项目是基于Netty、Zookeeper和Spring Boot实现的自定义RPC框架,主要用于解决分布式系统中服务间的调用问题。借助此框架,开发者能够像调用本地方法一样调用远程服务,降低了分布式系统的开发复杂度。
项目的主要特性和功能
- 网络通信:支持Netty、Socket和Http三种网络通信方式。
- 自定义消息协议:设计了专属的消息协议与编解码器,保障数据高效传输。
- 序列化算法:提供JDK、JSON、HESSIAN、KRYO、PROTOSTUFF五种序列化算法,可按需选择。
- 负载均衡:实现RoundRobin、Random、ConsistentHash三种负载均衡算法,确保服务的高可用性和性能。
- 动态代理:支持JDK、CGLIB两种动态代理方式,屏蔽RPC调用底层细节。
- 服务注册与发现:基于Zookeeper实现服务注册与发现,支持服务优雅上线和下线。
- 集成Spring和Spring Boot:通过自定义注解和自动配置,简化RPC服务的注册与消费。
- 心跳机制:增加Netty心跳机制,维持长连接,复用Channel连接,提升调用效率。
- 本地缓存与监听:增加Zookeeper服务本地缓存并监听,动态更新本地服务列表,减少对Zookeeper的频繁访问。
- SPI机制:实现自定义SPI机制,支持根据接口类型加载配置文件中的扩展实现类。
安装使用步骤
环境准备
- 安装并启动Zookeeper。
- 确保已安装JDK 1.8及以上版本。
- 使用Maven管理项目依赖。
配置修改
修改Consumer和Provider模块下的application.yml
文件,配置Zookeeper的连接地址,例如设置rpc.client.registry-addr
和rpc.server.registry-addr
为Zookeeper的连接地址。
启动服务
- 先启动Provider模块,正常启动Spring Boot项目。
- 再启动Consumer模块,通过Controller访问服务进行RPC调用。
测试调用
通过浏览器或API工具访问Consumer模块的接口,如http://localhost:8080/hello/zhangsan
,验证RPC调用是否成功。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】