路由调度方法、装置、设备及可读存储介质

文档序号:1878251 发布日期:2021-11-23 浏览:29次 >En<

阅读说明:本技术 路由调度方法、装置、设备及可读存储介质 (Routing scheduling method, device, equipment and readable storage medium ) 是由 廖宏军 刘小双 欧馨 周雷 王宗强 许琦枫 赵一波 陈军 冯建设 于 2021-10-27 设计创作,主要内容包括:本申请公开了一种路由调度方法、装置、设备及可读存储介质,该方法包括步骤:监听当前路由信息,获取路由信息变化对应的子路由信息;根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串;根据所述子路由信息和所述子路由标识串,变更主应用的路由,得到主路由;确定所述主路由对应的目标子应用,并跳转至所述目标子应用;通过上述方式,实时监听产生路由信息变化的子路由信息,对子路由信息进行解析,得到子路由的子路由标识串,从而能够根据各自的子路由信息和子路由标识串,变更主路由,得到准确的目标子应用,通过调度子路由信息独立的标识串,打开目标子应用,实现了各子应用路由调度的独立,避免了路由冲突问题。(The application discloses a method, a device, equipment and a readable storage medium for routing scheduling, wherein the method comprises the following steps: monitoring current routing information and acquiring sub-routing information corresponding to routing information change; determining a sub-routing identification string corresponding to the sub-routing information according to a preset identification string relation table; according to the sub-route information and the sub-route identification string, changing the route of the main application to obtain a main route; determining a target sub-application corresponding to the main route, and jumping to the target sub-application; by the method, the sub-routing information which generates the routing information change is monitored in real time, the sub-routing information is analyzed, the sub-routing identification string of the sub-routing is obtained, the main routing can be changed according to the respective sub-routing information and the sub-routing identification string, the accurate target sub-application is obtained, the target sub-application is opened by scheduling the sub-routing information independent identification string, the independence of the sub-application routing scheduling is realized, and the routing conflict problem is avoided.)

路由调度方法、装置、设备及可读存储介质

技术领域

本申请涉及计算机网络技术领域,尤其涉及一种路由调度方法、装置、设备及可读存储介质。

背景技术

在目前的中小企业web平台网站系统中,当一个web平台网站集成多个不同的小的微前端服务应用时,很多前端团队采用主应用完全不处理路由(主应用不根据路由调度子路由,子应用内部状态变化按照原样反映到主路由系统)来开发web平台网站。由于主应用没处理路由,带着路由进页面的时候不会产生效果,而是进入初始状态,使得子应用内部发生变化时,系统无法定位到属于哪个微任务的路由,进而在根据路由跳转至子应用时,可能打开打开相同路由对应的其他子应用,因此,导致路由调度时产生路由冲突问题。

发明内容

本申请的主要目的在于提供一种路由调度方法、装置、设备及可读存储介质,旨在解决微前端开发中路由调度冲突的技术问题。

为实现上述目的,本申请提供一种路由调度方法,所述路由调度方法包括步骤:

监听当前路由信息,获取路由信息变化对应的子路由信息;

根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串;

根据所述子路由信息和所述子路由标识串,变更主应用的路由,得到主路由;

确定所述主路由对应的目标子应用,并跳转至所述目标子应用,其中,所述主应用中包括有至少一个子应用。

可选地,所述监听当前路由信息,获取路由信息变化对应的子路由信息的步骤,包括:

根据预设函数监听当前路由信息,当监听到所述当前路由信息出现路由信息变化时,将所述路由信息变化和所述路由信息变化对应的子路由信息通知至主应用;

以使所述主应用接收到所述路由信息变化和所述子路由信息。

可选地,所述根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串的步骤之前,所述方法包括:

获取所述子应用的原始子路由信息,对所述原始子路由信息标记对应的原始服务标识串;

根据至少一个所述子应用对应的子应用名称、所述原始子路由信息和所述原始服务标识串,创建标识串关系表。

可选地,所述根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串的步骤,包括:

获取标识串关系表;

根据所述子路由信息和所述标识串关系表,确定所述子路由信息对应的子路由标识串。

可选地,所述确定所述主路由对应的目标子应用,并跳转至所述目标子应用的步骤,包括:

