摘要 | 第4-5页 |
abstract | 第5页 |
第一章 绪论 | 第8-11页 |
1.1 选题背景及研究意义 | 第8-9页 |
1.2 国内外研究现状 | 第9页 |
1.3 本文主要工作 | 第9-11页 |
第二章 相关理论与技术研究 | 第11-20页 |
2.1 RPC服务器简介 | 第11页 |
2.2 RPC远程过程调用 | 第11-13页 |
2.2.1 RPC远程过程调用原理 | 第11-12页 |
2.2.2 参数传递机制 | 第12-13页 |
2.3 负载均衡 | 第13-16页 |
2.3.1 负载均衡原理 | 第13页 |
2.3.2 轮询法 | 第13-14页 |
2.3.3 最少连接数法 | 第14-16页 |
2.4 网络I/O模型演进 | 第16-19页 |
2.4.1 传统的BIO模型 | 第16-17页 |
2.4.2 伪异步I/O模型 | 第17页 |
2.4.3 NIO模型 | 第17-19页 |
2.5 本章小结 | 第19-20页 |
第三章 RPC服务器的需求分析与架构设计 | 第20-29页 |
3.1 服务器的需求分析 | 第20-21页 |
3.1.1 服务器的功能需求分析 | 第20页 |
3.1.2 服务器的性能需求分析 | 第20-21页 |
3.2 服务器总体架构设计与实现 | 第21-24页 |
3.2.1 服务器总体架构 | 第21-22页 |
3.2.2 RPC服务器远程调用流程 | 第22-23页 |
3.2.3 开发环境搭建 | 第23-24页 |
3.3 Netty框架技术 | 第24-28页 |
3.3.1 NettyNIO模型 | 第24-26页 |
3.3.2 Netty的线程模型 | 第26-27页 |
3.3.3 Netty的ChannelPipeline处理链 | 第27-28页 |
3.4 本章小结 | 第28-29页 |
第四章 基于Netty的RPC服务器的实现 | 第29-61页 |
4.1 消息定义 | 第29页 |
4.2 编解码模块 | 第29-36页 |
4.2.1 TCP半包解码 | 第30-33页 |
4.2.2 TCP消息长度编码 | 第33-34页 |
4.2.3 消息编解码 | 第34-36页 |
4.3 通信调度模块 | 第36-45页 |
4.3.1 I/O线程模型设计 | 第36-37页 |
4.3.2 服务端I/O处理 | 第37-41页 |
4.3.3 客户端I/O处理 | 第41-43页 |
4.3.4 时间轮和定时任务处理 | 第43-45页 |
4.4 服务发布和订阅 | 第45-47页 |
4.4.1 服务发布过程 | 第45-46页 |
4.4.2 服务订阅过程 | 第46-47页 |
4.5 业务处理模块 | 第47-50页 |
4.5.1 线程池设计 | 第47-49页 |
4.5.2 RPC消息处理过程 | 第49-50页 |
4.6 服务端调用处理 | 第50-54页 |
4.7 客户端调用处理 | 第54-57页 |
4.7.1 服务订阅 | 第54-56页 |
4.7.2 远程响应消息处理 | 第56-57页 |
4.8 长连接服务 | 第57-60页 |
4.8.1 长连接原理 | 第57-58页 |
4.8.2 心跳检测机制 | 第58-60页 |
4.9 本章小结 | 第60-61页 |
第五章 基于Netty的RPC服务器的性能测试与优化 | 第61-73页 |
5.1 RPC服务器长连接性能测试 | 第61-66页 |
5.1.1 心跳检测和重连机制测试 | 第61-65页 |
5.1.2 长连接性能测试 | 第65-66页 |
5.2 RPC服务器消息序列化性能测试 | 第66-68页 |
5.2.1 RPC服务器序列化性能对比 | 第66-68页 |
5.3 RPC服务器并发性能测试 | 第68-70页 |
5.4 RPC服务器的优化 | 第70-72页 |
5.5 本章小结 | 第72-73页 |
第六章 总结与展望 | 第73-75页 |
6.1 总结 | 第73-74页 |
6.2 展望 | 第74-75页 |
参考文献 | 第75-77页 |
附录1 攻读硕士学位期间撰写的论文 | 第77-78页 |
致谢 | 第78页 |