基于Boost的高性能Tracker服务器设计与实现以及压力测试

基于Boost的高性能Tracker服务器设计与实现以及压力测试

论文摘要

Boost是一套开放源代码、高度可移植的C++库。其内容广泛,函数绑定、智能指针、数据结构、图算法、字符串处理、语法分析、网络编程……等均包含在内。ASIO是Boost库中基于异步IO模型的可移植的网络编程库。Tracker服务器作为P2P应用中的关键组成部分,其主要作用是跟踪网络中每个节点的资源信息并提供检索服务。Tracker服务器作为P2P网络的入口,其性能、容量,安全性以及健壮性是至关重要的。本文探讨如何利用上述库设计并实现一个可无限扩容的高性能Tracker服务器系统。首先从健壮性的角度比较了多线程模型和单线程异步模型之间的优劣。然后比较了C++标准模板库STL中的HashMap以及Boost库中多索引容器的插入、删除、查询的性能。并选定了Boost作为基本库,使用ASIO单线程异步模型,用多索引容器建立资源和节点的对应关系。并针对资源数量远远大于用户数量这个事实进行方案的设计和优化。为了对系统进行性能测试和正确性测试,本文借鉴JSON的语法,设计并实现了一种支持自定义模式和表达式计算的定义式测试脚本,可以定义每个包的具体内容、发包频率、节点生命周期等一系列参数。

论文目录

  • 摘要
  • ABSTRACT
  • 1 绪论
  • 1.1 课题背景
  • 1.2 研究意义
  • 1.3 本文研究内容与结构
  • 2 技术背景介绍
  • 2.1 Boost 介绍
  • 2.2 JSON 介绍
  • 2.3 ASIO 介绍
  • 2.4 服务器并发模型
  • 2.5 本章小结
  • 3 系统分析与架构
  • 3.1 系统各模块交互
  • 3.2 服务器的消息分类
  • 3.3 内部数据结构
  • 3.4 服务器对消息的处理
  • 3.5 服务器架构
  • 3.6 安全问题
  • 3.7 服务器统计信息收集
  • 3.8 本章小结
  • 4 测试模块分析与设计
  • 4.1 需求分析
  • 4.2 脚本语法定义
  • 4.3 设计与实现
  • 4.4 本章小结
  • 5 系统性能测试
  • 5.1 测试 UUIDHashSet
  • 5.2 测试服务器性能
  • 5.3 在线测试单个服务器
  • 5.4 本章小结
  • 6 总结与展望
  • 6.1 工作总结
  • 6.2 发展方向
  • 致谢
  • 参考文献
  • 相关论文文献

    标签:;  ;  ;  ;  ;  

    基于Boost的高性能Tracker服务器设计与实现以及压力测试
    下载Doc文档

    猜你喜欢