消息路由的方法、装置、系统、设备及介质制造方法及图纸

技术编号:31078997 阅读:27 留言:0更新日期:2021-12-01 11:35
本申请提供了一种消息路由的方法。该方法应用于应用调试系统,应用调试系统用于调试在生产环境中运行的应用,应用调试系统包括路由子系统和至少一个交互子系统。该方法包括:路由子系统接收至少一个交互子系统发送的至少一个调试请求消息,每个调试请求消息指示请求调试应用的一个子应用模块,路由子系统路由至少一个调试请求消息至请求调试的至少一个子应用模块对应的代理。由此可以支持多个用户同时对应用的一个或多个子应用模块进行调试,提高调试效率。高调试效率。高调试效率。

【技术实现步骤摘要】
消息路由的方法、装置、系统、设备及介质
[0001]本申请要求于2020年05月26日提交中国国家知识产权局、申请号为202010456122.7、申请名称为“一种应用调试方法、装置、设备及介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。


[0002]本申请涉及应用开发
,尤其涉及一种消息路由的方法、装置、系统、设备以及计算机可读存储介质。

技术介绍

[0003]应用是针对用户的某种特殊应用目的所编写的计算机程序的集合。应用从立项到交付给客户,通常会经历开发、测试、上线等多个阶段。其中,在开发、测试、上线的各个阶段往往会配置相应的环境,例如开发环境(development environment)、测试环境(testing environment)、应用环境(也称生产环境,production environment)。
[0004]开发人员常需要对应用进行调试,应用的调试包括利用人工或者编译的方式检测出应用的程序代码中的错误,进而可以根据调试过程中发现的错误对程序代码进行修正。目前,业界对应用的调试通常是通过集成开发环境(integrated development environment,IDE)在开发环境下对应用的程序代码进行调试。
[0005]然而,这种调试方法的调试效率比较低下,难以满足业务需求。

技术实现思路

