分布式角色协同控制系统stage的设计与实现
发布时间:2017-10-17 19:01
本文关键词:分布式角色协同控制系统stage的设计与实现
更多相关文章: 分布式系统 同步 COM组件 Proactor RPC
【摘要】:随着互联网的发展以及移动互联网时代的到来,各应用领域如电子商务、网络社交、搜索引擎提供商等都积累了大量的数据并且迫切期望对已有的数据进行高效的分析以产出学术和商业价值,信息技术的发展进入大数据处理时代。传统的单机串行化的数据处理方式已无法满足日益增长的数据处理要求,分布式技术越来越受到人们的关注。而同步是分布式系统中一个重要的概念,代表了分布式系统中各个单机节点之间协同工作的一种方式。与单机系统不同,由于分布式系统中各个节点之间的网络通信是不稳定的,如何保证分布式环境中通信错误造成的影响不至于让整个分布式系统紊乱掉,就是同步机制要研究的课题,也是任何分布式系统的基础。本文将阐述的stage,就是一个提供了分布式同步服务的系统。文章将分几部分,对国内外相关技术,stage的功能需求,设计和实现进行详细的叙述。stage自底向上,层层依赖,主要由四大子系统构成。第一层是基于COM的组件框架OCF,基于这个框架的编写和使用规范,可以很容易地开发出高可重用,高可扩展的组件应用;第二层是基础网络通信引擎,它是基于Proactor的异步事件驱动模型的实现,使用了多线程下的I/O复用模型,充分利用了服务器硬件资源,提高了系统吞吐量;第三层是类RPC的消息通信组件,它使用了ProtoBuf提供的序列化反序列化机制以及自动生成相关代码的生成器,并集成了第二层的网络通信引擎,让开发者只需编写简单的IDL文件,即可通过自动生成代码向消息通信组件中添加新的服务;第四层则是stage的应用实现,它采用了Raft算法和类POSIX Thread的接口,并作为一种服务添加到了消息通信组件中,为用户提供了同步服务。stage系统在Free BSD下使用C++进行编写,采用了完全异步的模型,并使用回调的方式完成业务逻辑,使得系统中的阻塞点尽可能的少,提高了系统的效率。经测试,stage在功能和性能上能够满足用户在分布式系统中所需同步服务的需求。
【关键词】:分布式系统 同步 COM组件 Proactor RPC
【学位授予单位】:电子科技大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP311.52
【目录】:
- 摘要5-6
- ABSTRACT6-12
- 第一章 绪论12-16
- 1.1 选题背景和意义12
- 1.2 国内外研究现状12-14
- 1.3 课题研究内容14
- 1.4 论文组织结构14-15
- 1.5 本章小结15-16
- 第二章 理论基础及相关技术16-35
- 2.1 COM组件16-18
- 2.2 Boost Asio18-20
- 2.3 RPC20-21
- 2.4 ProtoBuf21
- 2.5 分布式一致性算法21-27
- 2.5.1 Paxos22-24
- 2.5.1.1 角色22-23
- 2.5.1.2 流程23-24
- 2.5.2 Raft24-27
- 2.5.2.1 角色24-25
- 2.5.2.2 子问题25
- 2.5.2.3 流程25-26
- 2.5.2.4 Leader Election26
- 2.5.2.5 Log Replication26-27
- 2.5.2.6 安全性27
- 2.6 典型的分布式同步系统27-29
- 2.6.1 Chubby27-29
- 2.6.2 Zookeeper29
- 2.7 OCF即相关子系统介绍29-33
- 2.7.1 OCF库设计原理30-31
- 2.7.2 基础网络通信引擎IoEngine31-32
- 2.7.3 消息通信组件Channel32-33
- 2.8 本章小结33-35
- 第三章 stage系统需求分析35-39
- 3.1 stage系统设计目标35-36
- 3.1.1 功能需求35-36
- 3.1.2 非功能需求36
- 3.2 stage系统用例图36-38
- 3.3 本章小结38-39
- 第四章 stage系统总体设计39-53
- 4.1 总体设计思路39-40
- 4.2 总体系统框架40-41
- 4.3 模块设计41-52
- 4.3.1 stage网络服务模块设计41
- 4.3.2 Raft算法模块设计41
- 4.3.3 Mutex管理模块设计41-47
- 4.3.3.1 mutexInit流程设计42-43
- 4.3.3.2 mutexDestroy流程设计43
- 4.3.3.3 mutexLock流程设计43-44
- 4.3.3.4 mutexTryLock流程设计44-45
- 4.3.3.5 mutexUnlock流程设计45-47
- 4.3.4 Cond管理模块设计47-51
- 4.3.4.1 condInit流程设计47-48
- 4.3.4.2 condDestroy流程设计48
- 4.3.4.3 condWait流程设计48-49
- 4.3.4.4 condSignal流程设计49-50
- 4.3.4.5 condBroadcast流程设计50-51
- 4.3.5 客户端模块设计51-52
- 4.4 本章小结52-53
- 第五章 stage系统详细设计与实现53-74
- 5.1 编程环境53
- 5.2 stage总体模块设计53-55
- 5.3 底层基础模块介绍55-57
- 5.3.1 基础网络通信引擎IoEngine55-56
- 5.3.2 消息通信组件Channel56-57
- 5.4 stage网络服务模块详细设计与实现57-65
- 5.4.1 stage网络协议58-61
- 5.4.1.1 ServerMessage介绍58-59
- 5.4.1.2 ClientMessgae介绍59-61
- 5.4.2 stage网络服务模块61-65
- 5.4.2.1 StagePerformer介绍62-64
- 5.4.2.2 PBHelper介绍64
- 5.4.2.3 其它64-65
- 5.5 Raft算法模块详细设计与实现65-66
- 5.6 Mutex管理模块详细设计与实现66-67
- 5.7 Cond管理模块详细设计与实现67-68
- 5.8 客户端模块的详细设计与实现68-70
- 5.9 重要执行流程70-73
- 5.9.1 stage系统启动流程70-71
- 5.9.2 stage系统内部选举流程71-72
- 5.9.3 客户端请求操作流程72-73
- 5.10 本章小结73-74
- 第六章 系统测试74-88
- 6.1 测试环境74
- 6.2 功能测试74-83
- 6.2.1 Mutex操作相关测试75-78
- 6.2.1.1 mutexInit测试75
- 6.2.1.2 mutexDestroy测试75-76
- 6.2.1.3 mutexLock测试76
- 6.2.1.4 mutexTryLock测试76-77
- 6.2.1.5 mutexUnlock测试77-78
- 6.2.1.6 mutex综合测试78
- 6.2.2 Cond操作相关测试78-81
- 6.2.2.1 cond Init测试78-79
- 6.2.2.2 condDestroy测试79
- 6.2.2.3 condWait测试79-80
- 6.2.2.4 condSignal测试80
- 6.2.2.5 condBroadcast测试80-81
- 6.2.2.6 cond综合测试81
- 6.2.3 其它81-83
- 6.3 性能测试83-87
- 6.3.1 网络传输效率测试83-85
- 6.3.1.1 测试方法83
- 6.3.1.2 测试结果对比与分析83-85
- 6.3.2 吞吐量测试85-87
- 6.3.2.1 测试方法85-86
- 6.3.2.2 测试结果与对比分析86-87
- 6.4 本章小结87-88
- 第七章 结论和展望88-90
- 致谢90-91
- 参考文献91-94
- 攻硕期间取得的研究成果94-95
【参考文献】
中国期刊全文数据库 前1条
1 高曙明,何发智;分布式协同设计技术综述[J];计算机辅助设计与图形学学报;2004年02期
,本文编号:1050494
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/1050494.html