根据所述标识串关系表,确定所述主路由对应的所述目标子应用;

判断当前运行的当前子应用与所述目标子应用是否一致;

若否,则调度所述主路由打开所述目标子应用的界面。

可选地,所述判断当前运行的当前子应用与所述目标子应用是否一致的步骤之后,所述方法包括:

若是,则关闭所述当前子运用后,跳转至所述目标子应用的界面。

可选地,所述确定所述主路由对应的目标子应用,并跳转至所述目标子应用的步骤之后,所述包括:

获取目标子应用对应的目标存储空间,所述目标子应用内部状态变化存储在所述目标存储空间内。

为实现上述目的,本发明提供一种路由调度装置,所述装置包括:

监听模块,监听当前路由信息,获取路由信息变化对应的子路由信息;

确定模块,根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串;

变更模块,根据所述子路由信息和所述子路由标识串,变更主应用的路由,得到主路由;

跳转模块,确定所述主路由对应的目标子应用,并跳转至所述目标子应用,其中,所述主应用中包括有至少一个子应用。

此外,为实现上述目的,本申请还提供一种路由调度设备,所述路由调度设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的路由调度程序,所述路由调度程序被所述处理器执行时实现如上所述的路由调度方法的步骤。

此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有路由调度程序,所述路由调度程序被处理器执行时实现如上所述的路由调度方法的步骤。

与现有技术中,微前端开发中路由调度冲突相比,本申请通过监听当前路由信息,获取路由信息变化对应的子路由信息;根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串;根据所述子路由信息和所述子路由标识串,变更主应用的路由,得到主路由;确定所述主路由对应的目标子应用,并跳转至所述目标子应用,其中,所述主应用中包括有至少一个子应用;通过上述方式,实时监听产生路由信息变化的子路由信息,对子路由信息进行解析,得到子路由的子路由标识串,从而能够根据各自的子路由信息和子路由标识串,变更主路由,得到准确的目标子应用,通过调度子路由信息独立的标识串,打开目标子应用,实现了各子应用路由调度的独立,避免了路由冲突问题。

附图说明

图1是本申请路由调度方法第一实施例的流程示意图;

图2是本申请路由调度装置较佳实施例的功能模块示意图;

图3是本申请实施例方案涉及的硬件运行环境的结构示意图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供一种路由调度方法,参照图1,图1为本申请路由调度方法第一实施例的流程示意图。

本申请实施例提供了路由调度方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。路由调度方法可应用于应用服务器的用于路由调度的程序模块中。为了便于描述,以下省略执行主体描述路由调度方法的各个步骤。路由调度方法包括:

步骤S10,监听当前路由信息,获取路由信息变化对应的子路由信息;

步骤S20,根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串;

步骤S30,根据所述子路由信息和所述子路由标识串,变更主应用的路由,得到主路由;

步骤S40,确定所述主路由对应的目标子应用,并跳转至所述目标子应用,其中,所述主应用中包括有至少一个子应用。

具体步骤如下:

步骤S10,监听当前路由信息,获取路由信息变化对应的子路由信息;

在本实施例中,需要说明的是,路由调度方法可以应用于路由调度装置,该路由调度装置属于路由调度系统,该路由调度系统从属于路由调度设备。

在本实施例中,具体的应用场景可以是:在目前的中小企业web平台网站系统中,当一个web平台网站集成多个不同的小的微前端服务应用时,很多前端团队采用主应用完全不处理路由(主应用不根据路由调度子路由,子应用内部状态变化按照原样反映到主路由系统)来开发web平台网站。由于主应用没处理路由,带着路由进页面的时候不会产生效果,而是进入初始状态,使得子应用内部发生变化时,系统无法定位到属于哪个微任务的路由,进而在根据路由跳转至子应用时,可能打开打开相同路由对应的其他子应用,因此,导致路由调度时产生路由冲突问题。

在本实施例中,需要说明的是,微前端是指把应用程序设计成一系列松耦合的细粒度服务,并通过轻量级的通信协议组织起来,也即将应用构建成一组小型服务,微前端属于前端架构。一个web平台中包括多个微前端,微前端对应有微前端应用,也即主应用,主应用内包括至少一个子应用。跳转或打开主应用和子应用需要通过路由调度,其中,路由调度是通过系统中的路由配置模块实现的。

