RPC框架介绍
- 《RPC手撸专栏》介绍:我一个人开发了“Dubbo”框架(opens new window)
- 《RPC手撸专栏》前言:这次我设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架(opens new window)
#第一篇:整体设计
- 《RPC手撸专栏》第1章:开篇,从零开始手撸一个能在实际场景使用的高性能RPC框架(opens new window)
- 《RPC手撸专栏》第2章:高性能分布式RPC框架整体架构设计(opens new window)
- 《RPC手撸专栏》第3章:RPC服务核心注解的设计与实现(opens new window)
- 《RPC手撸专栏》第4章:实现RPC服务核心注解的扫描与解析(opens new window)
#第二篇:服务提供者
- 《RPC手撸专栏》第5章:服务提供者收发消息基础功能实现(opens new window)
- 《RPC手撸专栏》第6章:自定义网络传输协议的实现(opens new window)
- 《RPC手撸专栏》第7章:自定义网络编解码的实现(opens new window)
- 《RPC手撸专栏》第8章:模拟服务消费者与服务提供者之间的数据交互(opens new window)
- 《RPC手撸专栏》第9章:服务提供者调用真实方法的实现(opens new window)
- 《RPC手撸专栏》第10章:测试服务提供者调用真实方法(opens new window)
- 《RPC手撸专栏》第11章:服务提供者扩展支持CGLib调用真实方法(opens new window)
#第三篇:服务消费者
- 《RPC手撸专栏》第12章:实现服务消费者与服务提供者直接通信(opens new window)
- 《RPC手撸专栏》第13章:服务消费者异步转同步直接获取返回结果(opens new window)
- 《RPC手撸专栏》第14章:服务消费者异步转同步的自定义Future与AQS实现(opens new window)
- 《RPC手撸专栏》第15章:服务消费者同步、异步、单向调用的实现(opens new window)
- 《RPC手撸专栏》第16章:服务消费者回调方法的实现(opens new window)
- 《RPC手撸专栏》第17章:服务消费者实现动态代理功能屏蔽构建请求协议对象的细节(opens new window)
- 《RPC手撸专栏》第18章:服务消费者整合动态代理实现直接调用接口返回结果数据(opens new window)
- 《RPC手撸专栏》第19章:服务消费者动态代理实现异步调用(opens new window)
- 《RPC手撸专栏》第20章:服务消费者动态代理扩展优化(opens new window)
#第四篇:注册中心
- 《RPC手撸专栏》第21章:注册中心基础服务功能的实现(opens new window)
- 《RPC手撸专栏》第22章:服务提供者整合注册中心实现服务注册(opens new window)
- 《RPC手撸专栏》第23章:服务消费者整合注册中心实现服务发现(opens new window)
#第五篇:负载均衡
#第六篇:SPI扩展序列化机制
- 《RPC手撸专栏》第25章:对标Dubbo实现SPI扩展机制的基础功能(opens new window)
- 《RPC手撸专栏》第26章:基于SPI扩展JDK序列化与反序列化机制(opens new window)
- 《RPC手撸专栏》第27章:基于SPI扩展Json序列化与反序列化机制(opens new window)
- 《RPC手撸专栏》第28章:基于SPI扩展Hessian2序列化与反序列化机制(opens new window)
- 《RPC手撸专栏》第29章:基于SPI扩展FST序列化与反序列化机制(opens new window)
- 《RPC手撸专栏》第30章:基于SPI扩展Kryo序列化与反序列化机制(opens new window)
- 《RPC手撸专栏》第31章:基于SPI扩展Protostuff序列化与反序列化机制(opens new window)
#第七篇:SPI扩展动态代理机制
- 《RPC手撸专栏》第32章:基于SPI扩展JDK动态代理机制(opens new window)
- 《RPC手撸专栏》第33章:基于SPI扩展CGLib动态代理机制(opens new window)
- 《RPC手撸专栏》第34章:基于SPI扩展Javassist动态代理机制(opens new window)
- 《RPC手撸专栏》第35章:基于SPI扩展ByteBuddy动态代理机制(opens new window)
- 《RPC手撸专栏》第36章:基于SPI扩展ASM动态代理机制(opens new window)
#第八篇:SPI扩展反射机制
- 《RPC手撸专栏》第37章:基于SPI扩展JDK反射机制调用真实方法(opens new window)
- 《RPC手撸专栏》第38章:基于SPI扩展CGLib反射机制调用真实方法(opens new window)
- 《RPC手撸专栏》第39章:基于SPI扩展Javassist反射机制调用真实方法(opens new window)
- 《RPC手撸专栏》第40章:基于SPI扩展ByteBuddy反射机制调用真实方法(opens new window)
- 《RPC手撸专栏》第41章:基于SPI扩展ASM反射机制调用真实方法(opens new window)
#第九篇:SPI扩展负载均衡策略
- 《RPC手撸专栏》第42章:基于SPI扩展随机算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第43章:基于SPI扩展加权随机算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第44章:基于SPI扩展轮询算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第45章:基于SPI扩展加权轮询算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第46章:基于SPI扩展Hash算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第47章:基于SPI扩展加权Hash算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第48章:基于SPI扩展源IP地址Hash算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第49章:基于SPI扩展源IP地址加权Hash算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第50章:基于SPI扩展Zookeeper的一致性Hash算法负载均衡策略(opens new window)
#第十篇:SPI扩展增强型负载均衡策略
- 《RPC手撸专栏》第51章:基于SPI扩展增强型加权随机算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第52章:基于SPI扩展增强型加权轮询算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第53章:基于SPI扩展增强型加权Hash算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第54章:基于SPI扩展增强型加权源IP地址Hash算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第55章:基于SPI扩展增强型Zookeeper一致性Hash算法负载均衡策略(opens new window)
- 《RPC手撸专栏》第56章:基于SPI扩展最少连接数负载均衡策略(opens new window)
#第十一篇:SPI扩展实现注册中心
#第十二篇:心跳机制
- 《RPC手撸专栏》第58章:心跳机制交互数据模型设计(opens new window)
- 《RPC手撸专栏》第59章:心跳机制增强数据模型与协议解析设计(opens new window)
- 《RPC手撸专栏》第60章:服务消费者向服务提供者发送心跳信息并接收心跳响应(opens new window)
- 《RPC手撸专栏》第61章:服务消费者心跳间隔时间配置化(opens new window)
- 《RPC手撸专栏》第62章:服务提供者向服务消费者发送心跳消息并接收心跳响应(opens new window)
- 《RPC手撸专栏》第63章:服务提供者心跳间隔时间配置化(opens new window)
- 《RPC手撸专栏》第63-X章:阶段性作业(opens new window)
#第十三篇:增强型心跳机制
#第十四篇:重试机制
#第十五篇:整合Spring
- 《RPC手撸专栏》第68章:服务提供者整合Spring(opens new window)
- 《RPC手撸专栏》第69章:基于Spring XML接入服务提供者(opens new window)
- 《RPC手撸专栏》第70章:基于Spring注解接入服务提供者(opens new window)
- 《RPC手撸专栏》第71章:服务消费者整合Spring(opens new window)
- 《RPC手撸专栏》第72章:基于Spring XML接入服务消费者(opens new window)
- 《RPC手撸专栏》第73章:基于Spring注解接入服务消费者(opens new window)
- 《RPC手撸专栏》第73-X章:整合Spring阶段作业(opens new window)
#第十六篇:整合SpringBoot
- 《RPC手撸专栏》第74章:服务提供者整合SpringBoot(opens new window)
- 《RPC手撸专栏》第75章:基于SpringBoot接入服务提供者(opens new window)
- 《RPC手撸专栏》第76章:服务消费者整合SpringBoot(opens new window)
- 《RPC手撸专栏》第77章:基于SpringBoot接入服务消费者(opens new window)
- 《RPC手撸专栏》第77章-X:整合SpringBoot阶段作业(opens new window)
#第十七篇:整合Docker
- 《RPC手撸专栏》第78章:基于Docker接入服务提供者(opens new window)
- 《RPC手撸专栏》第79章:基于Docker接入服务消费者(opens new window)
- 《RPC手撸专栏》第79章-X:整合Docker阶段作业(opens new window)
#第十八篇:整合SpringCloud Alibaba
- 《RPC手撸专栏》第80章:整合SpringCloud Alibaba实际项目(opens new window)
- 《RPC手撸专栏》第80章-X:整合SpringCloud Alibaba阶段作业(opens new window)
#第十九篇:结果缓存
- 《RPC手撸专栏》第81章:结果缓存通用模型设计(opens new window)
- 《RPC手撸专栏》第82章:服务提供者支持结果缓存(opens new window)
- 《RPC手撸专栏》第83章:服务消费者支持结果缓存(opens new window)
- 《RPC手撸专栏》第83章-X:结果缓存阶段作业(opens new window)
#第二十篇:路由控制
- 《RPC手撸专栏》第84章:服务消费者直连某个服务提供者(opens new window)
- 《RPC手撸专栏》第85章:服务消费者直连多个服务提供者(opens new window)
- 《RPC手撸专栏》第85章-X:路由控制阶段作业(opens new window)
#第二十一篇:延迟连接
- 《RPC手撸专栏》第86章:服务消费者支持延迟连接服务提供者(opens new window)
- 《RPC手撸专栏》第87章:服务消费者支持非延迟连接服务提供者(opens new window)
- 《RPC手撸专栏》第87章-X:延迟连接阶段作业(opens new window)
#第二十二篇:并发控制
- 《RPC手撸专栏》第88章:并发控制基础模型设计(opens new window)
- 《RPC手撸专栏》第89章:服务提供者支持并发控制(opens new window)
- 《RPC手撸专栏》第90章:服务消费者支持并发控制(opens new window)
- 《RPC手撸专栏》第90章-X:并发控制阶段作业(opens new window)
#第二十三篇:流控分析
- 《RPC手撸专栏》第91章:流控分析后置处理器模型设计(opens new window)
- 《RPC手撸专栏》第92章:服务提供者整合流控分析(opens new window)
- 《RPC手撸专栏》第93章:服务消费者整合流控分析(opens new window)
- 《RPC手撸专栏》第93章-X:流控分析阶段作业(opens new window)
#第二十四篇:连接控制
- 《RPC手撸专栏》第94章:连接控制基础模型设计(opens new window)
- 《RPC手撸专栏》第95章:服务提供者整合连接控制(opens new window)
- 《RPC手撸专栏》第95章-X:连接控制阶段作业(opens new window)
#第二十五篇:SPI扩展连接淘汰策略
- 《RPC手撸专栏》第96章:基于SPI扩展最早连接淘汰策略(opens new window)
- 《RPC手撸专栏》第97章:基于SPI扩展最晚连接淘汰策略(opens new window)
- 《RPC手撸专栏》第98章:基于SPI扩展先进先出连接淘汰策略(opens new window)
- 《RPC手撸专栏》第99章:基于SPI扩展使用次数最少连接淘汰策略(opens new window)
- 《RPC手撸专栏》第100章:基于SPI扩展最近未被使用连接淘汰策略(opens new window)
- 《RPC手撸专栏》第101章:基于SPI扩展随机连接淘汰策略(opens new window)
- 《RPC手撸专栏》第102章:基于SPI扩展拒绝连接淘汰策略(opens new window)
- 《RPC手撸专栏》第102章-X:SPI扩展连接拒绝策略阶段作业(opens new window)
#第二十六篇:数据缓冲
- 《RPC手撸专栏》第103章:数据缓冲基础模型设计(opens new window)
- 《RPC手撸专栏》第104章:服务提供者整合数据缓冲(opens new window)
- 《RPC手撸专栏》第105章:服务消费者整合数据缓冲(opens new window)
- 《RPC手撸专栏》第105章-X:数据缓冲阶段作业(opens new window)
#第二十七篇:服务容错(降级)
- 《RPC手撸专栏》第106章:服务容错设计与研发(opens new window)
- 《RPC手撸专栏》第107章:服务容错效果测试(opens new window)
- 《RPC手撸专栏》第108章:服务容错失效问题修复(opens new window)
- 《RPC手撸专栏》第108章-X:服务容错阶段作业(opens new window)
#第二十八篇:服务限流
- 《RPC手撸专栏》第109章:服务限流基础模型设计(opens new window)
- 《RPC手撸专栏》第110章:服务提供者整合服务限流(opens new window)
- 《RPC手撸专栏》第111章:服务消费者整合服务限流(opens new window)
- 《RPC手撸专栏》第111章-X:服务限流阶段作业(opens new window)
#第二十九篇:基于SPI扩展限流策略
- 《RPC手撸专栏》第112章:基于SPI扩展Semaphore限流策略(opens new window)
- 《RPC手撸专栏》第113章:基于SPI扩展Guava限流策略(opens new window)
- 《RPC手撸专栏》第113章-X:基于SPI扩展限流策略阶段作业(opens new window)
#第三十篇:超出限流规则
- 《RPC手撸专栏》第114章:服务提供者超出限流上限触发的规则(opens new window)
- 《RPC手撸专栏》第115章:服务消费者超出限流上限触发的规则(opens new window)
- 《RPC手撸专栏》第115章-X:超出限流规则阶段作业(opens new window)
#第三十一篇:服务熔断
- 《RPC手撸专栏》第116章:服务熔断基础模型设计(opens new window)
- 《RPC手撸专栏》第117章:服务提供者整合服务熔断(opens new window)
- 《RPC手撸专栏》第118章:服务消费者整合服务熔断(opens new window)
- 《RPC手撸专栏》第118章-X:服务熔断阶段作业(opens new window)
#第三十二篇:基于SPI扩展熔断策略
#第三十三篇:异常监控
- 《RPC手撸专栏》第120章:异常监控后置处理器基础模型设计(opens new window)
- 《RPC手撸专栏》第121章:服务提供者整合异常监控(opens new window)
- 《RPC手撸专栏》第122章:服务消费者整合异常监控(opens new window)
- 《RPC手撸专栏》第122章-X:异常监控阶段作业(opens new window)
#维护篇:持续维护篇
- 《RPC手撸专栏》第fix-01章:修复服务消费者读取配置优先级的问题(opens new window)
- 《RPC手撸专栏》第fix-02章:修复Zookeeper一致性Hash负载均衡泛型类型不匹配的问题(opens new window)
- 《RPC手撸专栏》第fix-03章:修复自定义扫描器递归扫描文件标识不起作用的问题(opens new window)
- 《RPC手撸专栏》第fix-04章:修复基于SpringBoot启动服务消费者Netty Group多次连接的问题(opens new window)
- 《RPC手撸专栏》第fix-05章:修复基于计数器的限流策略不起作用的问题(opens new window)
- 《RPC手撸专栏》第fix-06章:修复基于SpringBoot启动服务消费者无法同时连接多个服务提供者的问题(opens new window)
- 《RPC手撸专栏》第fix-07章:更新基于Semaphore的限流策略(opens new window)
- 《RPC手撸专栏》第fix-08章:优化服务熔断半开启状态的执行逻辑(opens new window)