CN113934548A - 一种与依赖服务建立连接的方法和装置 - Google Patents

一种与依赖服务建立连接的方法和装置 Download PDF

Info

Publication number
CN113934548A
CN113934548A CN202010603594.0A CN202010603594A CN113934548A CN 113934548 A CN113934548 A CN 113934548A CN 202010603594 A CN202010603594 A CN 202010603594A CN 113934548 A CN113934548 A CN 113934548A
Authority
CN
China
Prior art keywords
connection
task
dependent service
service
dependent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010603594.0A
Other languages
English (en)
Inventor
张恒强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202010603594.0A priority Critical patent/CN113934548A/zh
Publication of CN113934548A publication Critical patent/CN113934548A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种与依赖服务建立连接的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取目标应用的依赖服务信息;根据所述依赖服务信息,创建用于与所述依赖服务建立连接的服务实例;根据所述服务实例生成连接任务;读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,以建立与所述依赖服务的连接。该实施方式克服了现有技术中通过向目标应用输入参数的方式与依赖服务建立连接而导致的效率低、易遗漏依赖服务的技术问题,能够快速且全面地使目标应用与依赖服务建立连接,进而提升用户体验。

Description

一种与依赖服务建立连接的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种与依赖服务建立连接的方法和装置。
背景技术
在当今互联网业务系统中,微服务架构的应用越来越广泛,使用微服务架构可以将较为复杂的单体应用分解为一系列的微服务,通过对微服务的开发和维护实现对复杂单体应用的快速开发和维护。单体应用功能的实现依赖于与其相关的微服务,因此,单体应用在向用户提供服务之前,需要先与其所依赖的微服务建立连接;现有技术中,通常是通过用户向目标应用输入参数的方式,使目标应用与该参数所涉及的有限个依赖服务建立连接。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
由于输入一次参数只能与有限个依赖服务建立连接,因此效率低下,且即使多次输入也容易遗漏与一些依赖服务建立连接,常常发生如下情况:用户在使用目标应用的一些功能时,目标应用与该功能相关的依赖服务之间的连接还未建立好,进而导致用户等待时间过长,体验较差。
发明内容
有鉴于此,本发明实施例提供一种与依赖服务建立连接的方法和装置,能够快速且全面地使目标应用与依赖服务建立连接,并且还能对建立连接的结果进行展示,提升用户体验。
为实现上述目的,根据本发明实施例的一个方面,提供了一种与依赖服务建立连接的方法,包括:
获取目标应用的依赖服务信息;
根据所述依赖服务信息,创建用于与所述依赖服务建立连接的服务实例;
根据所述服务实例生成连接任务;
读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,以建立与所述依赖服务的连接。
可选地,所述获取目标应用的依赖服务信息,包括:
根据程序语言中的注解标识符,确定需要与所述目标应用建立连接的依赖服务信息;
所述依赖服务信息至少包括:依赖服务标识和/或依赖服务中的方法标识。
可选地,在创建用于与所述依赖服务建立连接的服务实例之后,还包括:将所述服务实例存入依赖服务容器中;
所述根据所述服务实例生成连接任务,包括:
从所述依赖服务容器中读取所述服务实例;
将所述服务实例封装为所述连接任务,并将所述连接任务添加至任务队列。
可选地,所述读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,包括:
从所述任务队列中读取所述连接任务,并从预设的配置中心中读取所述连接参数;
将所述连接参数输入与之对应的连接任务,并向所述依赖服务发送连接请求;
判断是否收到所述依赖服务的反馈消息;
若收到,将所述连接任务的执行结果记为成功;
若未收到,则重新将所述连接任务添加至所述任务队列;并在未收到反馈消息的次数达到次数阈值时,将所述连接任务的执行结果记为失败。
可选地,当从预设的配置中心中读取所述连接参数失败,则采用预设算法生成默认参数;
利用所述默认参数执行所述连接任务。
可选地,在基于所述连接参数执行所述连接任务之后,还包括:展示所述连接任务的执行结果;其中,所述展示内容包括:
执行成功的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识;
执行失败的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识。
可选地,当存在执行失败的连接任务时,所述展示内容还包括:
对全部依赖服务再次建立连接的可视化选项按钮;和/或,
对建立连接失败的依赖服务再次建立连接的可视化选项按钮;和/或,
对依赖服务中建立连接失败的方法再次建立连接的可视化选项按钮。
可选地,当接收到与所述可视化选项按钮对应的确定操作后,对于与该可视化选项按钮对应的依赖服务或方法,按权利要求3-5中任一所述的方法与依赖服务建立连接。
根据本发明实施例的再一个方面,提供了一种与依赖服务建立连接的装置,包括:
确定依赖服务模块,用于获取目标应用的依赖服务信息;
生成任务模块,用于根据所述依赖服务信息,创建用于与所述依赖服务建立连接的服务实例;根据所述服务实例生成连接任务;
执行任务模块,用于读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,以建立与所述依赖服务的连接。
可选地,所述确定依赖服务模块获取目标应用的依赖服务信息,包括:
根据程序语言中的注解标识符,确定需要与所述目标应用建立连接的依赖服务信息;
所述依赖服务信息至少包括:依赖服务标识和/或依赖服务中的方法标识。
可选地,所述生成任务模块在创建用于与所述依赖服务建立连接的服务实例之后,还包括:将所述服务实例存入依赖服务容器中;
所述根据所述服务实例生成连接任务,包括:
从所述依赖服务容器中读取所述服务实例;
将所述服务实例封装为所述连接任务,并将所述连接任务添加至任务队列。
可选地,所述执行任务模块读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,包括:
从所述任务队列中读取所述连接任务,并从预设的配置中心中读取所述连接参数;
将所述连接参数输入与之对应的连接任务,并向所述依赖服务发送连接请求;
判断是否收到所述依赖服务的反馈消息;
若收到,将所述连接任务的执行结果记为成功;
若未收到,则重新将所述连接任务添加至所述任务队列;并在未收到反馈消息的次数达到次数阈值时,将所述连接任务的执行结果记为失败。
可选地,当从预设的配置中心中读取所述连接参数失败,所述执行任务模块则采用预设算法生成默认参数;
利用所述默认参数执行所述连接任务。
可选地,与依赖服务建立连接的装置还包括:展示模块;
所述展示模块用于在基于所述连接参数执行所述连接任务之后,还包括:展示所述连接任务的执行结果;其中,所述展示内容包括:
执行成功的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识;
执行失败的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识。
可选地,当存在执行失败的连接任务时,所述展示内容还包括:
对全部依赖服务再次建立连接的可视化选项按钮;和/或,
对建立连接失败的依赖服务再次建立连接的可视化选项按钮;和/或,
对依赖服务中建立连接失败的方法再次建立连接的可视化选项按钮。
可选地,当所述展示模块接收到与所述可视化选项按钮对应的确定操作后,对于与该可视化选项按钮对应的依赖服务或方法,根据本发明中可选的与依赖服务建立连接的方法与依赖服务建立连接。
根据本发明实施例的另一个方面,提供了一种与依赖服务建立连接的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的与依赖服务建立连接的方法。
根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的与依赖服务建立连接的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用根据获取到的依赖服务信息生成包含有服务实例的连接任务、读取连接参数并输入与之对应的连接任务,以实现目标应用与依赖服务建立连接的技术手段,所以克服了现有技术中通过向目标应用输入参数的方式与依赖服务建立连接而导致的效率低、易遗漏依赖服务的技术问题,进而达到能够快速且全面地使目标应用与依赖服务建立连接的技术效果,并且还能对建立连接的结果进行展示以及在有需要时重新建立连接,提升了用户体验。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明第一实施例的一种与依赖服务建立连接的方法的流程示意图;
图2是根据本发明第二实施例的一种与依赖服务建立连接的方法的流程示意图;
图3是根据本发明第三实施例的一种执行连接任务的方法的流程示意图;
图4是根据本发明第四实施例的一种执行连接任务的方法的流程示意图;
图5是根据本发明第五实施例的一种与依赖服务建立连接的方法的架构示意图;
图6是根据本发明第六实施例的一种与依赖服务建立连接的装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明第一实施例的一种与依赖服务建立连接的方法的流程示意图,如图1所示,与依赖服务建立连接的方法包括:
步骤S101、获取目标应用的依赖服务信息;
步骤S102、根据所述依赖服务信息,创建用于与所述依赖服务建立连接的服务实例;
步骤S103、根据所述服务实例生成连接任务;
步骤S104、读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,以建立与所述依赖服务的连接。
其中,可以先获取到全部的依赖服务信息,为每一依赖服务创建服务实例并生成连接任务,还可以提前配置好用于建立连接的连接参数;基于连接参数执行与之对应的连接任务,以建立与每一依赖服务的连接;
根据本发明中的方法,能够快速且全面地使目标应用与依赖服务建立连接,避免了出现现有技术中用户在使用目标应用时才与依赖服务建立连接的情况,提升了用户体验。
在一些实施例中,可以按如下方法获取目标应用的依赖服务信息:
根据程序语言中的注解标识符,确定需要与所述目标应用建立连接的依赖服务信息;
所述依赖服务信息至少包括:依赖服务标识和/或依赖服务中的方法标识。
所述程序语言中的注解标识符可以看作是程序语言中的一种注释机制,可以基于注解方式声明切面,如Java语言中的Java注解(Annotation);
以目标应用为登陆服务、依赖服务为用户服务举例,在本发明方法中,一种可行的注解标识符语句可以设置为如下语句:
Figure BDA0002560056040000081
其中,UserService是用户服务标识,LoginService是登陆服务标识;@Resource可以声明用户服务是该登陆服务的依赖服务,可以使用spring容器自动注入依赖;@WarmUpAnnotation可以声明需要建立对于此依赖服务的连接;
依赖服务信息中可以只包含依赖服务标识,也可以还包含依赖服务中的方法标识;当依赖服务信息中只包含依赖服务标识时,可以使用本发明中建立连接的方法使目标应用与整个依赖服务建立连接,或与依赖服务中的所有方法建立连接;当依赖服务信息中还包含依赖服务中的方法标识时,可以使用本发明中建立连接的方法,使目标应用与依赖服务中指定的方法建立连接。
在一些实施例中,在创建用于与所述依赖服务建立连接的服务实例之后,还包括:将所述服务实例存入依赖服务容器中;
所述根据所述服务实例生成连接任务,包括:
从所述依赖服务容器中读取所述服务实例;
将所述服务实例封装为所述连接任务,并将所述连接任务添加至任务队列。
在创建服务实例后,可以将服务实例存放在依赖服务容器中,依赖服务容器可以用于管理所有需要建立连接的服务实例;
将生成的连接任务存放于任务队列;当任务队列中存在连接任务,即可使用本发明中的方法执行连接任务。
为方便理解上述实施例中的方法流程,可以参考图2;图2是根据本发明第二实施例的一种与依赖服务建立连接的方法的流程示意图,如图2所示,包括:
步骤S201、目标应用启动;
步骤S202、根据程序语言中的注解标识符,确定依赖服务信息;具体地,可以在目标应用程序启动后,根据随着程序启动执行过程中扫描到的程序语言中的注解标识符,确定依赖服务信息;其中,依赖服务信息中包含有依赖服务标识和/或依赖服务中的方法标识;
步骤S203、根据依赖服务信息,创建用于建立连接的服务实例;
步骤S204、将服务实例存入依赖服务容器中;
步骤S205、从依赖服务容器中读取服务实例,并将服务实例封装为连接任务;
步骤S206、将连接任务添加至任务队列;
步骤S207、读取连接参数,以执行任务队列中的连接任务;其中,连接参数可以是预先配置好之后存放于配置中心的。
在一些实施例中,所述读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,包括:
从所述任务队列中读取所述连接任务,并从预设的配置中心中读取所述连接参数;
将所述连接参数输入与之对应的连接任务,并向所述依赖服务发送连接请求;
判断是否收到所述依赖服务的反馈消息;
若收到,将所述连接任务的执行结果记为成功;
若未收到,则重新将所述连接任务添加至所述任务队列;并在未收到反馈消息的次数达到次数阈值时,将所述连接任务的执行结果记为失败。
在一些实施例中,当从预设的配置中心中读取所述连接参数失败,则采用预设算法生成默认参数;利用所述默认参数执行所述连接任务;具体地,可以随机生成默认参数,也可以根据与依赖服务相关的限制条件生成默认参数。
在一些实际应用中,可以将连接参数或默认参数作为服务实例的入参;向依赖服务发送的连接请求可以看作是对该依赖服务发送的调用请求或访问请求;得到反馈消息可以看作是与依赖服务成功建立了连接,可以将连接任务的执行结果记为成功;需要注意的是,上述反馈消息可以是指示了成功也可以是指示了失败的反馈消息,如:可以是与依赖服务成功建立连接且得到了与入参对应的请求结果的反馈消息,也可以是与依赖服务成功建立连接但未得到与入参对应的请求结果的反馈消息;
以下举例说明:
一依赖服务提供的服务是:通过输入字符串查询用户名称;其中,有效的可查询得到结果的字符串为:00~99这100个数字;
当输入服务实例的参数为“00”,则反馈消息是成功得到请求结果的反馈消息,具体可以是与“00”对应的用户名称,也即该反馈消息指示了与依赖赖服务成功建立连接且得到了与入参对应的请求结果;当输入服务实例的参数为00~99这100个数字以外的参数,如“780”或“XYZ”,则反馈消息是未得到请求结果的反馈消息,具体可以是“无法查到信息”或“输入错误”等消息,也即该反馈消息指示了与依赖赖服务成功建立连接但未得到与入参对应的请求结果。
为方便理解上述实施例中关于执行连接任务的方法流程,可以参考图3和图4。
图3是根据本发明第三实施例的一种执行连接任务的方法的流程示意图,如图3所示,包括:
步骤S301、获取连接任务和相应的连接参数,将连接参数输入连接任务,并向依赖服务发送连接请求;其中,连接任务可以从任务队列中读取;连接参数可以从配置中心读取,也可以随机生成;
步骤S302、是否收到依赖服务的反馈消息;其中,反馈消息可以是指示了成功也可以是指示了失败的反馈消息;若收到,可以认为是与依赖服务成功建立了连接,执行步骤S303;若未收到,执行步骤S304;
步骤S303、将连接任务的执行结果记为成功;
步骤S304、判断未收到反馈消息的次数是否达到次数阈值;若是,可以执行步骤S305;若否,可以执行步骤S306;
步骤S305、将连接任务的执行结果记为失败;
步骤S306、可以将连接任务重新添加至任务队列,以供再次被执行。
图4是根据本发明第四实施例的一种执行连接任务的方法的流程示意图;如图4所示,可以设置多个执行引擎,执行引擎从任务队列中获取到连接任务后,可并行执行这些连接任务,达到快速与依赖服务建立连接的效果;在图4的执行引擎中,执行连接任务的方法流程包括:
步骤S401、从任务队列中读取连接任务;
步骤S402、从配置中心读取与连接任务对应的连接参数;
步骤S403、是否读取成功;若是,执行步骤S404;若否,执行步骤S405;
步骤S404、将读取到的连接参数输入连接任务,并向依赖服务发送连接请求;
步骤S405、采用预设算法生成默认参数,将该默认参数输入连接任务,并向依赖服务发送连接请求;
步骤S406、执行连接任务;
步骤S407、记录执行结果;执行结果可以包括:成功或失败;
其中,可以通过是否收到依赖服务的反馈消息,来确定执行连接任务的执行结果是否为成功;在一些实际应用中,执行结果中还可以记录与连接任务对应的依赖服务标识和/或依赖服务中的方法标识。
在一些实施例中,在基于所述连接参数执行所述连接任务之后,还包括:展示所述连接任务的执行结果;其中,所述展示内容包括:
执行成功的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识;执行失败的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识。
在一些实际应用中,在连接任务的执行结果中还可以记录与依赖服务对应的连接参数/默认参数,和/或与依赖服务中的方法对应的连接参数/默认参数;
展示执行结果,可以使用户更直观地了解与依赖服务建立连接的结果,同时还可以方便于后续方法步骤中的重新建立连接;
其中,展示连接参数/默认参数,可以方便于用户对执行失败的连接任务进行分析,判断是否是由于连接参数/默认参数的原因而导致的连接失败,进而可以对连接参数的配置或者默认参数的生成方法进行优化调整。
在一些实施例中,当存在执行失败的连接任务时,所述展示内容还包括:
对全部依赖服务再次建立连接的可视化选项按钮;和/或,对建立连接失败的依赖服务再次建立连接的可视化选项按钮;和/或,对依赖服务中建立连接失败的方法再次建立连接的可视化选项按钮。
在一些实施例中,当接收到与所述可视化选项按钮对应的确定操作后,对于与该可视化选项按钮对应的依赖服务或方法,可以根据本发明中可选的与依赖服务建立连接的方法,与依赖服务建立连接。
通过设置可选的可视化选项按钮,使用户可以灵活选择重新建立连接的方式,可以包括:对目标应用所依赖的所有依赖服务全部重新建立连接,对可选的依赖服务重新建立连接,对可选的依赖服务中可选的方法重新建立连接;
在重新建立连接的过程中,可以从上述依赖服务容器中直接获取服务实例,而无须再根据依赖服务信息创建服务实例,进而提高整体效率。
为方便理解本发明实施例中的方法架构,可以参考图5;图5是根据本发明第五实施例的一种与依赖服务建立连接的方法的架构示意图,如图5所示,包括:
目标应用500、配置中心506、结果管理中心507;在目标应用500中,包括:依赖服务信息501、服务实例502、依赖服务容器503、任务队列504、执行引擎505;
目标应用500需要与其所依赖的依赖服务建立连接;在目标应用500中,依赖服务信息501可以包含依赖服务标识和/或依赖服务中的方法标识;可以根据依赖服务信息501创建用于与所述依赖服务建立连接的服务实例502;创建完毕的服务实例502可以存放至依赖服务容器503,依赖服务容器503可以用于管理服务实例;根据依赖服务容器503中的服务实例,可以生成连接任务;任务队列504可以用于存放连接任务;
配置中心506可以用于存放连接参数,连接参数可以用于执行连接任务;
执行引擎505可以从任务队列504中读取连接任务、从配置中心506中读取连接参数,并基于连接参数执行与之对应的连接任务,还可以记录执行结果;结果管理中心507可以用于对所述执行结果进行展示,以及可以提供重新建立连接的可视化选项按钮。
综上,可以通过上述架构方式完成本发明中的与依赖服务建立连接的方法。
图6是根据本发明第六实施例的一种与依赖服务建立连接的装置的主要模块的示意图,如图6所示,与依赖服务建立连接的装置600包括:
确定依赖服务模块601,用于获取目标应用的依赖服务信息;
生成任务模块602,用于根据所述依赖服务信息,创建用于与所述依赖服务建立连接的服务实例;根据所述服务实例生成连接任务;
执行任务模块603,用于读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,以建立与所述依赖服务的连接。
其中,可以先获取到全部的依赖服务信息,为每一依赖服务创建服务实例并生成连接任务,还可以提前配置好用于建立连接的连接参数;基于连接参数执行与之对应的连接任务,以建立与每一依赖服务的连接;
根据本发明中的方法,能够快速且全面地使目标应用与依赖服务建立连接,避免了出现现有技术中用户在使用目标应用时才与依赖服务建立连接的情况,提升了用户体验。
在一些实施例中,所述确定依赖服务模块获取目标应用的依赖服务信息,包括:
根据程序语言中的注解标识符,确定需要与所述目标应用建立连接的依赖服务信息;
所述依赖服务信息至少包括:依赖服务标识和/或依赖服务中的方法标识。
所述程序语言中的注解标识符可以看作是程序语言中的一种注释机制,可以基于注解方式声明切面,如Java语言中的Java注解(Annotation);
以目标应用为登陆服务、依赖服务为用户服务举例,在本发明方法中,一种可行的注解标识符语句可以设置为如下语句:
Figure BDA0002560056040000141
Figure BDA0002560056040000151
其中,UserService是用户服务标识,LoginService是登陆服务标识;@Resource可以声明用户服务是该登陆服务的依赖服务,可以使用spring容器自动注入依赖;@WarmUpAnnotation可以声明需要建立对于此依赖服务的连接;
依赖服务信息中可以只包含依赖服务标识,也可以还包含依赖服务中的方法标识;当依赖服务信息中只包含依赖服务标识时,可以使用本发明中建立连接的方法使目标应用与整个依赖服务建立连接,或与依赖服务中的所有方法建立连接;当依赖服务信息中还包含依赖服务中的方法标识时,可以使用本发明中建立连接的方法,使目标应用与依赖服务中指定的方法建立连接。
在一些实施例中,所述生成任务模块在创建用于与所述依赖服务建立连接的服务实例之后,还包括:将所述服务实例存入依赖服务容器中;
所述根据所述服务实例生成连接任务,包括:
从所述依赖服务容器中读取所述服务实例;
将所述服务实例封装为所述连接任务,并将所述连接任务添加至任务队列。
在创建服务实例后,可以将服务实例存放在依赖服务容器中,依赖服务容器可以用于管理所有需要建立连接的服务实例;
将生成的连接任务存放于任务队列;当任务队列中存在连接任务,即可使用本发明中的方法执行连接任务。
在一些实施例中,所述执行任务模块读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,包括:
从所述任务队列中读取所述连接任务,并从预设的配置中心中读取所述连接参数;
将所述连接参数输入与之对应的连接任务,并向所述依赖服务发送连接请求;
判断是否收到所述依赖服务的反馈消息;
若收到,将所述连接任务的执行结果记为成功;
若未收到,则重新将所述连接任务添加至所述任务队列;并在未收到反馈消息的次数达到次数阈值时,将所述连接任务的执行结果记为失败。
在一些实施例中,当从预设的配置中心中读取所述连接参数失败,所述执行任务模块则采用预设算法生成默认参数;
利用所述默认参数执行所述连接任务。
具体地,可以随机生成默认参数,也可以根据与依赖服务相关的限制条件生成默认参数
在一些实际应用中,可以将连接参数或默认参数作为服务实例的入参;向依赖服务发送的连接请求可以看作是对该依赖服务发送的调用请求;得到反馈消息可以看作是与依赖服务建立了连接;需要注意的是,上述反馈消息可以是指示了成功或失败的反馈消息,如:可以是调用依赖服务成功且得到了与入参对应的请求结果的反馈消息,也可以是调用依赖服务成功但未得到与入参对应的请求结果的反馈消息;
以下举例说明:
一依赖服务提供的服务是:通过输入字符串查询用户名称;其中,有效的可查询得到结果的字符串为:00~99这100个数字;
当输入服务实例的参数为“00”,则反馈消息是成功得到请求结果的反馈消息,具体可以是与“00”对应的用户名称,也即该反馈消息指示了与依赖赖服务成功建立连接且得到了与入参对应的请求结果;当输入服务实例的参数为00~99这100个数字以外的参数,如“780”或“XYZ”,则反馈消息是未得到请求结果的反馈消息,具体可以是“无法查到信息”或“输入错误”等消息,也即该反馈消息指示了与依赖赖服务成功建立连接但未得到与入参对应的请求结果。
在一些实施例中,与依赖服务建立连接的装置还包括:展示模块;
所述展示模块用于在基于所述连接参数执行所述连接任务之后,还包括:展示所述连接任务的执行结果;其中,所述展示内容包括:
执行成功的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识;执行失败的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识。
在一些实际应用中,在连接任务的执行结果中还可以记录与依赖服务对应的连接参数/默认参数,和/或与依赖服务中的方法对应的连接参数/默认参数;
展示执行结果,可以使用户更直观地了解与依赖服务建立连接的结果,同时还可以方便于后续方法步骤中的重新建立连接;
其中,展示连接参数/默认参数,可以方便于用户对执行失败的连接任务进行分析,判断是否是由于连接参数/默认参数的原因而导致的连接失败,进而可以对连接参数的配置或者默认参数的生成方法进行优化调整。
在一些实施例中,当存在执行失败的连接任务时,所述展示内容还包括:
对全部依赖服务再次建立连接的可视化选项按钮;和/或,对建立连接失败的依赖服务再次建立连接的可视化选项按钮;和/或,对依赖服务中建立连接失败的方法再次建立连接的可视化选项按钮。
在一些实施例中,当所述展示模块接收到与所述可视化选项按钮对应的确定操作后,对于与该可视化选项按钮对应的依赖服务或方法,可以根据本发明中可选的与依赖服务建立连接的方法,与依赖服务建立连接。
通过设置可选的可视化选项按钮,使用户可以灵活选择重新建立连接的方式,可以包括:对目标应用所依赖的所有依赖服务全部重新建立连接,对可选的依赖服务重新建立连接,对可选的依赖服务中可选的方法重新建立连接;
在重新建立连接的过程中,可以从上述依赖服务容器中直接获取服务实例,而无须再根据依赖服务信息创建服务实例,进而提高整体效率。
图7示出了可以应用本发明实施例的与依赖服务建立连接的方法或与依赖服务建立连接的装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的与依赖服务建立连接的方法一般由服务器705执行,相应地,与依赖服务建立连接的装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括确定依赖服务模块、生成任务模块、执行任务模块和展示模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:步骤S101、获取目标应用的依赖服务信息;步骤S102、根据所述依赖服务信息,创建用于与所述依赖服务建立连接的服务实例;步骤S103、根据所述服务实例生成连接任务;步骤S104、读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,以建立与所述依赖服务的连接。
根据本发明实施例的技术方案,因为采用根据获取到的依赖服务信息生成包含有服务实例的连接任务、读取连接参数并输入与之对应的连接任务,以实现目标应用与依赖服务建立连接的技术手段,所以克服了现有技术中通过向目标应用输入参数的方式与依赖服务建立连接而导致的效率低、易遗漏依赖服务的技术问题,进而达到能够快速且全面地使目标应用与依赖服务建立连接的技术效果,并且还能对建立连接的结果进行展示以及在有需要时重新建立连接,提升了用户体验。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (11)

