应用间的通信方法及装置、非易失性存储介质、处理器制造方法及图纸

技术编号:36251862 阅读:66 留言:0更新日期:2023-01-07 09:45
本申请公开了一种应用间的通信方法及装置、非易失性存储介质、处理器。其中,该方法包括:检查微服务的子应用是否完成对发布事件的订阅任务,其中,订阅任务为子应用对发布事件进行接收;当子应用未完成对发布事件的订阅任务时,主应用在第一目标文件中保存发布事件,当第一目标文件中存在发布事件时,子应用执行订阅任务以及发布事件;当子应用完成对发布事件的订阅任务时,主应用通过应用程序编程接口将发布事件上传至第二目标文件中,子应用通过对第二目标文件中微服务的目标函数进行监听,执行发布事件。本申请解决了由于微服务中各个应用之间未采用发布订阅的通信方式造成的通信质量差的技术问题。信质量差的技术问题。信质量差的技术问题。

【技术实现步骤摘要】
应用间的通信方法及装置、非易失性存储介质、处理器


[0001]本申请涉及通信
,具体而言,涉及一种应用间的通信方法及装置、非易失性存储介质、处理器。

技术介绍

[0002]相关技术中,前端微服务通过采用浏览器提供的postMessage的方式,来实现跨文本文档、多窗口、跨域消息传递。但是,随着应用体量上升,频繁的调用会导致项目通信模块的可维护性下降,也会存在应用之间的通信质量差的问题。
[0003]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0004]本申请实施例提供了一种应用间的通信方法及装置、非易失性存储介质、处理器,以至少解决由于微服务中各个应用之间未采用发布订阅的通信方式造成的通信质量差的技术问题。
[0005]根据本申请实施例的一个方面,提供了一种应用间的通信方法,包括:检查微服务的子应用是否完成对发布事件的订阅任务,其中,订阅任务为子应用对发布事件进行接收;当子应用未完成对发布事件的订阅任务时,主应用在第一目标文件中保存发布事件,当第一目标文件中存在发布事件时,子应用执行订阅任务以及发布事件;当子应用完成对发布事件的订阅任务时,主应用通过应用程序编程接口将发布事件上传至第二目标文件中,子应用通过对第二目标文件中微服务的目标函数进行监听,执行发布事件。
[0006]可选地,微服务为前端微服务,子应用为前端微服务将前端页面拆分得到的多个应用,其中,子应用注册在主应用中。
[0007]可选地,子应用之间的应用内数据为共享数据;主应用与子应用之间的应用内数据为共享数据。
[0008]可选地,子应用之间的脚本的执行栈处于相互隔离状态;主应用与子应用之间的脚本的执行栈处于相互隔离状态。
[0009]可选地,子应用由多个功能模块构成,其中,功能模块之间禁止通过浏览器的本地缓存进行通信。
[0010]可选地,目标函数至少包括微服务在生命周期内的回调函数。
[0011]可选地,子应用之间至少用于共享储存在目标对象本地终端上的数据中的计算机身份认证的临时令牌;主应用与子应用之间至少用于共享储存在目标对象本地终端上的数据中的计算机身份认证的临时令牌。
[0012]根据本申请实施例的再一方面,还提供了一种非易失性存储介质,存储介质包括存储的程序,其中,程序运行时控制存储介质所在的设备执行以上的应用间的通信方法。
[0013]根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的应用间的通信方法。
[0014]在本申请实施例中,采用检查微服务的子应用是否完成对发布事件的订阅任务,其中,订阅任务为子应用对发布事件进行接收;当子应用未完成对发布事件的订阅任务时,主应用在第一目标文件中保存发布事件,当第一目标文件中存在发布事件时,子应用执行订阅任务以及发布事件;当子应用完成对发布事件的订阅任务时,主应用通过应用程序编程接口将发布事件上传至第二目标文件中,子应用通过对第二目标文件中微服务的目标函数进行监听,执行发布事件的方式,通过应用间的发布订阅的通信方式,达到了减少应用间通信次数的目的,从而实现了应用间松耦合以及独立运行、独立部署的技术效果,进而解决了由于微服务中各个应用之间未采用发布订阅的通信方式造成的通信质量差技术问题。
附图说明
[0015]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0016]图1是根据本申请实施例的一种应用间的通信方法的流程图;
[0017]图2是根据本申请实施例的一种应用间的通信装置的结构图;
[0018]图3是根据本申请实施例的一种应用间的通信方法的计算机终端(或电子设备)的硬件结构框图。
[0019]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0020]需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0021]根据本申请实施例,提供了一种应用间的通信方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0022]web前端最常用的解决方案是使用iframe内嵌其他模块的前端页面进行实现,但是目前使用iframe主要存在一些问题:
[0023]1.页面通信问题:iframe和父窗口是不同源的情况,不能直接操作父窗口,这种场景只能使用postMessage来实现通信,传输的数据只能为字符串,使得页面之间的通信较为繁琐;
[0024]2.布局问题:iframe必须给出指定的高度,否则会塌陷,有些情况页面中会出现多个滚动条,导致用户体验不佳。
[0025]web前端项目,在初期并没有使用前端微服务,这就导致整体项目比较庞大冗余,更新部署发布也很繁琐,引入前端微服务之后主要解决了以下问题:
[0026]1.独立技术栈:主框架不限制接入子应用的技术栈,每个应用的技术栈选型可以配合业务团队选择使用;
[0027]2.独立开发、独立部署:子应用仓库独立,可以根据业务模块进行拆分,精炼各个子应用,前后端可独立开发,部署完成后主框架同步更新子应用;
[0028]3.独立运行:每个子应用之间状态隔离,单独子应用失败不会影响到其他项目;
[0029]4.数据共享:子应用可以共享主应用的数据,亦可共享兄弟子应用的数据。
[0030]微服务之间的主应用和子应用通过发布订阅的方式进行通信,实现了主应用和子应用之间约定尽量减少通讯,主应用和子应用之间松耦合,主应用和子应用之间独立运行和部署的效果。
[0031]在主应用和子应用通过发布订阅的方式进行通信时,如果某些订阅事件为异步任务,子应用无法预知异步任务完成的时间,可能存在主应用在发布时,子应用还没有完成订阅的情况。本申请针对此情况提供了有效的解决办法。其中,同步任务为没有被引擎挂起、在主线程上排队执行的任务,只有前一个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用间的通信方法,其特征在于,包括:检查微服务的子应用是否完成对发布事件的订阅任务,其中,所述订阅任务为所述子应用对所述发布事件进行接收;当所述子应用未完成对所述发布事件的订阅任务时,所述微服务的主应用在第一目标文件中保存所述发布事件,当所述第一目标文件中存在所述发布事件时,所述子应用执行所述订阅任务以及所述发布事件;当所述子应用完成对所述发布事件的订阅任务时,所述主应用通过应用程序编程接口将所述发布事件上传至第二目标文件中,所述子应用通过对所述第二目标文件中所述微服务的目标函数进行监听,执行所述发布事件。2.根据权利要求1所述的方法,其特征在于,所述微服务为前端微服务,所述子应用为所述前端微服务将前端页面拆分得到的多个应用,其中,所述子应用注册在所述主应用中。3.根据权利要求2述的方法,其特征在于,所述子应用之间的应用内数据为共享数据;所述主应用与所述子应用之间的所述应用内数据为共享数据。4.根据权利要求3述的方法,其特征在于,所述子应用之间的脚本的执行栈处于相互隔离状态;所述主应用与所述子应用之间的所述脚本的执行栈处于相互隔离状态。5.根据权利要求1所述的方法,其特征在于,所述子应用由多个功能模块构成,其中,所述功能模块之间禁止通过浏览器的本地缓存进行通信。6.根据权利要求1所述的方法,其特征在于,所述目标函数至少包括所述微服务在生命周...

【专利技术属性】
技术研发人员:朱杰张倍先李然吴晶
申请(专利权)人:北京智能建筑科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1