一种基于有限状态机的云缓存数据库施工处理方法及装置
文献发布时间:2023-06-19 19:28:50
技术领域
本发明涉及IT与软件开发技术领域,尤其涉及一种基于有限状态机的云缓存数据库施工处理方法及装置。
背景技术
对于云缓存数据库等组件一般都是通过云平台即服务(PaaS)的模式对外交付,也就是让租户在统一PaaS平台的门户界面上选中相应产品,然后通过点击实例开通等按钮下发施工单进而由后台服务程序完成对组件的部署施工。无论是公有云还是私有云场景,一般的部署架构是PaaS平台位于管理公共区,组件的管理控制台服务位于资源的预置区,实际部署实例节点的资源主机位于租户VPC区,租户的开通、注销等施工单通过PaaS平台下发到组件控制台,具体施工逻辑处理由组件控制台的管控服务完成。
目前,云缓存数据库产品的开通、注销、暂停、恢复、重启、扩缩容等施工操作往往是资源预置区的组件管控服务利用SSH协议同租户VPC区的主机资源进行交互,通过近乎流水线式的编程处理逻辑进行施工功能实现,安全性低、代码实现重且不易解耦与复用,扩展性和后期维护成本均有很大挑战。
发明内容
针对现有技术中存在的问题,本发明实施例提供一种基于有限状态机的云缓存数据库施工处理方法及装置。
本发明实施例提供一种基于有限状态机的云缓存数据库施工处理方法,包括:
组件控制台接收租户通过PaaS平台下发的工单信息,并根据所述工单信息确定对应的施工操作,调用底层Agent代理服务实施所述施工操作;
所述施工操作,包括:
所述组件控制台基于所述工单信息完成工单信息处理,得到处理结果,所述工单信息处理包括:解析工单格式、校验工单参数、判断施工类型以及保存数据信息;
所述组件控制台将底层Agent代理服务部署至底层的租户VPC区,并在所述租户VPC区基于所述处理结果进行异步施工,所述异步施工通过在Zookeeper上注册节点进行触发,包括:根据所述处理结果确定施工类型,进而确定对应的状态集和状态间转换为所述异步施工的动作集;
所述异步施工结束后,将施工结果反馈至所述组件控制台,并通过所述施工结果更新施工状态至所述PaaS平台。
在其中一个实施例中,所述异步施工,包括:
主机环境初始化、根据所述处理结果创建实例节点、建立节点关系、配置统一访问层。
在其中一个实施例中,所述方法还包括:
当根据所述处理结果中,确定所述工单信息对应的施工类型依次分别为单机类型、准备类型、只读版类型时,则所述异步施工的动作集依次分别为单次、两次和多次的节点创建动作;
当根据所述处理结果中,确定所述工单信息对应的施工类型依次分别为集群版类型时,则所述异步施工的动作集为执行多次创建分片动作,进而执行创建集群代理节点动作。
在其中一个实施例中,所述方法还包括:
所述组件控制台与所述租户VPC区通过grpc协议通信。
在其中一个实施例中,所述方法还包括:
在所述异步施工过程中,通过MySQL存储系统对所述工单信息的施工流历史状态进行记录。
在其中一个实施例中,所述方法还包括:
当所述工单信息处理过程中出现错误响应时,所述组件控制台向所述PaaS平台发送工单信息出错,并停止进入所述异步施工;
当所述异步施工过程中出现错误响应时,根据所述错误响应返回当前施工步骤出错,并对所述当前施工步骤进行修复,并在修复完成后重新注册Zookeeper上的节点触发所述工单信息接续执行。
本发明实施例提供一种基于有限状态机的云缓存数据库施工处理装置,包括:
施工模块,用于组件控制台接收租户通过PaaS平台下发的工单信息,并根据所述工单信息确定对应的施工操作,调用底层Agent代理服务实施所述施工操作;
工单信息处理模块,用于所述组件控制台基于所述工单信息完成工单信息处理,得到处理结果,所述工单信息处理包括:解析工单格式、校验工单参数、判断施工类型以及保存数据信息;
异步施工模块,用于所述组件控制台将底层Agent代理服务部署至底层的租户VPC区,并在所述租户VPC区基于所述处理结果进行异步施工,所述异步施工通过在Zookeeper上注册节点进行触发,包括:根据所述处理结果确定施工类型,进而确定对应的状态集和状态间转换为所述异步施工的动作集;
状态更新模块,用于所述异步施工结束后,将施工结果反馈至所述组件控制台,并通过所述施工结果更新施工状态至所述PaaS平台。
在其中一个实施例中,所述装置还包括:
节点创建模块,用于当根据所述处理结果中,确定所述工单信息对应的施工类型依次分别为单机类型、准备类型、只读版类型时,则所述异步施工的动作集依次分别为单次、两次和多次的节点创建动作;
创建分片模块,用于当根据所述处理结果中,确定所述工单信息对应的施工类型依次分别为集群版类型时,则所述异步施工的动作集为执行多次创建分片动作,进而执行创建集群代理节点动作。
本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于有限状态机的云缓存数据库施工处理方法的步骤。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于有限状态机的云缓存数据库施工处理方法的步骤。
本发明实施例提供的一种基于有限状态机的云缓存数据库施工处理方法及装置,组件控制台接收租户通过PaaS平台下发的工单信息,并根据工单信息确定对应的施工操作,调用底层Agent代理服务实施所述施工操作;施工操作,包括:组件控制台基于工单信息完成工单信息处理,得到处理结果,工单信息处理包括:解析工单格式、校验工单参数、判断施工类型以及保存数据信息;组件控制台将底层Agent代理服务部署至底层的租户VPC区,并在所述租户VPC区基于处理结果进行异步施工,异步施工通过在Zookeeper上注册节点进行触发,包括:根据处理结果确定施工类型,进而确定对应的状态集和状态间转换为异步施工的动作集;异步施工结束后,将施工结果反馈至所述组件控制台,并通过施工结果更新施工状态至PaaS平台。这样的优点与改进之处包括:1、将不同版本实例不同类型的施工操作进行步骤拆分并同状态机建立映射关系,将每个施工步骤的粒度细化,针对不同状态之间的转换动作进行对应的编码实现,使施工操作精准可控,且不同施工流程中的相同施工动作可以实现代码复用,既便于开发实现也便于后期维护,大大增强了编码的简易性和扩展性;2、利用Zookeeper的节点监听机制,通过在zookeeper上的节点注册来实现施工状态流转任务的触发启动,大大提高了施工流程调度的自主性和便捷性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于有限状态机的云缓存数据库施工处理方法的流程图;
图2为本发明实施例中一种基于有限状态机的云缓存数据库施工处理方法的整体架构交互图图;
图3为本发明实施例中一种基于有限状态机的云缓存数据库施工处理方法中的施工操作的示例时序图;
图4为本发明实施例中一种基于有限状态机的云缓存数据库施工处理装置的结构图;
图5为本发明实施例中电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种基于有限状态机的云缓存数据库施工处理方法的流程示意图,如图1所示,本发明实施例提供了一种基于有限状态机的云缓存数据库施工处理方法,包括:
步骤S101,组件控制台接收租户通过PaaS平台下发的工单信息,并根据所述工单信息确定对应的施工操作,调用底层Agent代理服务实施所述施工操作。
具体地,本实施例中的基于有限状态机的云缓存数据库施工处理方法可以适配于Redis数据库以及支持其协议的相关衍生云缓存数据库产品,在对外一般采用云平台即服务(PaaS)的模式进行交付,也即租户通过PaaS平台门户下发工单,组件控制台接受并处理工单,进而调用底层Agent代理服务实现对具体实例节点的创建或注销等施工操作。
另外,在施工操作中,基于有限状态机的施工处理逻辑主要由组件控制台后端服务实现,借助MySQL和Zookeeper分别实现对状态集和状态上下文信息的存储以及对施工流的触发调度,具体的整体架构交互图如图2所示。
所述施工操作,包括:
步骤S102,所述组件控制台基于所述工单信息完成工单信息处理,得到处理结果,所述工单信息处理包括:解析工单格式、校验工单参数、判断施工类型以及保存数据信息。
具体地,组件控制台接收到PaaS下发的施工单后,基于工单信息完成工单信息处理,其中,工单信息处理步骤包括析工单格式、校验工单参数、判断施工类型以及保存数据信息,得到处理结果,另外,还可以将工单信息处理同步响应至PaaS平台,使PaaS平台将施工单状态展示如“施工中”。
步骤S103,所述组件控制台将底层Agent代理服务部署至底层的租户VPC区,并在所述租户VPC区基于所述处理结果进行异步施工,所述异步施工通过在Zookeeper上注册节点进行触发,包括:根据所述处理结果确定施工类型,进而确定对应的状态集和状态间转换为所述异步施工的动作集。
具体地,组件控制台将Agent代理服务部署到底层VPC区资源主机上,以供对底层实例资源的操作部署,并在所述租户VPC区基于状态机依次执行后续异步施工操作,同时在Zookeeper上注册节点来触发基于状态机的异步施工流程,其中,异步施工操作基于有限状态机模式,从原始状态经过环境初始化动作转换为初始化就绪状态,然后根据不同实例类型来执行节点创建或集群分片创建等操作,另外,异步施工操作对应到代码实现层面则为各个操作类或操作函数接口,创建流程中彼此间重叠的状态转换均可复用,既降低了代码实现的耦合性,也增强了扩展性和可维护性。
另外,异步施工操作可以包括主机环境初始化、根据处理结果创建实例节点、建立节点关系、配置统一访问层等步骤,并在其中的根据处理结果创建实例节点中,具体包括:对于单机、主备和只读版实例,分别需执行单次、两次和多次的节点创建动作来实现从环境初始化就绪状态到实例节点就绪状态的转换,进而执行配置主备关系动作;对于集群版实例,则需执行多次创建分片动作来实现从环境初始化就绪状态到分片就绪状态的转换,每个分片里面相当于一个主备实例故每个分片的创建相当于执行一次创建主备节点并建立主备关系的流程,多个分片则执行多次创建流程,进而执行创建集群代理节点动作。
另外,资源预置区的组件控制台与租户VPC区资源主机上初始化部署的Agent代理服务通过grpc协议进行通信交互,避免了用ssh协议交互的编码繁琐性,同时增强了通信安全性。
步骤S104,所述异步施工结束后,将施工结果反馈至所述组件控制台,并通过所述施工结果更新施工状态至所述PaaS平台。
具体地,在异步施工结束后,将施工结果反馈至组件控制台,并通过所述施工结果更新施工状态至PaaS平台使其更新施工状态的展示如“施工成功”,至此成功完成实例的开通施工并已可对租户提供服务。另外,若工单解析和参数校验等异步施工之前的任何环节出错则直接返回同步响应结果为失败,不会触发异步施工流程;若异步施工过程中的任何状态转换间的动作执行出错,则会就当前状态异步返回施工响应结果为失败,因每个状态均会在MySQL中存储其上下文,故修复问题后通过重新注册Zookeeper节点来触发工单对应施工流的接续执行。
另外,在异步施工过程中,通过MySQL存储系统对工单信息的施工流历史状态进行记录(若为新工单则历史状态为EMPTY也即原始状态),可以实现从初始或中间某个状态机动作触发执行,这样通过MySQL维护每个施工类型对应的有限状态集、当前施工状态及其上下文信息,可以实现对施工中断、重试等流程处理的幂等与接续操作,避免回退或重复已执行的操作,既提高了施工效率也增强了工单处理的健壮性。
本实施例中的施工操作的示例时序图可以如图3所示,组件控制台接收工单解析校验无误后,发起异步施工流程,首先会在环境初始化时将Agent代理服务部署到底层VPC区资源主机上,以供对底层实例资源的操作部署;然后由组件控制台基于状态机依次执行后续施工操作,资源预置区和租户VPC区之间通过grpc进行通信;最终施工结束后给PaaS平台执行异步回单响应,更新施工状态从而完成产品实例对租户的交付。
本发明实施例提供的一种基于有限状态机的云缓存数据库施工处理方法,组件控制台接收租户通过PaaS平台下发的工单信息,并根据工单信息确定对应的施工操作,调用底层Agent代理服务实施所述施工操作;施工操作,包括:组件控制台基于工单信息完成工单信息处理,得到处理结果,工单信息处理包括:解析工单格式、校验工单参数、判断施工类型以及保存数据信息;组件控制台将底层Agent代理服务部署至底层的租户VPC区,并在所述租户VPC区基于处理结果进行异步施工,异步施工通过在Zookeeper上注册节点进行触发,包括:根据处理结果确定施工类型,进而确定对应的状态集和状态间转换为异步施工的动作集;异步施工结束后,将施工结果反馈至所述组件控制台,并通过施工结果更新施工状态至PaaS平台。这样的优点与改进之处包括:1、将不同版本实例不同类型的施工操作进行步骤拆分并同状态机建立映射关系,将每个施工步骤的粒度细化,针对不同状态之间的转换动作进行对应的编码实现,使施工操作精准可控,且不同施工流程中的相同施工动作可以实现代码复用,既便于开发实现也便于后期维护,大大增强了编码的简易性和扩展性;2、利用Zookeeper的节点监听机制,通过在zookeeper上的节点注册来实现施工状态流转任务的触发启动,大大提高了施工流程调度的自主性和便捷性。
图4为本发明实施例提供的一种基于有限状态机的云缓存数据库施工处理装置,包括:检测模块S201、选取模块S202、初始化模块,S203、第一添加模块S204、第二添加模块S205,其中:
施工模块S201,用于组件控制台接收租户通过PaaS平台下发的工单信息,并根据所述工单信息确定对应的施工操作,调用底层Agent代理服务实施所述施工操作。
工单信息处理模块S202,用于所述组件控制台基于所述工单信息完成工单信息处理,得到处理结果,所述工单信息处理包括:解析工单格式、校验工单参数、判断施工类型以及保存数据信息。
异步施工模块S203,用于所述组件控制台将底层Agent代理服务部署至底层的租户VPC区,并在所述租户VPC区基于所述处理结果进行异步施工,所述异步施工通过在Zookeeper上注册节点进行触发,包括:根据所述处理结果确定施工类型,进而确定对应的状态集和状态间转换为所述异步施工的动作集。
状态更新模块S204,用于所述异步施工结束后,将施工结果反馈至所述组件控制台,并通过所述施工结果更新施工状态至所述PaaS平台。
在其中一个实施例中,所述装置还包括:
节点创建模块,用于当根据所述处理结果中,确定所述工单信息对应的施工类型依次分别为单机类型、准备类型、只读版类型时,则所述异步施工的动作集依次分别为单次、两次和多次的节点创建动作。
创建分片模块,用于当根据所述处理结果中,确定所述工单信息对应的施工类型依次分别为集群版类型时,则所述异步施工的动作集为执行多次创建分片动作,进而执行创建集群代理节点动作。
关于基于有限状态机的云缓存数据库施工处理装置的具体限定可以参见上文中对于基于有限状态机的云缓存数据库施工处理方法的限定,在此不再赘述。上述基于有限状态机的云缓存数据库施工处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)301、存储器(memory)302、通信接口(Communications Interface)303和通信总线304,其中,处理器301,存储器302,通信接口303通过通信总线304完成相互间的通信。处理器301可以调用存储器302中的逻辑指令,以执行如下方法:组件控制台接收租户通过PaaS平台下发的工单信息,并根据工单信息确定对应的施工操作,调用底层Agent代理服务实施所述施工操作;施工操作,包括:组件控制台基于工单信息完成工单信息处理,得到处理结果,工单信息处理包括:解析工单格式、校验工单参数、判断施工类型以及保存数据信息;组件控制台将底层Agent代理服务部署至底层的租户VPC区,并在所述租户VPC区基于处理结果进行异步施工,异步施工通过在Zookeeper上注册节点进行触发,包括:根据处理结果确定施工类型,进而确定对应的状态集和状态间转换为异步施工的动作集;异步施工结束后,将施工结果反馈至所述组件控制台,并通过施工结果更新施工状态至PaaS平台。
此外,上述的存储器302中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:组件控制台接收租户通过PaaS平台下发的工单信息,并根据工单信息确定对应的施工操作,调用底层Agent代理服务实施所述施工操作;施工操作,包括:组件控制台基于工单信息完成工单信息处理,得到处理结果,工单信息处理包括:解析工单格式、校验工单参数、判断施工类型以及保存数据信息;组件控制台将底层Agent代理服务部署至底层的租户VPC区,并在所述租户VPC区基于处理结果进行异步施工,异步施工通过在Zookeeper上注册节点进行触发,包括:根据处理结果确定施工类型,进而确定对应的状态集和状态间转换为异步施工的动作集;异步施工结束后,将施工结果反馈至所述组件控制台,并通过施工结果更新施工状态至PaaS平台。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 一种基于缓存中间件的规范化处理方法及装置
- 一种基于ID缓存技术的图数据库加速装置和方法
- 一种缓存资源处理方法、装置以及计算机可读存储介质
- 基于多级缓存的数据处理方法及系统、装置和存储介质
- 一种基于云原生的数据库交互处理方法和装置
- 一种基于双重布隆过滤器的云缓存系统及云缓存方法