1.一种与依赖服务建立连接的方法,其特征在于,包括:
获取目标应用的依赖服务信息;
根据所述依赖服务信息,创建用于与所述依赖服务建立连接的服务实例;
根据所述服务实例生成连接任务;
读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,以建立与所述依赖服务的连接。
2.根据权利要求1所述的方法,其特征在于,所述获取目标应用的依赖服务信息,包括:
根据程序语言中的注解标识符,确定需要与所述目标应用建立连接的依赖服务信息;
所述依赖服务信息至少包括:依赖服务标识和/或依赖服务中的方法标识。
3.根据权利要求1-2任一所述的方法,其特征在于,在创建用于与所述依赖服务建立连接的服务实例之后,还包括:将所述服务实例存入依赖服务容器中;
所述根据所述服务实例生成连接任务,包括:
从所述依赖服务容器中读取所述服务实例;
将所述服务实例封装为所述连接任务,并将所述连接任务添加至任务队列。
4.根据权利要求3所述的方法,其特征在于,所述读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,包括:
从所述任务队列中读取所述连接任务,并从预设的配置中心中读取所述连接参数;
将所述连接参数输入与之对应的连接任务,并向所述依赖服务发送连接请求;
判断是否收到所述依赖服务的反馈消息;
若收到,将所述连接任务的执行结果记为成功;
若未收到,则重新将所述连接任务添加至所述任务队列;并在未收到反馈消息的次数达到次数阈值时,将所述连接任务的执行结果记为失败。
5.根据权利要求4所述的方法,其特征在于,还包括:
当从预设的配置中心中读取所述连接参数失败,则采用预设算法生成默认参数;
利用所述默认参数执行所述连接任务。
6.根据权利要求4所述的方法,其特征在于,在基于所述连接参数执行所述连接任务之后,还包括:展示所述连接任务的执行结果;其中,所述展示内容包括:
执行成功的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识;
执行失败的连接任务,以及与之对应的依赖服务标识和/或依赖服务中的方法标识。
7.根据权利要求6所述的方法,其特征在于,当存在执行失败的连接任务时,所述展示内容还包括:
对全部依赖服务再次建立连接的可视化选项按钮;和/或,
对建立连接失败的依赖服务再次建立连接的可视化选项按钮;和/或,
对依赖服务中建立连接失败的方法再次建立连接的可视化选项按钮。
8.根据权利要求7所述的方法,其特征在于,当接收到与所述可视化选项按钮对应的确定操作后,对于与该可视化选项按钮对应的依赖服务或方法,按权利要求3-5中任一所述的方法与依赖服务建立连接。
9.一种与依赖服务建立连接的装置,其特征在于,包括:
确定依赖服务模块,用于获取目标应用的依赖服务信息;
生成任务模块,用于根据所述依赖服务信息,创建用于与所述依赖服务建立连接的服务实例;根据所述服务实例生成连接任务;
执行任务模块,用于读取与所述连接任务相关的连接参数,基于所述连接参数执行所述连接任务,以建立与所述依赖服务的连接。
10.一种与依赖服务建立连接的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN202010603594.0A 2020-06-29 2020-06-29 一种与依赖服务建立连接的方法和装置 Pending CN113934548A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010603594.0A CN113934548A (zh) 2020-06-29 2020-06-29 一种与依赖服务建立连接的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010603594.0A CN113934548A (zh) 2020-06-29 2020-06-29 一种与依赖服务建立连接的方法和装置

