CN106375458B - 服务调用***、方法及装置 - Google Patents

服务调用***、方法及装置 Download PDF

Info

Publication number
CN106375458B
CN106375458B CN201610815820.5A CN201610815820A CN106375458B CN 106375458 B CN106375458 B CN 106375458B CN 201610815820 A CN201610815820 A CN 201610815820A CN 106375458 B CN106375458 B CN 106375458B
Authority
CN
China
Prior art keywords
application
service
identifier
link
call
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.)
Active
Application number
CN201610815820.5A
Other languages
English (en)
Other versions
CN106375458A (zh
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.)
Shanghai jiufangyun Intelligent Technology Co.,Ltd.
Original Assignee
Shanghai Silver Competition Computer Science And 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 Shanghai Silver Competition Computer Science And Technology Co Ltd filed Critical Shanghai Silver Competition Computer Science And Technology Co Ltd
Priority to CN201610815820.5A priority Critical patent/CN106375458B/zh
Publication of CN106375458A publication Critical patent/CN106375458A/zh
Application granted granted Critical
Publication of CN106375458B publication Critical patent/CN106375458B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种调用***、方法及装置,属于计算机技术领域。所述***包括:第一应用接收第二应用发送的第一调用请求,该第一调用请求中携带有第一服务的标识和链路标识;第一应用查询具备第一服务的标识的服务接口,利用该服务接口将第一调用请求转发至提供第一服务的第三应用,在第一应用中不存在具备该链路标识的链路时,按照第二应用、第三应用的顺序生成与该链路标识对应的链路;第三应用在第三应用具备第一服务对应的服务数据时,向第一应用发送携带有服务数据的第一调用应答;第一应用将第一调用应答转发至第二应用。解决了相关技术中未对应用间的服务调用进行监控,难以获得调用链路的技术问题,达到了快速获取调用链路的效果。

Description

