# 第三阶段模块2 **Repository Path**: cllyl/stage_3_module_2 ## Basic Information - **Project Name**: 第三阶段模块2 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RPC远程过程调用项目说明 ## 设计目标 #### 实现功能介绍 ###### 1. 远程过程调用 ###### 2. 远程过程对象统一 ###### 3. 服务注册与发现 ###### 4. 服务调用的负载均衡配置 ###### 5. 配置中心管理 #### 功能模块介绍 ###### 1.API模块 1. 定义服务接口 2. 定义服务接口中需要使用的对象 ###### 2. 通用模块 1. 定义通用的加解密操作**(废弃,暂时不使用)** 2. 定义通用的编码/解码对象 3. 定义通用的序列化机制 4. 定义通用传输对象 ###### 3. 服务消费者模块 1. 连接服务提供者模块 2. 定义发送请求和接收响应的通道处理器 3. 启动类编写 ###### 4. 服务提供者模块 1. 启动服务端,绑定监听端口 2. 实现通用模块提供的接口 3. 接收客户端请求,进行业务逻辑处理器之后,返回结果 ## 概要设计 ###### 1.API模块设计 > 对象设计 UserService:接口:用户服务层接口客户端调用,服务端实现 User:类:接口中需要使用的用户对象 PageData:类:分页对象 ###### 2. 通用模块设计 > 对象设计 RpcRequest:类:通用请求对象 RpcResponse:类:通用返回结果 RpcRequestEncoder:类:对通道中的RpcRequest对象进行编码 RpcResponseEncoder:类:对通道中的RpcResponse对象进行编码 RpcDecoder:类:根据定义的编码方式,对通道中的数据进行解码处理 Serializer:接口:定义序列化和反序列化的顶级接口 JsonSerializable:类:实现了顶级接口的,使用FastJson进行对象序列化和反序列化操作 ###### 3. 服务提供者模块设计 >对象设计 RpcProvider:类:服务提供者具体启动服务类 SpringApplicationContext:类:Spring中上下文获取工具类 RpcProviderHandler:类:服务提供者通道处理器,负责接收服务消费者发送过来的请求 UserServiceImpl:类:实现通用模块定义的接口,处理业务逻辑 ProviderBootstrap:类:服务提供者启动配置引导类 ###### 4. 服务消费者模块设计 RpcConsumer:类:通过代理对象执行方法;启动客户端 RpcCommonHandler:类:服务消费者通道,发送请求给服务端,接收服务端响应 ConsumerBootstrap:类:服务消费者启动类 ## 开发流程 API模块开发如下