# 基于Netty,Zookeeper,Kryo的RPC框架 **Repository Path**: saw96x/saw96x-PRC ## Basic Information - **Project Name**: 基于Netty,Zookeeper,Kryo的RPC框架 - **Description**: 基于Netty,Zookeeper,Kryo的RPC框架 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-03-19 - **Last Updated**: 2023-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于Netty,Zookeeper,Kryo的RPC框架 #### 介绍 这是一款基于 Netty+Kyro+Zookeeper 实现的 RPC 框架,主要有以下亮点: 1. 使用 Netty 编写网络传输模块,改善使用 JDK socket 作为网络传输模块带来的低性能,同时避免了使用 JDK NIO 带来的复杂代码编写。 2. Kryo 作为编解码器,避免了使用 JDK 自带序列化接口带来的低性能。 3. Zookeeper 作为 RPC 注册中心。 4. 支持容错,实现了随机负载均衡策略,参考 Dubbo 的源码文档实现了 SPI 机制。 #### 软件架构 软件架构: ![rpc-architure.png](image\rpc-architure.png) 服务提供端 Server 向注册中心注册服务,服务消费者 Client 通过注册中心拿到服务相关信息,然后再通过网络请求服务提供端 Server。 #### 模块结构 ![module.JPG](image\module.JPG) annotation:相关注解,为集成 Spring 通过注解注册服务/服务消费提供支持 common:定义相关的工具类,SPI以及自定义异常等等 compress:设置 gzip 压缩 config:定义相关配置类 loadbalance:定义负载均衡策略 proxy:定义动态代理类 registry:定义注册中心 remoting:定义客户端,服务端与编解码器 serialize:自定义序列化接口并实现 spring:集成 Spring 通过注解注册服务/服务消费