服务调用***、方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种服务调用***、方法及装置。
背景技术
分布式应用中一个应用可提供多个服务。随着分布式应用的发展,用户的一个请求可能会涉及到若干个服务的协同处理,服务的调用链路也越来越复杂。
在分布式应用响应用户请求的过程中发生故障时,通过分析此次响应用户请求所涉及的调用链路可提高定位出故障应用的速度。然而,相关技术中未对应用间的服务调用进行监控,难以获得调用链路。
发明内容
为了解决现有技术中未对应用间的服务调用进行监控,难以获得调用链路的问题,本发明实施例提供了一种服务调用***、方法及装置。所述技术方案如下:
第一方面,提供了一种服务调用***,所述***包括:第一应用、第二应用和第三应用,所述第一应用接收所述第二应用发送的第一调用请求,所述第一调用请求中携带有第一服务的标识和链路标识;所述第一应用查询具备所述第一服务的标识的服务接口,利用所述服务接口将所述第一调用请求转发至提供所述第一服务的第三应用,在所述第一应用中不存在具备所述链路标识的链路时,按照所述第二应用、所述第三应用的顺序生成与所述链路标识对应的链路;所述第三应用在所述第三应用具备所述第一服务对应的服务数据时,向所述第一应用发送携带有所述服务数据的第一调用应答;所述第一应用将所述第一调用应答转发至所述第二应用。
通过第二应用在需要对第三应用的第一服务进行调用时,将携带有第一服务的标识和链路标识的第一调用请求发送至第一应用,由第一应用将第一调用请求转发至第三应用,当第三应用具备第一服务对应的服务数据时,也将携带有服务数据的第一调用应答发送至第一应用,由第一应用将第一调用应答转发至第二应用,由于第二应用在对第三应用的第一服务进行调用时,第二应用与第三应用之间的交互均需要通过第一应用转发,第一应用可对应用间的服务调用进行监控,解决了相关技术中未对应用间的服务调用进行监控,难以获得调用链路的问题,达到了快速获取调用链路的效果。
可选的,所述***还包括第四应用,所述第三应用在所述第三应用需要调用第二服务以获取所述第一服务对应的服务数据时,向所述第一应用发送携带有所述链路标识和所述第二服务的标识的第二调用请求;所述第一应用查询具备所述第二服务的标识的服务接口,利用所述服务接口将所述第二调用请求转发至提供所述第二服务的第四应用,将所述第四应用添加至与所述链路标识对应的链路中所述第三应用的后面;所述第四应用在所述第四应用具备所述第二服务对应的服务数据时,向所述第一应用发送携带有所述服务数据的第二调用应答;所述第一应用将所述第二调用应答转发至所述第三应用。
可选的,所述第一应用记录所述第一应用向第三应用转发所述第一调用请求的第一时刻;所述第一应用记录接收到所述第三应用发送的第一调用应答的第二时刻,将所述第二时刻减去所述第一时刻,将得到的差值作为所述第三应用针对所述第一调用请求的响应时长。通过记录第一应用向第三应用转发第一调用请求的第一时刻和记录接收到第三应用发送的第一调用应答的第二时刻,计算出第三应用针对第一调用请求的响应时长,使得服务调用过程中发生故障时,可通过分析响应时长和调用链路快速确定出故障应用。
第二方面,提供了一种服务调用方法,应用于服务调用***的第一应用中,所述服务调用***还包括第二应用和第三应用,所述方法包括:接收所述第二应用发送的第一调用请求,所述第一调用请求中携带有第一服务的标识和链路标识;查询具备所述第一服务的标识的服务接口,利用所述服务接口将所述第一调用请求转发至提供所述第一服务的第三应用,在所述第一应用中不存在具备所述链路标识的链路时,按照所述第二应用、所述第三应用的顺序生成与所述链路标识对应的链路;接收所述第三应用发送的携带有所述服务数据的第一调用应答,所述第一调用应答是所述第三应用在所述第三应用具备所述第一服务对应的服务数据时发送的;将所述第一调用应答转发至所述第二应用。
可选的,所述服务调用***还包括第四应用,所述方法还包括:接收所述第三应用发送的携带有所述链路标识和所述第二服务的标识的第二调用请求,所述第二调用请求是所述第三应用在所述第三应用需要调用第二服务以获取所述第一服务对应的服务数据时发送的;查询具备所述第二服务的标识的服务接口,利用所述服务接口将所述第二调用请求转发至提供所述第二服务的第四应用,将所述第四应用添加至与所述链路标识对应的链路中所述第三应用的后面;接收所述第四应用发送的携带有服务数据的第二调用应答,所述第二调用应答是所述第四应用在所述第四应用具备所述第二服务对应的服务数据时发送的;将所述第二调用应答转发至所述第三应用。
可选的,所述方法包括:记录所述第一应用向第三应用转发所述第一调用请求的第一时刻;记录接收到所述第三应用发送的第一调用应答的第二时刻,将所述第二时刻减去所述第一时刻,将得到的差值作为所述第三应用针对所述第一调用请求的响应时长。
第三方面,提供了一种服务调用装置,应用于服务调用***的第一应用中,所述服务调用***还包括第二应用和第三应用,所述装置包括:第一接收模块,用于接收所述第二应用发送的第一调用请求,所述第一调用请求中携带有第一服务的标识和链路标识;第一查询模块,用于查询具备所述第一服务的标识的服务接口,利用所述服务接口将所述第一调用请求转发至提供所述第一服务的第三应用,在所述第一应用中不存在具备所述链路标识的链路时,按照所述第二应用、所述第三应用的顺序生成与所述链路标识对应的链路;第二接收模块,用于接收所述第三应用发送的携带有所述服务数据的第一调用应答,所述第一调用应答是所述第三应用在所述第三应用具备所述第一服务对应的服务数据时发送的;第一转发模块,用于将所述第一调用应答转发至所述第二应用。
可选的,所述服务调用***还包括第四应用,所述装置还包括:第三接收模块,用于接收所述第三应用发送的携带有所述链路标识和所述第二服务的标识的第二调用请求,所述第二调用请求是所述第三应用在所述第三应用需要调用第二服务以获取所述第一服务对应的服务数据时发送的;第二查询模块,用于查询具备所述第二服务的标识的服务接口,利用所述服务接口将所述第二调用请求转发至提供所述第二服务的第四应用,将所述第四应用添加至与所述链路标识对应的链路中所述第三应用的后面;第四接收模块,用于接收所述第四应用发送的携带有服务数据的第二调用应答,所述第二调用应答是所述第四应用在所述第四应用具备所述第二服务对应的服务数据时发送的;第二转发模块,用于将所述第二调用应答转发至所述第三应用。
可选的,所述装置还包括:记录模块,用于记录所述第一应用向第三应用转发所述第一调用请求的第一时刻;计算模块,用于记录接收到所述第三应用发送的第一调用应答的第二时刻,将所述第二时刻减去所述记录模块记录的第一时刻,将得到的差值作为所述第三应用针对所述第一调用请求的响应时长。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的服务调用***的结构框图;
图2A是本发明一个实施例中提供的服务调用***实现服务调用过程的流程图;
图2B是本发明一个实施例中提供的服务调用***在进行服务调用时应用间交互的示意图;
图2C是本发明一个实施例中提供的服务调用对应链路的示意图;
图3A是本发明另一个实施例中提供的服务调用***实现服务调用过程的流程图;
图3B是本发明另一个实施例中提供的服务调用***在进行服务调用时应用间交互的示意图;
图3C是本发明另一个实施例中提供的服务调用对应链路的示意图;
图3D是本发明另一个实施例中提供的另一个服务调用对应链路的示意图;
图3E是本发明一个实施例中提供的统计每个服务调用的响应时长的流程图;
图4是本发明一个实施例中提供的服务调用装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明一个实施例提供的服务调用***的结构框图。如图1所示,服务调用***至少包括第一应用110、第二应用120、第三应用130和第四应用140。
第二应用120和第三应用130为服务调用***中提供至少一个服务的应用。
第二应用120与第一应用110可通过通信网络相连,第三应用130与第一应用110可通过通信网络相连,通信网络为无线网络或者有线网络。
可选的,第四应用140与第一应用110可通过通信网络相连,通信网络为无线网络或者有线网络。第四应用140可提供至少一个服务。
可选的,该服务调用***还可包括其他可提供至少一个服务的应用(图中未示出),该应用与第一应用110可通过通信网络相连。
图2A是本发明一个实施例中提供的服务调用***实现服务调用过程的流程图,图2B是本发明一个实施例中提供的服务调用***在进行服务调用时应用间交互的示意图,下面结合图2A和图2B对该实现服务调用过程进行说明。如图2A所示,该服务调用***实现服务调用过程可以包括如下几个步骤:
步骤201,当第二应用需要调用第一服务时,第二应用向第一应用发送携带有第一服务的标识和链路标识的第一调用请求。
其中,第一服务由第二应用根据调用需求确定。举例来讲,第二应用为财务***,当用户利用第二应用进行员工资结算时,第二应用需要从考勤***获取员工考勤记录,此时第二应用可将第一服务确定为考勤记录服务。
可选的,第一服务的标识为第一服务的名称。
当第二应用调用第一服务的目的不是为其他应用提供服务的情况下,将第二应用对第一服务的调用认定为一级调用。
举例来讲,第二应用需要向第四应用提供服务A,而第二应用中不具备服务A对应的服务数据,需要从第三应用中获取服务B对应的服务数据以生成服务A对应的服务数据,此时第二应用需要对服务B进行调用,但第二应用对服务B的调用不是一级调用。在上述过程中,第二应用调用服务A的目的不是为其他应用提供服务数据,将第二应用对于服务A的调用认定为一级调用。
当第二应用对第一服务的调用为一级调用时,第二应用生成一个新的链路标识,并且生成的新链路标识与服务调用***中的任一应用生成的链路标识不相同。
举例来讲,第二应用对服务A的调用为一级调用,第二应用生成一个链路标识a;当第三应用对服务A的调用为一级调用时,第三应用生成一个链路标识b。当第三应用需要再次调用服务A,且对服务A的调用为一级调用时,第三应用生成一个新的链路标识c。
可选的,在第二应用生成新的链路标识时,可利用第二应用的标识和时间戳生成新的链路标识。
一般来讲,第二应用发送的第一调用请求中还可以包括第二应用的标识或网络地址。
步骤202,第一应用接收第二应用发送的第一调用请求,该第一调用请求中携带有第一服务的标识和链路标识。
步骤203,第一应用查询具备第一服务的标识的服务接口,利用服务接口将该第一调用请求转发至提供第一服务的第三应用。
其中,第三应用是服务调用***中可提供第一服务的应用。
一般来讲,第一应用中预先存储有各个服务对应的服务接口(英文:serviceinterface),一个服务接口与一个服务唯一对应。服务接口中通常还包含提供该服务接口对应服务的应用的入口点。
当第一应用获取到具备第一服务的标识的服务接口时,可使用该服务接口中的入口点与第三应用进行数据交互,将第一调用请求转发至第三应用。
步骤204,第一应用在第一应用中不存在具备该链路标识的链路时,按照第二应用、第三应用的顺序生成与该链路标识对应的链路。
当第二应用对第一服务的调用为一级调用时,第一应用中不存在具备该链路标识的链路,此时按照第二应用、第三应用的顺序生成与该链路标识对应的链路。
可选的,按照第二应用、第三应用的顺序生成与该链路标识对应的链路可通过以下几种可能的实施方式实现:
在第一种可能的实施方式中,利用第二应用的标识和第三应用的标识生成链路,并将第一调用请求中携带的链路标识确定为生成链路的标识。
举例来讲,如图2C(1)当第二应用对第三应用的服务A的调用为一级调用时,第二应用生成一个新的链路标识a。第一应用在接收到第二应用发送的携带有链路标识a和服务A标识的第一调用请求后,查询具备链路标识a的链路。由于第二应用对服务A的调用为一级调用,第一应用中不存在具备链路标识a的链路,此时将第三应用的标识P2排在第二应用的标识P1后,生成链路标识a的链路。
在第二种可能的实施方式中,利用第二应用的标识和第三应用的标识生成链路,将第一服务的标识添加至第二应用所在链路节点处。
举例来讲,如图2C(2)为具备链路标识a的链路,第一应用将第三应用的标识P2排在第二应用的标识P1后,并将服务A的标识S1添加至第二应用的标识P1所在链路节点处。
步骤205,在第三应用具备第一服务对应的服务数据时,第三应用向第一应用发送携带有服务数据的第一调用应答。
第一调用请求中通常携带有发送该第一调用请求的发送方信息,为第二应用的标识或网络地址。因此,第三应用可将第二应用的标识或网络地址作为接收方信息添加至第一调用应答中。
当第三应用获取到第一服务对应的服务数据时,将获取到的服务数据添加至第一调用应答中,并将该第一调用应答发送至第一应用。
可选的,第三应用将第一调用请求中携带的链路标识添加至第一调用应答中。
步骤206,第一应用将第一调用应答转发至第二应用。
由于第一调用应答中携带有接收方信息为第二应用的标识或网络地址,则第一应用可将第一调用应答转发至第二应用。
当第一调用应答中携带的接收方信息为第二应用的标识时,第一应用在本地查询第二应用的网络地址。其中,第一应用中预先存储了第二应用的网络地址与第二应用的标识之间的对应关系。
举例来讲,第三应用接收到第一应用发送的第一调用请求,第一调用请求中携带有服务A的标识。当第三应用的本地存储有服务A对应的服务数据时,第三应用将第一调用请求中的发送方信息第二应用的标识P1确定为第一调用应答的接收方信息,并将添加有服务A对应的服务数据的第一调用应答发送至第一应用。第一应用接收到第一调用应答后,在第一调用应答中查看接收方信息为第二应用的标识P1,则第一应用将第一调用应答转发至第二应用。
需要说明的一点是,其中步骤202、步骤203、步骤204和步骤206可以单独实现成为以第一应用为执行主体的服务调用方法。
综上所述,本发明实施例中提供的服务调用***,通过第二应用在需要对第三应用的第一服务进行调用时,将携带有第一服务的标识和链路标识的第一调用请求发送至第一应用,由第一应用将第一调用请求转发至第三应用,当第三应用具备第一服务对应的服务数据时,也将携带有服务数据的第一调用应答发送至第一应用,由第一应用将第一调用应答转发至第二应用,由于第二应用在对第三应用的第一服务进行调用时,第二应用与第三应用之间的交互均需要通过第一应用转发,第一应用可对应用间的服务调用进行监控,解决了相关技术中未对应用间的服务调用进行监控,难以获得调用链路的问题,达到了快速获取调用链路的效果。
当第三应用需要调用第二服务以获取第一服务对应的服务数据时,第三应用向第一应用发送携带有链路标识和第二服务的标识的第二调用请求,请求调用第二服务。
图3A是本发明另一个实施例中提供的服务调用***实现服务调用过程的流程图,图3B是本发明另一个实施例中提供的服务调用***在进行服务调用时应用间交互的示意图,下面结合图3A和图3B对该实现服务调用过程进行说明。如图3A所示,该服务调用***实现服务调用过程可以包括如下步骤:
步骤301,当第二应用需要调用第一服务时,第二应用向第一应用发送携带有第一服务的标识和链路标识的第一调用请求。
本步骤可参见步骤201的解释说明。
步骤302,第一应用接收第二应用发送的第一调用请求,查询具备第一服务的标识的服务接口,利用服务接口将该第一调用请求转发至提供第一服务的第三应用。
本步骤可参见步骤203的解释说明。
步骤303,在第一应用中不存在具备该链路标识的链路时,第一应用按照第二应用、第三应用的顺序生成与该链路标识对应的链路。
本步骤可参见步骤204的解释说明。
步骤304,第三应用接收第一应用发送的第一调用请求,当第三应用具备第一服务对应的服务数据时,向第一应用发送携带有服务数据的第一调用应答。
本步骤可参见步骤205的解释说明。
步骤305,第一应用在接收到第二应用发送的第一调用应答后,将第一调用应答转发至第二应用。
本步骤可参见步骤206的解释说明。
步骤306,当第三应用需要调用第二服务以获取第一服务对应的服务数据时,向第一应用发送携带有链路标识和第二服务的标识的第二调用请求。
当第三应用本地未存储有第一服务对应的服务数据,需要获取第二服务对应的服务数据以获取第一服务对应的服务数据的情况下,第三应用需要从提供第二服务的第四应用获取第二服务对应的服务数据。
如图3B所示,第三应用向第一应用发送携带有链路标识和第二服务的标识的第二调用请求。其中,这里所讲的链路标识与第一调用请求中的链路标识相同。
可选的,第二服务的标识为第二服务的名称。
步骤307,第一应用查询具备第二服务的标识的服务接口,利用服务接口将第二调用请求转发至提供第二服务的第四应用,将第四应用添加至与该链路标识对应的链路中第三应用的后面。
其中,第四应用为服务调用***中提供第二服务的应用。仍旧参见图3B,第一应用查询具备第二服务的标识的服务接口,利用该服务接口将第二调用请求转发至提供第二服务的第四应用。
再举例来讲,仍旧参见图3C(1),第一应用在接收到第二调用请求后,从第二调用请求中获取到的第二服务的标识,将提供第二服务的第四应用的标识P3添加至第三应用的标识P2的后面。
再举例来讲,仍旧参见图3C(2),第一应用将提供第二服务的第四应用的标识P3添加至第三应用的标识P2的后面,并将第二服务的标识S2添加至第三应用的标识P2所在链路节点处。
步骤308,第四应用接收第二调用请求后,在第四应用具备第二服务对应的服务数据时,第四应用向第一应用发送携带有服务数据的第二调用应答。
由于第二调用请求中包含了该第二调用请求的发送方的信息,且发送方的信息为第三应用的标识或网络地址,因此第四应用可将第二应用的标识或网络地址作为接收方信息添加至第二调用应答中。第四应用将携带有第二服务对应的服务数据的第二调用应答发送至第一应用。
可选的,第四应用将第二调用请求中携带的链路标识添加至第二调用应答中。
步骤309,第一应用将第二调用应答转发至第三应用。
由于第二调用应答中携带有接收方的信息,且接收方的信息为第三应用的标识或网络地址,因此第一应用将第二调用应答转发至第三应用。
当第二调用应答中携带的接收方信息为第三应用的标识时,第一应用在本地查询第三应用的网络地址。其中,第一应用中预先存储了第三应用的网络地址与第三应用的标识之间的对应关系。
需要说明的一点是,第三应用在获取到第二服务对应的服务数据后,若能够利用第二服务对应的服务数据获取第一服务对应的服务数据,则执行步骤304中向第一应用发送携带有服务数据的第一调用应答和步骤305。这里仅以利用第二服务对应的服务数据可获取第一服务对应的服务数据来举例说明,在实际应用中获取第一服务对应的服务数据可能还需要其他服务的服务数据,对于其他服务的服务数据的获取可参照步骤306至步骤309,这里就不再赘述。
举例来讲,当第三应用接收到携带有第一服务标识的第一调用请求时,第三应用需要利用第二服务对应的服务数据和第三服务对应的服务数据生成第一服务对应的服务数据。若第四应用提供第二服务,第五应用提供第三服务,则第三服务需要调用第四应用的第二服务和第五应用的第三服务,则上述过程中服务调用的链路如图3D所示。
另外,其中步骤302、步骤303、步骤303、步骤305、步骤307和步骤309可以单独实现成为以第一应用为执行主体的服务调用方法。
综上所述,本发明实施例中提供的服务调用***,通过第二应用在需要对第三应用的第一服务进行调用时,将携带有第一服务的标识和链路标识的第一调用请求发送至第一应用,由第一应用将第一调用请求转发至第三应用,当第三应用具备第一服务对应的服务数据时,也将携带有服务数据的第一调用应答发送至第一应用,由第一应用将第一调用应答转发至第二应用,由于第二应用在对第三应用的第一服务进行调用时,第二应用与第三应用之间的交互均需要通过第一应用转发,第一应用可对应用间的服务调用进行监控,解决了相关技术中未对应用间的服务调用进行监控,难以获得调用链路的问题,达到了快速获取调用链路的效果。
可选的,第一应用还可统计每个服务调用的响应时长,具体可通过如图3E所示的几个步骤实现。
步骤310a,第一应用记录第一应用向第三应用转发第一调用请求的第一时刻。
步骤310b,第一应用记录接收到第三应用发送的第一调用应答的第二时刻,将第二时刻减去第一时刻,将得到的差值作为第三应用针对第一调用请求的响应时长。
其中,第一调用应答携带的链路标识与第一调用请求中的链路标识相同。
举例来讲,第一应用向第三应用转发第一调用请求的第一时刻为8:15:23,第一调用请求中的链路标识为a,第一应用从第三应用接收到携带有链路标识a的第一调用应答的第二时刻为8:15:25,则第三应用针对第一调用请求的响应时长为2秒。
通过记录第一应用向第三应用转发第一调用请求的第一时刻和记录接收到第三应用发送的第一调用应答的第二时刻,计算出第三应用针对第一调用请求的响应时长,使得服务调用过程中发生故障时,可通过分析响应时长和调用链路快速确定出故障应用。
可选的,第一应用还可以统计每个服务被调用的次数和每个应用的负载情况。
通过统计每个服务被调用的次数和每个应用的负载情况可对服务调用***中的服务调用进行分析。
可选的,第一应用将同一应用的各个服务接口归为一类。
相应的,第二应用在向第一应用发送第一调用请求前,第二应用将第一服务的标识和提供第一服务的标识的第三应用的标识添加至第一调用请求中。当第一应用接收到第一调用请求时,第一应用从具备第三应用的标识的一类服务接口中确定出具备第一服务的标识的接口。
另外,第一应用获取的服务调用的链路、每个服务被调用的次数、每个应用的负载情况、服务调用的响应时长均可作为分析服务调用***中服务调用的参考数据,还可作为优化服务调用***的参考数据。
图4是本发明一个实施例中提供的服务调用装置的框图。如图4所示,该服务调用装置应用于如图1所示的第一应用中,该服务调用装置包括:第一接收模块410、第一查询模块420、第二接收模块430和第一转发模块440。
第一接收模块410,用于接收第二应用发送的第一调用请求,该第一调用请求中携带有第一服务的标识和链路标识。
第一查询模块420,用于查询具备第一服务的标识的服务接口,利用该服务接口将第一调用请求转发至提供第一服务的第三应用,在第一应用中不存在具备链路标识的链路时,按照第二应用、第三应用的顺序生成与该链路标识对应的链路。
第二接收模块430,用于接收第三应用发送的携带有服务数据的第一调用应答,该第一调用应答是第三应用在第三应用具备第一服务对应的服务数据时发送的。
第一转发模块440,用于将第一调用应答转发至第二应用。
在一种可能的实施方式中,该服务调用装置,还包括:
第三接收模块,用于接收第三应用发送的携带有该链路标识和第二服务的标识的第二调用请求,该第二调用请求是第三应用在第三应用需要调用第二服务以获取第一服务对应的服务数据时发送的。
第二查询模块,用于查询具备第二服务的标识的服务接口,利用该服务接口将第二调用请求转发至提供第二服务的第四应用,将第四应用添加至与链路标识对应的链路中第三应用的后面;
第四接收模块,用于接收第四应用发送的携带有服务数据的第二调用应答,该第二调用应答是第四应用在第四应用具备第二服务对应的服务数据时发送的。
第二转发模块,用于将第二调用应答转发至第三应用。
在一种可能的实施方式中,该服务调用装置,还包括:记录模块和计算模块。
记录模块,用于记录第一应用向第三应用转发第一调用请求的第一时刻。
计算模块,用于记录接收到第三应用发送的第一调用应答的第二时刻,将第二时刻减去记录模块记录的第一时刻,将得到的差值作为第三应用针对第一调用请求的响应时长。
综上所述,本发明实施例中提供的服务调用装置,第一应用通过在第二应用和第三应用之间转发第一调用请求和第一调用应答,实现了对应用间服务调用的监控,可获知第一应用和第三应用之间的调用关系,解决了相关技术中未对应用间的服务调用进行监控,难以获得调用链路的问题,达到了快速获取调用链路的效果。
需要说明的是:上述实施例中提供的服务调用装置在进行服务调用时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将第一应用的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务调用装置与服务调用方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”、“第三”、“第四”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分或对象。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种服务调用***,其特征在于,所述***包括:第一应用、第二应用、第三应用和第四应用;
所述第一应用接收所述第二应用发送的第一调用请求,所述第一调用请求中携带有第一服务的标识和链路标识;
所述第一应用查询具备所述第一服务的标识的服务接口,利用所述服务接口将所述第一调用请求转发至提供所述第一服务的所述第三应用,在所述第一应用中不存在具备所述链路标识的链路时,利用所述第二应用的标识和所述第三应用的标识生成链路,将所述第一服务的标识添加至所述第二应用所在链路节点处;
所述第三应用在所述第三应用具备所述第一服务对应的服务数据时,向所述第一应用发送携带有所述服务数据的第一调用应答;
所述第一应用将所述第一调用应答转发至所述第二应用;
所述第三应用在所述第三应用需要调用第二服务以获取所述第一服务对应的服务数据时,向所述第一应用发送携带有所述链路标识和所述第二服务的标识的第二调用请求;
所述第一应用查询具备所述第二服务的标识的服务接口,利用所述服务接口将所述第二调用请求转发至提供所述第二服务的所述第四应用,将所述第四应用添加至与所述链路标识对应的链路中所述第三应用的后面;
所述第四应用在所述第四应用具备所述第二服务对应的服务数据时,向所述第一应用发送携带有所述服务数据的第二调用应答;
所述第一应用将所述第二调用应答转发至所述第三应用。
2.根据权利要求1所述的***,其特征在于,
所述第一应用记录所述第一应用向所述第三应用转发所述第一调用请求的第一时刻;
所述第一应用记录接收到所述第三应用发送的所述第一调用应答的第二时刻,将所述第二时刻减去所述第一时刻,将得到的差值作为所述第三应用针对所述第一调用请求的响应时长。
3.一种服务调用方法,其特征在于,应用于服务调用***的第一应用中,所述服务调用***还包括第二应用、第三应用和第四应用,所述方法包括:
接收所述第二应用发送的第一调用请求,所述第一调用请求中携带有第一服务的标识和链路标识;
查询具备所述第一服务的标识的服务接口,利用所述服务接口将所述第一调用请求转发至提供所述第一服务的所述第三应用,在所述第一应用中不存在具备所述链路标识的链路时,利用所述第二应用的标识和所述第三应用的标识生成链路,将所述第一服务的标识添加至所述第二应用所在链路节点处;
接收所述第三应用发送的携带有服务数据的第一调用应答,所述第一调用应答是所述第三应用在所述第三应用具备所述第一服务对应的服务数据时发送的;
将所述第一调用应答转发至所述第二应用;
接收所述第三应用发送的携带有所述链路标识和第二服务的标识的第二调用请求,所述第二调用请求是所述第三应用在所述第三应用需要调用所述第二服务以获取所述第一服务对应的服务数据时发送的;
查询具备所述第二服务的标识的服务接口,利用所述服务接口将所述第二调用请求转发至提供所述第二服务的所述第四应用,将所述第四应用添加至与所述链路标识对应的链路中所述第三应用的后面;
接收所述第四应用发送的携带有服务数据的第二调用应答,所述第二调用应答是所述第四应用在所述第四应用具备所述第二服务对应的服务数据时发送的;
将所述第二调用应答转发至所述第三应用。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
记录所述第一应用向所述第三应用转发所述第一调用请求的第一时刻;
记录接收到所述第三应用发送的所述第一调用应答的第二时刻,将所述第二时刻减去所述第一时刻,将得到的差值作为所述第三应用针对所述第一调用请求的响应时长。
5.一种服务调用装置,其特征在于,应用于服务调用***的第一应用中,所述服务调用***还包括第二应用、第三应用和第四应用,所述装置包括:
第一接收模块,用于接收所述第二应用发送的第一调用请求,所述第一调用请求中携带有第一服务的标识和链路标识;
第一查询模块,用于查询具备所述第一服务的标识的服务接口,利用所述服务接口将所述第一调用请求转发至提供所述第一服务的所述第三应用,在所述第一应用中不存在具备所述链路标识的链路时,利用所述第二应用的标识和所述第三应用的标识生成链路,将所述第一服务的标识添加至所述第二应用所在链路节点处;
第二接收模块,用于接收所述第三应用发送的携带有服务数据的第一调用应答,所述第一调用应答是所述第三应用在所述第三应用具备所述第一服务对应的服务数据时发送的;
第一转发模块,用于将所述第一调用应答转发至所述第二应用;
第三接收模块,用于接收所述第三应用发送的携带有所述链路标识和第二服务的标识的第二调用请求,所述第二调用请求是所述第三应用在所述第三应用需要调用所述第二服务以获取所述第一服务对应的服务数据时发送的;
第二查询模块,用于查询具备所述第二服务的标识的服务接口,利用所述服务接口将所述第二调用请求转发至提供所述第二服务的所述第四应用,将所述第四应用添加至与所述链路标识对应的链路中所述第三应用的后面;
第四接收模块,用于接收所述第四应用发送的携带有服务数据的第二调用应答,所述第二调用应答是所述第四应用在所述第四应用具备所述第二服务对应的服务数据时发送的;
第二转发模块,用于将所述第二调用应答转发至所述第三应用。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
记录模块,用于记录所述第一应用向所述第三应用转发所述第一调用请求的第一时刻;
计算模块,用于记录接收到所述第三应用发送的所述第一调用应答的第二时刻,将所述第二时刻减去所述记录模块记录的第一时刻,将得到的差值作为所述第三应用针对所述第一调用请求的响应时长。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,所述程序用于实现如权利要求3或4所述的服务调用方法。
CN201610815820.5A 2016-09-08 2016-09-08 服务调用***、方法及装置 Active CN106375458B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610815820.5A CN106375458B (zh) 2016-09-08 2016-09-08 服务调用***、方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610815820.5A CN106375458B (zh) 2016-09-08 2016-09-08 服务调用***、方法及装置