Publications (1)

Publication Number Publication Date
CN113934548A true CN113934548A (zh) 2022-01-14

Family

ID=79272763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010603594.0A Pending CN113934548A (zh) 2020-06-29 2020-06-29 一种与依赖服务建立连接的方法和装置

Country Status (1)

Country Link
CN (1) CN113934548A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688555A (zh) * 2017-08-24 2018-02-13 无锡清华信息科学与技术国家实验室物联网技术中心 一种函数托管计算中依赖服务的通用提供方法
CN107710683A (zh) * 2015-06-22 2018-02-16 微软技术许可有限责任公司 弹性即服务
CN109522055A (zh) * 2018-11-01 2019-03-26 中国工商银行股份有限公司 基于分布式服务调用的连接预热方法及系统
CN110674172A (zh) * 2019-09-20 2020-01-10 苏州浪潮智能科技有限公司 数据查询方法及装置
US20200089547A1 (en) * 2018-08-24 2020-03-19 Hans Aaron Rempel Product-as-a-service for connected devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107710683A (zh) * 2015-06-22 2018-02-16 微软技术许可有限责任公司 弹性即服务
CN107688555A (zh) * 2017-08-24 2018-02-13 无锡清华信息科学与技术国家实验室物联网技术中心 一种函数托管计算中依赖服务的通用提供方法
US20200089547A1 (en) * 2018-08-24 2020-03-19 Hans Aaron Rempel Product-as-a-service for connected devices
CN109522055A (zh) * 2018-11-01 2019-03-26 中国工商银行股份有限公司 基于分布式服务调用的连接预热方法及系统
CN110674172A (zh) * 2019-09-20 2020-01-10 苏州浪潮智能科技有限公司 数据查询方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邵新: "基于SSH的电影院网上订票系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 April 2017 (2017-04-15), pages 2 *