在一些场景中,主子应用(主应用和子应用)的开发由不同的人员开发设计,导致主应用中的子应用的名称可能存在一致,由此,根据网址打开主子应用(主应用和子应用)时,可能识别出的网址中的路由信息一致,从而导致打开错误的子应用,因此,需要对不同的子应用设置一定标识,避免出现路由冲突的问题。

在本实施例中,监听系统当前路由信息,其中,当前路由信息是指当前系统的路由调度中的实时路由信息,当前路由信息发生变化时,获取对应的致使路由发生变化的子路由信息,对子路由信息解析,其中,子路由信息中包括子应用名称,根据子路由信息确定对应的子应用。可以理解,当用户点击某一子应用或输入某一子应用的网址时,也即微服务界面有操作时,会产生子路由以及子路由对应的信息,在从当前路由信息变化为子路由信息的过程,也即路由信息变化的过程,当前系统发生了路由信息变化。此时,路由配置模块对子路由信息进行解析,得到子应用路由,使得主应用根据子应用路由打开子应用。

其中,监听当前路由信息,获取路由信息变化对应的子路由信息,包括一下步骤S11-S12:

步骤S11,根据预设函数监听当前路由信息,当监听到所述当前路由信息出现路由信息变化时,将所述路由信息变化和所述路由信息变化对应的子路由信息通知至主应用;

步骤S12,以使所述主应用接收到所述路由信息变化和所述子路由信息。

在本实施例中,系统当前运行的子应用监听当前路由信息,通过核心函数isTurnChild以及一些获取当前应用的函数,去查看当前路由信息是否变化。若当前路由信息出现路由信息变化时,将路由信息变化通知至主应用,其中,路由信息变化可以是一个信号信息,在当前路由信息发生变化时,发送路由信息变化至主应用;路由信息变化也可以是一个变化操作,从当前路由信息变化为子路由信息的过程。具体地,通过APIframe.postMessage跨窗口通信将微服务界面操作信息(路由信息变化和路由信息变化对应的子路由信息)发送至主应用。实现此过程的代码例如:

主应用侧接收到路由信息变化和子路由信息,通过跨窗口通信APIframe.contentWindow. addEventListener获取来自微服务的消息。以供后续主应用根据子路由信息改变自身的路由,而调度出目标子应用的路由。实现此过程的代码例如:

进一步地,监听当前路由信息之前,包括以下步骤S13:

步骤S13,改变全局事件状态,对主应用路由打补丁;

在本实施例中,改变全局事件状态,对主应用路由打补丁,从而手动接管一些浏览器的路由监听状态,以便对路由精准监听、操作、分发子路由。在打补丁的过程中,创建一个自定义事件,接管浏览器默认事件,防止出现错误异常,实现路由信息变化完全由工程师控制,而远离浏览器默认控制。实现此过程的代码例如:

步骤S20,根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串;

在本实施例中,预设的标识串关系表包含子路由信息和子路由标识串,根据子路由信息可以从标识串关系表中得到唯一对应的子路由标识串,子路由标识串时识别子路由信息对应的子应用的关键操作。可以理解,一个主应用对应至少一个子应用,一个子应用中的子应用路由在开发时均设置不同,但由于不同的子应用可能由不同的人员开发,则子应用路由的名称设置可能存在相同的情况,在识别子路由信息时,可能跳转至错误的子应用中。因此,需要对子应用中子路由信息设置不同的子路由标识串,使得子路由信息和子路由标识串在主应用中唯一,避免路由冲突问题。

其中,根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串之前,包括以下步骤S21-S22:

步骤S21,获取所述子应用的原始子路由信息,对所述原始子路由信息标记对应的原始服务标识串;

步骤S22,根据至少一个所述子应用对应的子应用名称、所述原始子路由信息和所述原始服务标识串,创建标识串关系表。