Publications (2)

Publication Number Publication Date
CN106375458A CN106375458A (zh) 2017-02-01
CN106375458B true CN106375458B (zh) 2019-12-13

Family

ID=57899492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610815820.5A Active CN106375458B (zh) 2016-09-08 2016-09-08 服务调用***、方法及装置

Country Status (1)

Country Link
CN (1) CN106375458B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933724B (zh) * 2017-03-16 2020-06-05 北京搜狐新媒体信息技术有限公司 一种分布式信息追踪***、信息处理方法及装置
CN107404420B (zh) * 2017-09-11 2021-10-15 北京奇艺世纪科技有限公司 一种调用链路性能监控方法及装置
CN108021462B (zh) * 2017-12-08 2019-06-04 北京百度网讯科技有限公司 用于调用云服务的方法和装置
CN108632111A (zh) * 2018-04-02 2018-10-09 广东能龙教育股份有限公司 一种基于日志的服务链路监控方法
CN109286608B (zh) * 2018-08-20 2022-08-12 中国平安人寿保险股份有限公司 调用链处理方法、装置及存储设备、计算机设备
CN109120631B (zh) * 2018-09-04 2021-05-14 苏州科达科技股份有限公司 功能调用***、方法、装置及存储介质
CN111142960B (zh) * 2018-11-02 2023-11-14 中国电信股份有限公司 接口提供方法、装置和***
CN112491942B (zh) * 2019-09-12 2024-04-16 曙光信息产业(北京)有限公司 集群服务访问方法、装置和计算机设备
CN110661792B (zh) * 2019-09-18 2022-04-05 泰康保险集团股份有限公司 服务有序调用方法、装置、电子设备及存储介质
CN110807050B (zh) * 2019-09-25 2023-05-30 平安科技(深圳)有限公司 性能分析方法、装置、计算机设备及存储介质
CN113590341B (zh) * 2021-09-27 2022-02-22 腾讯科技(深圳)有限公司 服务组件调用方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1860761A (zh) * 2003-06-05 2006-11-08 英特特拉斯特技术公司 用于对等服务编排的可互操作***和方法
CN101282227A (zh) * 2008-05-13 2008-10-08 华为技术有限公司 对服务进行计费的方法、集中控制设备和***
CN101296243A (zh) * 2008-06-26 2008-10-29 阿里巴巴集团控股有限公司 一种服务集成平台***及提供互联网服务的方法
CN105045110A (zh) * 2015-05-28 2015-11-11 北京海尔广科数字技术有限公司 一种家电服务调用请求转发方法及装置
CN105681137A (zh) * 2014-11-20 2016-06-15 北京海尔广科数字技术有限公司 用于服务调用的方法和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219316B (zh) * 2014-09-12 2018-03-23 微梦创科网络科技(中国)有限公司 一种分布式***中的调用请求处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1860761A (zh) * 2003-06-05 2006-11-08 英特特拉斯特技术公司 用于对等服务编排的可互操作***和方法
CN101282227A (zh) * 2008-05-13 2008-10-08 华为技术有限公司 对服务进行计费的方法、集中控制设备和***
CN101296243A (zh) * 2008-06-26 2008-10-29 阿里巴巴集团控股有限公司 一种服务集成平台***及提供互联网服务的方法
CN105681137A (zh) * 2014-11-20 2016-06-15 北京海尔广科数字技术有限公司 用于服务调用的方法和设备
CN105045110A (zh) * 2015-05-28 2015-11-11 北京海尔广科数字技术有限公司 一种家电服务调用请求转发方法及装置

