(2) 对于分布式调度系统的主要功能和需求分析。
(3) 系统的架构框架及概要设计,及大致的问题解决方案,同时还有不同方法 的差异区别。
(4) 详细的分析分布式调度系统的设计与实现,包括系统逻辑、业务流程、各 个部分的具体功能设计和实现及核心代码等。
(5) 对整个系统的基本流程测试以及各个功能部分和中间结果的测试和分析。
(6) 对整体系统进行总结,以及它存在的优缺点还有如何可以更好的改进和完 善。
2 概念介绍与技术分析
2。1 相关概念
2。1。1 分布式处理
分布式处理是将多台异地计算机主机或者部件资源通过网络连接起来,在统 一的控制和管理下去同时运行和完成大规模的某项或多项作业任务[3],进而提高 系统的性能和效率。
2。1。2 集群技术
集群技术一组相互连接的计算机集群,它们对外是统一的整体,内部具有独 立性,每个节点可以存储和管理本地的数据、作业和系统,通过集群内各个主机 的连接合作和协调提高系统的整体性能和效率,同时可以进行内部节点的扩展或 删除。
2。1。3 分布式锁
分布式锁是一种用于控制分布式系统间对于共享资源访问的锁机制,通过锁 的获取来获得访问资源空间的权限,这样就保证了分布式系统可以互斥的访问和 修改共享资源[4],进而保证了资源及数据的一致性。文献综述
2。1。4 分布式消息中间件
分布式消息中间件是用来解决分布式系统间的通讯问题的一种协调服务,它 可以保证消息的同步和异步传输,消息传输的安全性以及消息出错和丢失后的重 发,还可通过使用消息序号实现消息的顺序传输,同时还能实现消息的发布与订 阅,接收方可以从发送方发出的通知中接收到所有提前订阅的部分通知。
2。1。5 容灾
容灾是指系统有一定的容错能力,当系统的某个部分出现异常时,整个系统 可以通过切换、转移和备份的方式保持系统的正常运行,避免系统的崩溃和数据 的丢失。容灾在数据方面的应用通常使用复制拷贝和异地备份的方法,使得数据 可用而不受破坏和丢失。容灾在系统上的应用通常通过异地节点的状态数据同步, 保证系统在出现异常时可以同步保存当前状态,在异地从当前状态下继续正常工 作。
2。1。6 负载均衡
负载均衡是通过一定的算法和分担技术,将外部的请求尽量均匀的分配到集 群中的节点主机,避免请求和负载的过度集中以造成通信的堵塞和系统节点的崩 溃。负载均衡的目的是充分使用各个部分的性能,使资源最大化的利用,从而使 系统运行更加高效和稳定[5]。
2。2 核心技术
Zookeeper 特点如下:
① 最终一致性:对外提供统一的视图
② 可靠性:多台服务器同步状态
③ 原子性:事务只能成功或失败
④ 顺序性:事务顺序执行来`自+优-尔^论:文,网www.youerw.com +QQ752018766-
⑤ 高效性:存储在内存中,读写速度快
Zookeeper 是一个解决分布式系统间的通讯问题的一种协调服务框架, Zookeeper 集群中有很多服务器,但是对外却是一个整体的视图,提供统一的接 口,内部又有不同的身份和状态,分为有 Leader 和 Follower,其中 Leader 作为 集群的领导者,主要负责进行选举投票的提出,以及最终的决议,并且还要更新 本服务器的系统状态,Follower 主要用于接收其他主机的请求并进行回馈,同步 Leader 的状态,而且在 Leader 选择过程中参与投票选举[6]。Zookeeper 为了保证 所有的事务具有唯一性,采用了依次递增的 id 序号来标识事务。当服务刚启动 或是 Leader 坏掉时,进入基于 paxos 算法的选主过程。首先每台主机启动一个线 程,向所有的服务器主机进行询问,每台主机收到询问后回复一张自己提议的 Leader 选票(一开始提议本机为 Leader),选举线程收到回复后获取对方主机的 序号,并存储在询问主机列表中,同时把对方提议的 Leader 选票信息存在本次 的投票列表中,收到所有回复和选票信息后,选出序号最大的一台主机,将它作 为下次要投票的 Leader 选择,这样不断循环持续下去,如果此时有 n/2+1 的主机 推荐某一台主机为 Leader,则结束循环,设置这台主机为 Leader 并且结束 Leader 选择过程,否则一直到选出为止[7]。在这期间,Zookeeper 会把事务进行存储日志 记录下来,并且定期进行快照处理,如果有刚修复好的或刚启动的主机还会从系 统的磁盘快照中获取当前的数据,从而帮助他们快速的恢复到目前的会话和数据 信息。