在本实施例中,原始子路由信息是指主应用中至少一个子应用的所有路由信息,子路由信息中包含子应用名称。将开发完成的子应用以及子应用的对应的所有路由信息标记唯一的原始服务标识串,单独的原始服务标识串可以区分不同的子路由信息。需要说明的是,不同的子路由信息对应唯一的原始服务标识串,不同的子应用对应各自的子路由信息,因此,根据子应用名称、原始子路由信息和原始服务标识串,建立标识串关系表。在标识串关系表中,根据原始子路由信息可以查找/匹配出与原始子路由信息唯一对应的原始服务标识串,根据原始服务标识串和原始子路由信息可以查找/匹配出对应的子应用名称。实现此过程的代码例如(APP_NAME设置微服务的服务标识串):

进一步地,根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串,包括以下步骤S23-S24:

步骤S23,获取标识串关系表;

步骤S24,根据所述子路由信息和所述标识串关系表,确定所述子路由信息对应的子路由标识串。

在本实施例中,获取标识串关系表,输入子路由信息,在标识串关系表中得到子路由信息对应的第一原始子路由信息,根据第一原始子路由信息得到唯一确定的第一原始服务标识串,第一原始服务标识串也即子路由信息对应的子路由标识串。

步骤S30,根据所述子路由信息和所述子路由标识串,变更主应用的路由,得到主路由;

在本实施例中,在主应用接收到路由信息变化以及获取子路由信息时,根据路由函数和子路由信息修改主应用的路由,得到主路由。其中,路由函数是指用于处理变更路由、收集路由相关数据的函数,通过路由函数将主应用的路由中当前路由信息和当前路由信息对应的标识串,变更为子路由信息以及对应的子路由标识串,从而得到主路由。

实现此过程的代码例如:

步骤S40,确定所述主路由对应的目标子应用,并跳转至所述目标子应用,其中,所述主应用中包括有至少一个子应用。

在本实施例中,根据主路由或者name查找确定主路由对应的目标子应用,并通过微服务使得主应用跳转至目标子应用。

实现此过程的代码例如:

其中,确定所述主路由对应的目标子应用,并跳转至所述目标子应用,包括以下步骤S41-S43:

步骤S41,根据所述标识串关系表,确定所述主路由对应的所述目标子应用;

步骤S42,判断当前运行的当前子应用与所述目标子应用是否一致;

步骤S43,若否,则调度所述主路由打开所述目标子应用的界面。

在本实施例中,由于子路由信息中包含子应用名称,因此,根据标识串关系表,能够确定子路由信息对应的目标子应用,也即,目标子应用为根据变更后的主路由调度的子应用。当前子应用是指系统当前正在运行的子应用,获取当前子应用,判断目标子应用是否为当前子应用,若目标子应用不是当前子应用,则根据路由配置模块根据调度子路由,打开/跳转至目标子应用的界面。需要说明的是,在跳转至目标子应用的过程中,关闭当前子应用,系统会删除当前子应用,避免当前子应用在未删除时会有内存数据泄露,长时间导致浏览器或操作平台因数据过多而崩溃。

进一步地,若目标子应用是当前子应用,则无需对主路由进行变更。

实现此过程的代码例如:

本实施例的路由调度方法,包括步骤:监听当前路由信息,获取路由信息变化对应的子路由信息;根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串;根据所述子路由信息和所述子路由标识串,变更主应用的路由,得到主路由;确定所述主路由对应的目标子应用,并跳转至所述目标子应用,其中,所述主应用中包括有至少一个子应用;通过上述方式,实时监听产生路由信息变化的子路由信息,对子路由信息进行解析,得到子路由的子路由标识串,从而能够根据各自的子路由信息和子路由标识串,变更主路由,得到准确的目标子应用,通过调度子路由信息独立的标识串,打开目标子应用,实现了各子应用路由调度的独立,避免了路由冲突问题。

在一些实施例中,若子应用为cow,用户在点击定义路由名称为/home的首页时,链接点击事件默认被拦截,触发路由匹配功能,匹配pushState。当匹配到子应用cow的/home界面时,将pushState修改为/home,iframe URL修改为/home,通知当前子应用的URL为/home,更新主应用的URL,此时,URL变成/cow/home,系统返回cow应用的home页。

第二实施例

基于上述第一实施,提出本申请路由调度方法的第二实施例。在本实施例中,所述路由调度方法还包括:

步骤S50,获取目标子应用对应的目标存储空间,所述目标子应用内部状态变化存储在所述目标存储空间内。

在本实施例中,主应用中对应有多个子应用,为了便于主应用下发数据或子应用存储数据,需要对子应用设置各自的存储空间。主应用根据主路由调度目标子应用的同时,得到目标子应用对应的目标存储空间,则目标子应用的内部状态变化存储在其存储空间内,以使各子应用的数据互不干扰,从而隔离对子应用生成路由时,对全局上下文产生的副作用。

进一步地,获取目标子应用对应的目标存储空间之前,包括以下步骤S51:

步骤S51,获取所述子路由信息中的所述子应用名称,建立所述子应用名称对应的存储空间,

在本实施例中,根据子应用名称创建对应的存储空间,将子应用相关的数据存储于该存储空间内,在子应用查找数据时,仅在其对应的存储空间内查找即可。需要说明的是,存储空间可以是各子应用的沙箱,可以理解,主应用根据路由调度子应用,子应用内部的状态变化反应到各自的沙箱中,互不干扰。

第三实施例

本申请还提供一种路由调度装置,参照图2,所述路由调度装置包括:

监听模块10,监听当前路由信息,获取路由信息变化对应的子路由信息;

确定模块20,根据预设的标识串关系表,确定所述子路由信息对应的子路由标识串;

变更模块30,根据所述子路由信息和所述子路由标识串,变更主应用的路由,得到主路由;

跳转模块40,确定所述主路由对应的目标子应用,并跳转至所述目标子应用,其中,所述主应用中包括有至少一个子应用。

可选地,所述监听模块10包括:

监听子模块,根据预设函数监听当前路由信息,当监听到所述当前路由信息出现路由信息变化时,将所述路由信息变化和所述路由信息变化对应的子路由信息通知至主应用;

接收子模块,以使所述主应用接收到所述路由信息变化和所述子路由信息。

可选地,所述路由调度装置还包括:

标记模块,获取所述子应用的原始子路由信息,对所述原始子路由信息标记对应的原始服务标识串;

创建模块,根据至少一个所述子应用对应的子应用名称、所述原始子路由信息和所述原始服务标识串,创建标识串关系表。

可选地,所述确定模块20包括:

获取子模块,获取标识串关系表;

第一确定子模块,根据所述子路由信息和所述标识串关系表,确定所述子路由信息对应的子路由标识串。

可选地,所述跳转模块40包括:

第二确定子模块,根据所述标识串关系表,确定所述主路由对应的所述目标子应用;

判断子模块,判断当前运行的当前子应用与所述目标子应用是否一致;

调度子模块,若否,则调度所述主路由打开所述目标子应用的界面。

可选地,所述跳转模块40还包括:

跳转子模块,若是,则关闭所述当前子运用后,跳转至所述目标子应用的界面。

可选地,路由调度装置还包括:

存储模块,获取目标子应用对应的目标存储空间,所述目标子应用内部状态变化存储在所述目标存储空间内。

此外,本申请还提供一种路由调度设备。如图3所示,图3是本申请实施例方案涉及的硬件运行环境的结构示意图。

需要说明的是,图3即可为路由调度设备的硬件运行环境的结构示意图。

如图3所示,该路由调度设备可以包括:处理器1001,例如CPU,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

可选地,路由调度设备还可以包括RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。

本领域技术人员可以理解,图3中示出的路由调度设备结构并不构成对路由调度设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图3所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及路由调度程序。其中,操作系统是管理和控制路由调度设备硬件和软件资源的程序,支持路由调度程序以及其它软件或程序的运行。

在图3所示的路由调度设备中,用户接口1003主要用于连接终端,与终端进行数据通信,如接收终端发送的用户信令数据;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的路由调度程序,并执行如上所述的路由调度方法的步骤。

本申请路由调度设备具体实施方式与上述路由调度方法各实施例基本相同,在此不再赘述。

此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有路由调度程序,所述路由调度程序被处理器执行时实现如上所述的路由调度方法的步骤。

本申请计算机可读存储介质具体实施方式与上述路由调度方法各实施例基本相同,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,设备,或者网络设备等)执行本申请各个实施例所述的方法。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种高性能5G路由器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!