Also Published As

Publication number Publication date
CN106375458A (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
CN106375458B (zh) 服务调用***、方法及装置
CN111752799A (zh) 一种业务链路跟踪方法、装置、设备及储存介质
CN112788074B (zh) 数据发送方法、处理方法、接收方法及其设备、存储介质
CN112055078B (zh) 一种数据传输方法、装置、计算机设备和存储介质
CN103607476A (zh) 海量消息的分布式多阶段持久化的***及方法
CN110610376A (zh) 行为数据的响应方法、装置、计算机设备及存储介质
JP2014504106A (ja) 電気通信ネットワークにおけるサービスのオーケストレーションのための通信サービスブローカー
CN114745295A (zh) 数据采集方法、装置、设备和可读存储介质
CN108366098B (zh) 一种网络节点的数据交互方法及装置
CN114416075A (zh) 业务处理方法及装置
CN111708619A (zh) 基于消息队列和数据库的分布式事务处理方法及***
KR100738040B1 (ko) 개방형 모바일 비즈니스 지원 시스템의 api 제공 방법
CN116204438A (zh) 测试用例生成方法、自动化测试方法和相关装置
CN106357654B (zh) 远程过程调用方法、装置及通信***
CA3065729A1 (en) Business rules processing framework
CN112804359A (zh) 提供跨链消息的方法和装置
CN109391658A (zh) 一种账号数据同步方法及其设备、存储介质、终端
CN110149365B (zh) 服务适配方法、设备、***以及计算机可读介质
CN115858466A (zh) 一种操作日志生成方法、装置、设备及介质
CN114897532A (zh) 操作日志处理方法、***、装置、设备和存储介质
US11582345B2 (en) Context data management interface for contact center
EP1820311A1 (en) A messaging gateway and method
CN113992664A (zh) 一种集群通信的方法、相关装置及存储介质
CN115208956B (zh) 区块链网关的实现方法
CN114791833B (zh) 实现动态话单抽取的方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 200125 Qingpu District, Shanghai green Ping Road, No. 1, building 153, room C, room 1,

Applicant after: Shanghai silver competition computer science and Technology Co., Ltd.

Address before: 200125 Qingpu District, Shanghai green Ping Road, No. 1, building 153, room C, room 1,

Applicant before: SHANGHAI YINTIANXIA TECHNOLOGY CO., LTD.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210416

Address after: Room 202, 689 Haisheng Road, Shanyang Town, Jinshan District, Shanghai, 201508

Patentee after: Shanghai jiufangyun Intelligent Technology Co.,Ltd.

Address before: 200125 Qingpu District, Shanghai green Ping Road, No. 1, building 153, room C, room 1,

Patentee before: SHANGHAI YINSAI COMPUTER TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right