Skip to content

Commit

Permalink
polish readme
Browse files Browse the repository at this point in the history
  • Loading branch information
ipipman committed Apr 20, 2024
1 parent a0990e3 commit 7e4b991
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,44 @@
##### 从零开始,手写RPC框架


#### 引言
RPC概念与价值:简述远程过程调用(RPC)的基本概念、工作原理及其在构建分布式系统中的重要作用。
手写RPC框架的意义:探讨自研RPC框架对于深入理解分布式通信原理、定制化需求满足、技术栈掌握提升等方面的价值。

##### 总体设计
架构概览:介绍RPC框架的整体架构,包括客户端、服务端、网络传输层、序列化层、注册中心、负载均衡策略等核心组件及其相互关系。
技术选型:阐述所选用的编程语言、网络库、序列化库、注册中心实现、日志库、测试工具等关键依赖。

##### 核心功能实现
1. 客户端
服务发现:说明如何通过注册中心获取服务列表,以及实现服务订阅与更新机制。
请求发送:阐述构建RPC请求、选择服务提供者、封装网络请求、发送请求的具体步骤。
响应处理:介绍响应接收、反序列化、异常处理与结果返回的过程。
2. 服务端
服务注册:讲解服务提供者如何向注册中心注册服务,包括服务信息的定义与发布。
请求接收:描述服务端如何监听并接收客户端请求,包括网络端口绑定、请求解析等环节。
请求处理与响应:详解服务端对请求的业务逻辑处理、结果序列化及响应发送过程。
3. 网络传输层
协议设计:定义RPC通信协议,包括消息头、消息体结构、错误码等规范。
网络通信:采用何种网络库实现HTTP/TCP/UDP通信,如何处理连接管理、心跳检测、超时重试等问题。
4. 序列化层
序列化方案:选择合适的序列化库(如JSON、Protobuf、Thrift等),描述其优点及在框架中的应用。
编解码实现:详细说明请求与响应数据的编码、解码逻辑。
5. 注册中心
注册中心选型:介绍采用的注册中心类型(如Zookeeper、Etcd、Consul等)及其特性。
服务注册与发现机制:详细描述服务提供者注册服务、消费者发现服务的具体实现。
6. 负载均衡
负载均衡策略:列举支持的负载均衡算法(如轮询、随机、权重、一致性哈希等),并解释其实现原理。
策略选择与实现:描述如何在框架中集成并切换不同的负载均衡策略。
7.
##### 高级特性与优化
服务治理:介绍熔断、降级、限流、隔离等服务治理功能的设计与实现。
容错与高可用:探讨如何实现服务端的故障检测、自动恢复、主备切换,以及客户端的重试、失败快速反馈等高可用机制。
性能优化:分享在网络传输、序列化效率、并发处理等方面的优化实践与技巧。

##### 测试与部署
单元测试与集成测试:描述如何编写覆盖各模块功能的测试用例,以及进行端到端的集成测试。
部署与运维:提供框架的部署指南,包括环境准备、配置说明、服务启动与停止等操作步骤,以及日志监控、故障排查等运维建议。



Expand Down

0 comments on commit 7e4b991

Please sign in to comment.