Similar Documents

Publication Publication Date Title
CN110601952A (zh) 多渠道消息通知发送方法和装置
CN110708346A (zh) 信息处理系统和方法
CN111045833A (zh) 接口调用的方法和装置
CN113076153B (zh) 一种接口调用方法和装置
CN108984197B (zh) 一种代码更新方法和装置
CN112084042A (zh) 一种消息处理的方法和装置
CN111488268A (zh) 自动化测试的调度方法和调度装置
CN112860447B (zh) 一种不同应用间的交互方法和系统
CN113934548A (zh) 一种与依赖服务建立连接的方法和装置
CN113760487B (zh) 一种业务处理方法和装置
CN112822089B (zh) 用于添加好友的方法和设备
CN114417318A (zh) 第三方页面的跳转方法、装置和电子设备
CN112732728A (zh) 一种数据同步方法和系统
CN113743630A (zh) 智能呼叫预约执行的方法和装置
CN113742617A (zh) 一种缓存更新的方法和装置
CN112783665B (zh) 接口补偿的方法和装置
CN114979132B (zh) 一种集群组件状态探测的方法和装置
CN113688152B (zh) 一种系统功能自校验方法和装置
CN113778504B (zh) 一种发布方法、发布系统及路由装置
CN110727739B (zh) 一种数据存储的方法和装置
WO2022222794A1 (zh) 交互方法、装置和电子设备
CN110262756B (zh) 用于缓存数据的方法和装置
CN113556276A (zh) 一种发送邮件的方法和装置
US10126993B2 (en) Routing outputs from jobs submitted on a mainframe system
CN113722548A (zh) 一种业务系统中引用关系的处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination