基于事件驱动的运维管理和服务注册系统的设计与实现
发布时间:2021-07-09 18:50
在字节跳动公司搜索系统中,分布式搜索检索(Search Retrieval)服务是其用于获取搜索查询结果的子系统。为了保证检索服务的稳定运行,以及上下游服务能够正确找到其服务实例,开发及运维人员需要一套与业务逻辑耦合度较低的运维管理系统,为其提供运维支持和服务治理功能。因此,运维管理系统需要在尽量不入侵业务代码的情况下接入系统完成运维操作,并为业务服务提供准确的元信息描述。鉴于此,本文以事件(Event)表示业务系统状态发生变化时,系统或运维人员发出的通知,提出采用基于事件驱动(Event-Driven)架构模式进行系统的架构设计。各类事件所携带的不同参数及其值表示相应运维任务涉及的目标和具体操作,由系统内各个功能模块完成事件的发送、接收和处理,进而执行用户所需的各类运维操作。通过事件携带命令和参数进行运维系统和业务系统之间的通信,期望能够在为业务系统提供运维支持的同时降低二者的耦合,减少运维系统接入业务所需的成本。同时,为业务运行时所涉及包括集群、数据集合和服务实例在内各个实体,系统维护能够准确描述业务服务实例当前状态信息的元数据,帮助业务系统完成服务注册。系统主体采用Python2...
【文章来源】:南京大学江苏省 211工程院校 985工程院校 教育部直属院校
【文章页数】:84 页
【学位级别】:硕士
【部分图文】:
图2.1:调度拓扑的事件驱动模式架构图??
装了应用的业务逻辑,接受处理事件并执行特定任务。??代理拓扑没有中心事件调度模块,适用于处理简单的事件流程,其典型的??系统架构如图2.2所示。系统中只有两类组件,分别是组织成链式结构的事件中??通道及各个事件处理模块。其中,每个事件处理器都负责处理并发时间并发布??交由其他处理模块接收的新事件。??事件处理模块??(事件麵??-〇〔了-模块)〔了’块〕??厂(子模块)(子模块)????(mnmm?()?1==^??in牛处理模块?事件处理模块??(555?〇-(事?ffii?道(1??(子模块)f子模块)?厂[子模块)(子模块)??(事件通道D??事件处理模块?事件处理模块??<3-*??〔子機)〇—〇?-〇?(事件通道u?%?(子模块)〇模块)??(子模块)[子模块)?(755)[子模块)??图2.2:代理拓扑的事件驱动模式架构图??总的来说,采用事件驱动架构设计的系统具备快速响应环境变化的能力。??由于系统中负责执行业务逻辑的事件处理模块由一系列功能单一,相互独立的??组件组成,相互之间通过事件消息的传递而联系,因此个别事件处理模块的修??改不会影响其他模块,且每个事件处理模块都具备单独扩展的能力,能够在更??加细粒度的维度上实现系统的扩展,己经受到广泛的应用。杨志义等提出一种??面向服务的事件驱动架构(Service?Oriented?Event?Driven?Architecture,SOEDA)??具备较好的互操作性和较高的软件如用能力
图3.8:运维任务状态转换图??系统由事件总线中提交的任务和各个任务的状态变迁驱动。任务的各个状??态及其相互转换如图3.8所示。??当一个任务首次被提交时,可能是已提交(SUBMITTED)、阻塞(PENDING)??或是调度中(SCHEDULING)中的一种。若任务设定了开始时间则其被提交为??调度中的状态,当到达任务指定的幵始时间后变更为已提交状态等待下一步调??度。若任务提交时指定了其需要依赖的任务,则被提交为阻塞状态等待,当其??依赖的任务都结束后会转变为己提交等待调度,或是转变为废弃(ABORT)状??态终止该任务。??已提交是任务提交的缺省状态,调度模块会在此进行该运维操作的约束检??查,通过所有约束检查的任务状态将变更为可运行(RUNNABLE),否则会被??执为己取消(CANCELED),结束该任务。??状态为可运行的任务会由负责该任务的相应插件
【参考文献】:
期刊论文
[1]一种云计算时代的DevOps自动化运维平台[J]. 樊炼,廖振松. 电信工程技术与标准化. 2018(11)
[2]自动化运维管理平台设计及实现[J]. 冷迪. 技术与市场. 2018(11)
[3]插件技术、分层技术应用于计算机软件技术中的价值探讨[J]. 曹华珠. 信息与电脑(理论版). 2018(15)
[4]大数据智能运维系统设计及应用[J]. 毛开梅. 电子测试. 2018(14)
[5]基于插件技术的软件架构设计及应用[J]. 侯聪聪. 电子技术与软件工程. 2018(11)
[6]浅析RAFT分布式算法[J]. 鲁子元. 信息技术. 2017(09)
[7]基于事件驱动CPS体系架构的层级模型[J]. 赵新,尹忠海,周诚,刘斌,李明杰. 计算机工程. 2018(04)
[8]基于Zookeeper框架实现MySQL分布式数据库集群[J]. 张旭刚,李东辉,俞俊,朱广新,郑磊. 计算机与数字工程. 2016(09)
[9]基于Zookeeper综合任务调度平台的设计与应用[J]. 王文峰,袁庆祝,陆佃龙. 信息技术. 2016(06)
[10]使用插件技术架构业务型应用软件[J]. 王兴会,邢艺兰,李建义. 北华航天工业学院学报. 2016(01)
本文编号:3274295
【文章来源】:南京大学江苏省 211工程院校 985工程院校 教育部直属院校
【文章页数】:84 页
【学位级别】:硕士
【部分图文】:
图2.1:调度拓扑的事件驱动模式架构图??
装了应用的业务逻辑,接受处理事件并执行特定任务。??代理拓扑没有中心事件调度模块,适用于处理简单的事件流程,其典型的??系统架构如图2.2所示。系统中只有两类组件,分别是组织成链式结构的事件中??通道及各个事件处理模块。其中,每个事件处理器都负责处理并发时间并发布??交由其他处理模块接收的新事件。??事件处理模块??(事件麵??-〇〔了-模块)〔了’块〕??厂(子模块)(子模块)????(mnmm?()?1==^??in牛处理模块?事件处理模块??(555?〇-(事?ffii?道(1??(子模块)f子模块)?厂[子模块)(子模块)??(事件通道D??事件处理模块?事件处理模块??<3-*??〔子機)〇—〇?-〇?(事件通道u?%?(子模块)〇模块)??(子模块)[子模块)?(755)[子模块)??图2.2:代理拓扑的事件驱动模式架构图??总的来说,采用事件驱动架构设计的系统具备快速响应环境变化的能力。??由于系统中负责执行业务逻辑的事件处理模块由一系列功能单一,相互独立的??组件组成,相互之间通过事件消息的传递而联系,因此个别事件处理模块的修??改不会影响其他模块,且每个事件处理模块都具备单独扩展的能力,能够在更??加细粒度的维度上实现系统的扩展,己经受到广泛的应用。杨志义等提出一种??面向服务的事件驱动架构(Service?Oriented?Event?Driven?Architecture,SOEDA)??具备较好的互操作性和较高的软件如用能力
图3.8:运维任务状态转换图??系统由事件总线中提交的任务和各个任务的状态变迁驱动。任务的各个状??态及其相互转换如图3.8所示。??当一个任务首次被提交时,可能是已提交(SUBMITTED)、阻塞(PENDING)??或是调度中(SCHEDULING)中的一种。若任务设定了开始时间则其被提交为??调度中的状态,当到达任务指定的幵始时间后变更为已提交状态等待下一步调??度。若任务提交时指定了其需要依赖的任务,则被提交为阻塞状态等待,当其??依赖的任务都结束后会转变为己提交等待调度,或是转变为废弃(ABORT)状??态终止该任务。??已提交是任务提交的缺省状态,调度模块会在此进行该运维操作的约束检??查,通过所有约束检查的任务状态将变更为可运行(RUNNABLE),否则会被??执为己取消(CANCELED),结束该任务。??状态为可运行的任务会由负责该任务的相应插件
【参考文献】:
期刊论文
[1]一种云计算时代的DevOps自动化运维平台[J]. 樊炼,廖振松. 电信工程技术与标准化. 2018(11)
[2]自动化运维管理平台设计及实现[J]. 冷迪. 技术与市场. 2018(11)
[3]插件技术、分层技术应用于计算机软件技术中的价值探讨[J]. 曹华珠. 信息与电脑(理论版). 2018(15)
[4]大数据智能运维系统设计及应用[J]. 毛开梅. 电子测试. 2018(14)
[5]基于插件技术的软件架构设计及应用[J]. 侯聪聪. 电子技术与软件工程. 2018(11)
[6]浅析RAFT分布式算法[J]. 鲁子元. 信息技术. 2017(09)
[7]基于事件驱动CPS体系架构的层级模型[J]. 赵新,尹忠海,周诚,刘斌,李明杰. 计算机工程. 2018(04)
[8]基于Zookeeper框架实现MySQL分布式数据库集群[J]. 张旭刚,李东辉,俞俊,朱广新,郑磊. 计算机与数字工程. 2016(09)
[9]基于Zookeeper综合任务调度平台的设计与应用[J]. 王文峰,袁庆祝,陆佃龙. 信息技术. 2016(06)
[10]使用插件技术架构业务型应用软件[J]. 王兴会,邢艺兰,李建义. 北华航天工业学院学报. 2016(01)
本文编号:3274295
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3274295.html