# sf-rpc **Repository Path**: min_shangfeng/sf-rpc ## Basic Information - **Project Name**: sf-rpc - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2024-03-24 - **Last Updated**: 2024-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 一、项目简介 本项目是一个基于RPC(远程过程调用)技术的分布式通信框架。它旨在简化服务间的通信,提高系统的可扩展性和可维护性。通过RPC,服务提供者可以发布自己的服务,而服务消费者则可以透明地调用这些服务,无需关心底层的通信细节。 ## 二、项目结构 ```markdown sf-rpc/ ├── example-springboot-consumer/ # 客户端模块[示例代码] │ ├── src/ # 客户端源代码 │ └── ... ├── example-springboot-server/ # 服务端模块[示例代码] │ ├── src/ # 服务端源代码 │ └── ... ├── common/ # 公共模块,包含实体类、公共接口等公共代码 │ ├── src/ │ └── ... ├── sf-rpc-core/ # rpc 核心模块,包括序列化、注册中心、容错、负载均衡等 │ ├── src/ │ └── ... ├── sf-rpc-spring-boot-starter/ # 场景启动器模块,开发者可以轻松使用本框架 │ ├── src/ │ └── ... ├── .gitignore # Git忽略文件 └── README.md # 本文件 ``` ## 三、依赖与安装 ### 3.1 依赖 - 依赖组件:Vert.x、Etcd、Zookeeper ### 3.2 安装 1. 克隆项目到本地:`git clone https://gitee.com/min_shangfeng/sf-rpc.git` 2. mvn clean package -DskipTests,编译成功后会生成一个jar包 3. 将公共实体类和接口写入 common 模块 4. 服务提供者和消费者依赖 starter 和 common 模块 ## 四、使用说明 ### 4.1 服务端 1. 定义服务接口和消息类型,(服务提供者和消费者)使用 `@EnableRpc` 注解放到请求启动类上,初始化 `Rpc` 框架。 2. 实现服务接口,编写服务端逻辑,使用 `@RpcService` 自动注入到注册中心和本地。 3. 配置服务端,包括监听地址和端口。 4. 启动服务端,开始监听请求。 ### 4.2 客户端 1. 引入服务端定义的服务接口和消息类型。 2. 创建 `RPC` 客户端,连接到服务端,将服务类型通过 `@RpcReference` 注入,类似 `@Resource`。 3. 调用服务端的服务接口,发送请求并接收响应。 ## 五、示例 在`example-springboot-consumer/ 和 example-springboot-server/ `目录下,提供了服务端和客户端的简单示例代码,可以运行它们来体验`RPC`通信的基本流程。 ## 六、文档 架构图 ![RUNOOB 图标](./docs/rpc.jpg) ## 七、贡献与反馈 如果您有任何关于本项目的疑问、建议或发现的问题,欢迎通过GitHub Issue与我联系。如果您想为项目做出贡献,欢迎提交Pull Request。