[0006]本申请提供了一种消息路由的方法,可以实现在应用调试系统和应用之间实现安全可靠地传输调试消息,从而实现直接对应用进行调试,提高调试效率。而且,该方法支持多个用户同时对应用进行调试,进一步提高调试效率。本申请还提供了上述方法对应的装置、系统、设备、计算机可读存储介质以及计算机程序产品。
[0007]第一方面,本申请提供了一种消息路由的方法。该方法具体由应用调试系统执行。应用调试系统用于调试在生产环境中运行的应用。应用通常包括多个子应用模块。子应用模块是指通过计算机可执行的代码块实现一种或多种功能的功能模块,子应用模块可以是一个或者多个源代码文件。当应用为基于微服务架构(micro services architecture,MSA)的应用时,子应用模块也可以是一个或多个微服务。
[0008]应用调试系统包括路由子系统和至少一个交互子系统。路由子系统接收至少一个交互子系统发送的至少一个调试请求消息,每个调试请求消息指示请求调试所述应用的一个子应用模块,然后路由子系统路由所述至少一个调试请求消息至请求调试的至少一个子应用模块对应的代理(agent)。
[0009]每个子应用模块对应的agent为与子应用模块同时部署在生产环境的代码块。该代码块在运行时用于代理子应用模块与外部交互,以及对该子应用模块的调试。其中,子应用模块(如微服务)在运行时产生一个进程,子应用模块的agent在运行时实质上相当于寄
宿在该进程中的独立线程。
[0010]路由子系统将不同用户进行调试产生的至少一个调试请求消息路由至至少一个子应用模块的agent,相当于路由至至少一个子应用模块。由此可以实现直接对应用进行调试,提高调试效率。并且该方法能够支持多个用户同时对一个或多个子应用模块进行调试,进一步提高调试效率。
[0011]在一些可能的实现方式中,每个交互子系统根据各自用户的调试操作产生对应的调试请求消息。由此可以实现多个用户同时对应用(具体是应用的同一子应用模块或不同子应用模块)进行调试,提高了调试效率。
[0012]在一些可能的实现方式中,用户的调试操作包括:用户通过交互子系统提供的图形用户界面(graphical user interface,GUI)进行的调试选择和调试启动操作,或者,用户通过所述交互子系统提供的命令用户界面(command user interface,CUI)发送的调试选择和调试启动操作。
[0013]其中,通过GUI向用户呈现应用的子应用模块,以便用户选择子应用模块进行调试,可以提高用户体验。当然,用户也可以直接通过CUI输入请求调试的子应用模块的标识以及相应的命令,从而启动调试,如此可以简化用户操作,提高调试效率。
[0014]在一些可能的实现方式中,所述生产环境包括至少一个节点。每个节点具有节点代理,也称作主机代理(host agent)。host agent为与应用同时部署在生产环境的代码块。host agent用于转发来自于节点上的子应用模块的消息或者向节点上的子应用模块转发消息。host agent运行时可以产生一个进程。该进程对应的程序代码可以随着应用的子应用模块包括的代码块部署到节点时被部署到节点。当节点上的子应用模块的进程启动时,host agent也随之启动。
[0015]如此,路由子系统可以将所述至少一个调试请求消息传输至请求调试的至少一个子应用模块所在节点的host agent,然后通过所述host agent将所述至少一个调试请求消息传输至请求调试的至少一个子应用模块对应的agent,从而实现多对多的消息路由,为多个用户同时调试应用提供帮助。
[0016]在一些可能的实现方式中,路由子系统包括多个调试代理。调试代理可以是基于调试适配器协议(debug adapter protocol,DAP)的代理。调试代理本质是一段程序代码,该程序代码被执行时产生一个进程或者线程。为了便于描述,可以将基于DAP的调试代理称之为DAP proxy,也可以简称为proxy。
[0017]至少一个调试请求消息包括第一调试请求消息。第一调试请求消息可以是至少一个调试请求消息中的任意一个。路由子系统在路由第一调试请求消息时,接收到该第一调试请求消息的proxy(具体为第一proxy)可以将所述第一调试请求消息广播至所述多个proxy,然后路由子系统中的与请求调试的第一子应用模块所在节点的host agent长连接的proxy(具体为第二proxy)将所述第一调试请求消息传输至请求调试的第一子应用模块所在节点的host agent。
[0018]如此可以保障交互子系统以及子应用模块的agent分别连接在不同proxy时,也能在交互子系统以及子应用模块之间安全可靠地传输调试消息。并且,当有些proxy下线时,也能重新连接至其他proxy,确保调试消息能够被正确地传输至相应的agent或者交互子系统。
[0019]在一些可能的实现方式中,第二proxy和请求调试的子应用模块所在节点的host agent之间预先建立有长连接。例如,第二proxy和子应用模块所在节点的host agent之间建立web socket长连接。如此,路由子系统可以通过第二proxy和host agent之间的长连接传输调试请求消息。其中,通过上述长连接可以实现持续地传输调试请求消息,提高了调试效率。
[0020]在一些可能的实现方式中,所述路由子系统包括多个调试代理。所述生产环境包括至少一个节点。所述路由子系统接收所述至少一个交互子系统发送的调试请求消息之前,所述应用的至少一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息路由的方法,其特征在于,所述方法应用于应用调试系统,所述应用调试系统包括路由子系统和至少一个交互子系统,所述应用调试系统用于调试在生产环境中运行的应用,所述方法包括:所述路由子系统接收所述至少一个交互子系统发送的至少一个调试请求消息,每个调试请求消息指示请求调试所述应用的一个子应用模块;所述路由子系统路由所述至少一个调试请求消息至请求调试的至少一个子应用模块对应的代理。2.根据权利要求1所述的方法,其特征在于,每个交互子系统根据各自用户的调试操作产生对应的调试请求消息。3.根据权利要求2所述的方法,其特征在于,用户的调试操作包括:用户通过交互子系统提供的图形用户界面GUI进行的调试选择和调试启动操作,或者,用户通过所述交互子系统提供的命令用户界面CUI发送的调试选择和调试启动操作。4.根据权利要求1至3任一项所述的方法,其特征在于,所述生产环境包括至少一个节点,所述路由子系统路由所述至少一个调试请求消息至请求调试的至少一个子应用模块对应的代理,包括:所述路由子系统将所述至少一个调试请求消息传输至请求调试的至少一个子应用模块所在节点的节点代理;所述路由子系统通过所述节点代理将所述至少一个调试请求消息传输至请求调试的至少一个子应用模块对应的代理。5.根据权利要求4所述的方法,其特征在于,所述路由子系统包括多个调试代理,所述至少一个调试请求消息包括第一调试请求消息,所述路由子系统将所述至少一个调试请求消息传输至请求调试的至少一个子应用模块所在节点的节点代理,包括:所述路由子系统中的第一调试代理将所述第一调试请求消息广播至所述多个调试代理;所述路由子系统中的第二调试代理将所述第一调试请求消息传输至请求调试的子应用模块所在节点的节点代理。6.根据权利要求5所述的方法,其特征在于,所述第二调试代理和请求调试的子应用模块所在节点的节点代理之间预先建立有长连接。7.根据权利要求1至6任一项所述的方法,其特征在于,所述路由子系统包括多个调试代理,所述生产环境包括至少一个节点,所述路由子系统接收所述至少一个交互子系统发送的调试请求消息之前,所述方法还包括:所述路由子系统中的至少一个调试代理接收所述应用的至少一个子应用模块所在节点的节点代理发送的连接请求消息;所述路由子系统的所述至少一个调试代理建立与所述节点代理的长连接。8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:所述路由子系统接收请求调试的至少一个子应用模块的代理发送的至少一个调试响应消息;所述路由子系统路由所述至少一个调试响应消息至对应的交互子系统。9.一种消息路由的装置,其特征在于,所述装置包括:
通信单元,用于接收至少一个交互子系统发送的至少一个调试请求消息,每个调试请求消息指示请求调试应用的一个子应用模块;路由单元,用于路由所述至少一个调试请求消息至请求调试的至少一个子应用模块对应的代理。10.根据权利要求9所述的装置,其特征在于,所述应用部署在生产环境,所述生产环境包括至少一个节点,所述路由单元具体用于:将所述至少一个调试请求消息传输至请求调试的至少一个子应用模块所在节点的节点代理;通过所述节点代理将所述至少一个调试请求消息传输至请求调试的至少一个子应用模块对应的代理。11.根据权利要求10所述的装置,其特征在于,所述装置包括多个调试代理,所述至少一个调试请求消息包括第一调试请求消息,所述路由单元具体用于:通过第一调试代理将所述第一调试请求消息广播至所述多个调试代理;通过第二调试代理将所述第一调试请求消息传输至请求调试的子应用模块所在节点的节点代...

【专利技术属性】
技术研发人员:王亚伟诺阿姆
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1