CN109951576B - 用于监视服务的方法、设备和存储介质 - Google Patents

用于监视服务的方法、设备和存储介质 Download PDF

Info

Publication number
CN109951576B
CN109951576B CN201811134606.9A CN201811134606A CN109951576B CN 109951576 B CN109951576 B CN 109951576B CN 201811134606 A CN201811134606 A CN 201811134606A CN 109951576 B CN109951576 B CN 109951576B
Authority
CN
China
Prior art keywords
service
response
health check
condition
service instance
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
CN201811134606.9A
Other languages
English (en)
Other versions
CN109951576A (zh
Inventor
H·R·科塔迪亚
M·Y·库姆里
J·L·雷奈尔
L·W·常
T·M·基姆
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Priority to CN202311175168.1A priority Critical patent/CN117176711A/zh
Publication of CN109951576A publication Critical patent/CN109951576A/zh
Application granted granted Critical
Publication of CN109951576B publication Critical patent/CN109951576B/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • 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/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • H04L41/5012Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF] determining service availability, e.g. which services are available at a certain point in time
    • H04L41/5016Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF] determining service availability, e.g. which services are available at a certain point in time based on statistics of service availability, e.g. in percentage or over a given time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/091Measuring contribution of individual network components to actual service level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • 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/75Indicating network or usage conditions on the user display

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Data Mining & Analysis (AREA)

Abstract

本发明题为“由计算设备提供的服务的健康状况监视”。本专利申请阐述了用于监视服务的状况的各种技术。根据一些实施方案,DNS服务器可实施监视服务的状况以便在多个可用性区域中实施循环DNS的健康检查引擎。服务的每个服务实例可包括被配置为(1)监视服务实例的状况、以及(2)对从健康检查引擎接收的健康检查消息进行响应的监视代理。监视代理也可被配置为(1)在跟踪窗口期间收集与服务实例的一个或多个服务依赖方相关联的统计数据、(2)基于在跟踪窗口期间收集的统计数据来计算至少一个比率、以及(3)通过将所述至少一个比率与阈值进行比较来生成服务实例的状况。

Description

用于监视服务的方法、设备和存储介质
技术领域
所描述的实施方案整体涉及基于网络的服务。更具体地,本文实施方案涉及用于监视包括服务依赖方的基于网络的服务的状况的技术。
背景技术
基于云端的服务在今天的数字经济中已经变得无所不在。移动设备包括大量应用程序,该应用程序被配置为从经由互联网访问的一个或多个服务请求数据。例如,共享搭乘应用程序可被用来叫车,被叫车辆被指示在用户的移动设备中的全球定位系统(GPS)传感器所提供的位置处接载用户。实时数据诸如股票价格和体育比赛得分可被递送到应用程序,该应用程序在显示屏上集聚数据。基于云端的存储服务使得文件能够被多个被允许访问基于云端的存储服务的设备共享或处理。基于云端的计算服务使得位于远程数据中心中的大量计算功率能够被客户端设备按需利用以解决涉及大量计算(例如,处理原始科学数据)的复杂问题。已经在互联网上实施的服务类型的示例在多样性和数量方面是相当大的。
值得注意的是,服务可被部署在多个地区中以及在每个地区内的多个可用性区域中,以便确保服务对客户端设备的高可用性。冗余是一种消除单点故障的方式,它涉及在世界各地不同地理位置处的多个可用性区域中的服务器上建立服务实例。域名系统(DNS)通过将主机名与网络地址(诸如互联网协议(IP)版本4(IPv4)或版本6(IPv6)网络地址)关联或对查找进行响应来提供用于在互联网上定位服务端点的装置。另外,DNS服务器可采用或集成用于监视不同IP地址上的服务的状况的能力,作为DNS系统自身的一部分。继而,DNS服务器可以基于服务的状况而添加或移除服务的主机名与不同的IP地址之间的关联。这样,可阻止来自客户端设备的针对服务的主机名的请求被传输给正在经历停机的服务实例。遗憾的是,用于监视服务状况的常规技术实施欠佳。例如,服务在问题与和正在经历停机的其他服务相关联的依赖方有关时可被归类为不可用。此外,当服务被归类为不可用时,用于(在适当的时候)将服务重新归类为可用的技术通常效率低下,从而增长客户端设备感知的停机时间。
发明内容
鉴于上述情况,所期望的是经改进的用于监视具有各种服务依赖方的服务的状况的技术。因此,并且如本文更详细地所阐述的,本专利申请描述了涉及用于(1)确定服务实例的状况、以及(2)向服务实例上游的健康检查引擎报告服务实例的状况,从而使得域名系统(DNS)服务器能够正确且快速地对服务的主机名与对应于服务实例的网络地址的关联进行归类的技术的各种实施方案。
根据一些实施方案,DNS服务器可实施监视服务的状况以便在多个地区和/或可用性区域中实施循环DNS服务的健康检查引擎。就这一点而言,服务的每个服务实例可包括被配置为(1)监视服务实例的状况、和(2)对从健康检查引擎接收的健康检查消息进行响应的监视代理。根据一些实施方案,监视代理可被配置为(1)在跟踪窗口期间收集与服务实例的一个或多个服务依赖方相关联的统计数据、(2)基于在跟踪窗口期间所收集的统计数据来计算至少一个比率、以及(3)通过将所述至少一个比率与阈值进行比较来生成服务实例的状况。
在一些实施方案中,用于服务实例的监视代理收集与一个或多个服务依赖方中的每个服务依赖方相关联的统计数据。根据一些实施方案,与网络接口相关联的服务依赖方的统计数据可包括以下中的一者或多者:(1)经由该网络接口传输给该服务依赖方的附加请求的数量、(2)从该服务依赖方接收的成功响应的数量、以及(3)从该服务依赖方接收的失败响应的数量,其中统计数据是在一段时间期间被收集的。继而,监视代理分析统计数据以确定服务实例的状况。服务实例的状况整体地反映所述一个或多个服务依赖方中每个服务依赖方的状况。在各种实施方案中,监视代理可被配置为针对每个服务依赖方计算从服务依赖方接收的成功响应与失败响应的比率。然后通过将与服务依赖方相关联的每个比率与阈值进行比较来确定服务实例的状况。具体地讲,服务实例的状况在每个服务依赖方的比率都高于阈值时被认为是第一状态(例如,肯定),并且在任何服务依赖方的比率低于阈值时被认为是第二状态(例如,否定)。
在一些实施方案中,监视代理监视服务实例所生成的响应以确定服务实例的状况,而不是监视从服务依赖方接收的响应。服务实例所生成的响应将整体地反映从服务依赖方接收的响应,因为从服务依赖方接收的任何失败响应将使得服务实例所生成的响应也是失败响应。另外,监视代理可被配置为计算服务实例所生成的成功响应与失败响应的比率,并且将这个比率与阈值进行比较以确定服务实例的状况。
在一些实施方案中,在确定服务实例的状况之前,检查统计数据以确定比率是否是统计相关的。当在跟踪窗口期间所收集的统计数据表明比率是基于数量比阈值小的在跟踪窗口期间由服务实例接收的多个请求(或者另选地,在跟踪窗口期间传输给服务依赖方中一者或多者的多个附加请求)时,服务实例的状况被保持为在前一跟踪窗口期间所确定的。
在一些实施方案中,服务器计算设备对于包括在多个服务器计算设备上执行的多个服务实例的分布式具体实施的服务可实施负载均衡器。根据一些实施方案,负载均衡器可包括被配置为基于这些服务实例中每一者的状况来监视服务的状况的监视代理。具体地讲,监视代理可被配置为(1)通过网络接口从健康检查引擎接收健康检查消息、(2)基于服务实例的状况来生成服务的状况、以及(3)将服务的状况传输给健康检查引擎。在一些实施方案中,监视代理可被配置为(1)将健康检查消息转发给服务实例、(2)从每个服务实例接收对健康检查消息的响应、(3)基于从服务实例接收的响应中肯定响应的数量和否定响应的数量来计算比率、以及(4)将比率与阈值进行比较以确定服务的状况。
在一些实施方案中,服务实例的状况或服务的状况可被反映在超文本传输协议(HTTP)响应消息中。具体地讲,反映服务或服务实例状况的状态的状况代码和/或状况消息可被选择并且包括在HTTP响应消息中。根据一些实施方案,所选择的状况代码可以是标准HTTP状况代码(例如,200好的、503服务不可用等)。但是,自定义状况代码和/或状况消息也可被包括在HTTP响应消息中,以指示服务或服务实例状况的状态。另选地,HTTP响应消息的消息主体可反映服务或服务实例状况的状态。
根据结合以举例的方式示出所述实施方案的原理的附图而进行的以下详细描述,本专利申请的其他方面和优点将变得显而易见。
附图说明
本公开通过下面结合附图的具体描述将更易于理解,其中类似的附图标记表示类似的结构元件。
图1示出了根据一些实施方案的可被配置为实施本文所述各种技术的不同方面的分布式环境的框图。
图2示出了根据一些实施方案的可被实施以保持服务的总体高可用性的分布式环境。
图3示出了根据一些实施方案的在服务实例和一个或多个服务依赖方之间传输的消息。
图4示出了根据一些实施方案的包括多个服务实例的服务。
图5示出了根据一些实施方案的用于监视服务实例的状况的示例性方法的流程图。
图6示出了根据一些实施方案的用于监视包括多个分布式服务实例的服务的状况的示例性方法的流程图。
图7示出了根据一些实施方案的可被用于实施本文所述的各种装置和/或方法的示例性计算设备的详细视图。
具体实施方式
在该部分描述了根据本申请的方法与装置的代表性应用。提供这些示例仅是为了添加语境并有助于理解所述实施方案。因此,对于本领域的技术人员而言将显而易见的是,可在没有这些具体细节中的一些或全部的情况下实践所述实施方案。在其他情况下,为了避免不必要地模糊所述实施方案,未详细描述熟知的处理步骤。其他应用也是可能的,使得以下示例不应被视为是限制性的。
在以下详细描述中,参考了形成说明书的一部分的附图,并且在附图中以例示的方式示出了根据所述实施方案的具体实施方案。虽然这些实施方案被描述得足够详细,以使本领域的技术人员能够实践所述实施方案,但是应当理解,这些示例不是限制性的;使得可以使用其他实施方案,并且可以在不脱离所述实施方案的实质和范围的情况下作出修改。
本专利申请描述了一种用于监视在分布式服务环境中实施的服务的实例的状况的技术。根据一些实施方案,服务可被实施成在多个可用性区域和一个或多个地理地区中的多个服务实例。如本文前面所述,所述多个服务实例可在被包括在一个或多个数据中心中的多个服务器计算设备上实施。因此,期望实施一种有效的健康状况监视系统,除了所述健康状况监视系统的其它应用之外,所述健康状况监视系统可被用于在服务被域名系统(DNS)归类为不可用时减小服务的停机时间。
为了实现上述目的,监视代理可被服务实施,并且服务器计算设备可执行服务的实例,在本文中被称为服务实例。根据一些实施方案,监视代理可被配置为收集与流入或流出服务实例的网络流量相关的统计数据。网络流量反映服务实例是正在成功地对服务所接收的请求进行响应还是由于一个或多个下游服务(在本文中被称为服务依赖方)导致的故障而当前不能对请求进行响应。就这一点而言,监视代理可基于在一段时间期间流经与服务实例相关联的一个或多个网络接口的流量来收集统计数据,以便确定服务实例的状况。
在一些实施方案中,服务或服务实例的状况被传输给DNS服务器中的健康检查引擎,以便更新DNS服务器所保持的数据结构(例如,表格、阵列等)中主机名与网络地址之间的关联的归类。根据一些实施方案,服务实例的状况可被传输给服务的负载均衡器中的监视代理。继而,负载均衡器可集聚多个服务实例中每一者的状况以确定服务的总体状况。服务的状况然后被传输给DNS服务器中的健康检查引擎,以便更新所述数据结构中主机名与网络地址之间的关联的归类。
现在将在下文中参考图1至图7来论述这些实施方案和其他实施方案。然而,本领域的技术人员将容易地理解,本文相对于这些附图的所给出的详细描述仅出于说明性目的并且不应理解为限制性的。
图1示出了根据一些实施方案的可被配置为实施本文所述各种技术的不同方面的一种示例性分布式环境100的框图。如图1所示,分布式环境100可包括分布在网络的一个或多个节点上的多个服务。如本文所用,术语“服务”可以是指在服务器计算设备上运行的一个或多个线程上实施的进程,其中所述一个或多个线程被配置为处理经由网络接口接收的请求。在一些实施方案中,服务可被实施为包括一组指令的被存储在计算机可读存储介质上的程序产品,所述一组指令在被服务器计算设备的至少一个处理器执行时使得所述至少一个处理器实施服务的特定功能性。在一些实施方案中,每个服务可并行地在网络的一个或多个节点上作为多个服务实例被执行。所述一个或多个节点可包括但不限于不同数据中心中的分开的服务器计算设备、单个数据中心中的分开的服务器计算设备、在单个数据中心或多个数据中心中的一个或多个服务器计算设备上执行的分开的虚拟机、单个服务器计算设备等等。
如图1所示,分布式环境100包括与多个服务依赖方相关联的第一服务110,即服务A。根据一些实施方案,第一服务110可被配置为处理来自一个或多个客户端的请求。如本文所用,术语“客户端”是指在客户端计算设备上运行的被配置为生成经由网络接口传输给服务的请求的一个或多个线程上实施的进程。继而,第一服务110可结合处理来自所述一个或多个客户端的请求而将附加请求传输给(与第一服务110相关联的)一个或多个附加服务。因此,第一服务110可依赖于所述一个或多个附加服务来生成对第一服务110从所述一个或多个客户端接收的请求的响应。另外,如果特定服务不能在没有从附加服务接收对发布给附加服务的附加请求的响应的情况下生成有效响应,则所述特定服务所指定的服务依赖方可被归类为“关键的”。如果为了生成对客户端的响应不需要来自附加服务的响应,则其他服务依赖方可被归类为“非关键的”。
如图1所示,第一服务110包括两个服务依赖方。具体地讲,第一服务110依赖于第二服务120(即,服务B)和第三服务130(即,服务C)。另外,第三服务130依赖于第四服务140,即服务D。在正常操作模式期间,第一服务110可用于处理来自一个或多个客户端的传入请求,例如来自特定客户端的第一请求。在处理第一请求时,第一服务110生成对第二服务120和第三服务130中每一者的附加请求。继而,第三服务130生成对第四服务140的另一附加请求。第四服务140返回响应给第三服务130。在接收到来自第四服务140的响应后,第三服务130返回响应给第一服务110。异步并且独立于第三服务130的操作,第二服务120也返回响应给第一服务110。继而,基于从第二服务120和第三服务130接收的对附加请求的响应,第一服务110可生成对第一请求的响应,并且将对第一请求的响应传输给客户端。
应当理解,在一些实施方案中,每个服务可被配置为基本上同时处理多个请求。例如,第一服务110内特定请求的处理可在等待来自第二服务120或第三服务130的响应时为空闲的。在第一服务110空闲时,第一服务110可处理来自附加客户端的附加请求。在各种实施方案中,服务可包括线程池,其中线程池中的每个线程可被分配用于基本上同时处理不同的请求。基本上同时处理不同的请求可以是指在包括被分配用于多个线程的多个相同处理单元的处理器内的不同线程中并行处理多个请求。另选地,基本上同时处理不同的请求可以是指在可被配置为在操作的时分复用模式中利用线程抢占的处理器内的不同线程中串行处理多个请求。
在一些实施方案中,请求和响应被构造成超文本传输协议(HTTP)消息。具体地,客户端计算设备可在网络接口的特定端口上与服务器计算设备建立连接。继而,客户端计算设备上的客户端可将指向网络接口的特定端口的HTTP请求传输给服务器计算设备。在服务器计算设备上执行的服务可被配置为监视HTTP请求的端口,处理HTTP请求以生成HTTP响应消息,并且将HTTP响应消息传输回客户端计算设备上的客户端。HTTP请求被构造成多种方法中的一种,所述方法包括但不限于GET方法、HEAD方法、POST方法、PUT方法和OPTION方法等其他方法。HTTP请求包括标识与请求相关联的方法和统一资源定位器(URL)的请求行。HTTP请求还包括包含一个或多个字段和可选消息主体的标头。HTTP响应消息包括标识状况代码和状况消息的状况行。HTTP响应消息也包括标头和可选消息主体。
在一些实施方案中,每个服务实例保持服务实例的状况,并且可被配置为对来自网络上健康检查引擎的健康检查消息进行响应。所述状况可以基于与服务实例相关联的服务依赖方的状况。例如,为了服务实例的状况为肯定的,所述状况可以要求任何关键的服务依赖方可用。在一些实施方案中,服务实例的状况的状态可被归类为肯定的或否定的(例如,两个状态)。肯定归类表示服务可用,而否定归类表示服务不可用。在各种实施方案中,除了肯定状态和否定状态之外或者代替肯定状态和否定状态,服务的状况可被归类成任意数量的不同状态。例如,状况可被归类为可用或不可用;状况可被归类为肯定、一般、欠佳和否定;等等。本文所述的示例性状态是设计选择,并且状况的状态的数量和描述可由软件开发方确定,只要状况反映至少两个状态即可。如本文所述,服务或服务实例的状况可以是指健康状况、操作状况、或表示服务或服务实例的状态的任何其他类型的状况。
图2示出了根据一些实施方案的可被实施以保持服务的总体高可用性的分布式环境200。正如本文前面所提到的,(一个或多个)服务的多个实例可在单个服务器计算设备上或者跨多个服务器计算设备来实施。在一些实施方案中,服务的冗余实例可在不同地理位置中的不同数据中心上实施。例如,如图2所示,每个数据中心210实施图1的分布式环境100的实例。例如,服务A的第一实例可在第一数据中心210-1中的第一服务器计算设备上实施,服务A的第二实例可在第二数据中心210-2中的第二服务器计算设备上实施。不同客户端250于是可连接到这两个数据中心210中每一者中的服务A的不同实例,从而为服务A的调配建立冗余。
在一些实施方案中,多个不同数据中心210中的每个数据中心可被配置为处理源自相应可用性区域内的请求。就这一点而言,每个数据中心210可包括网关服务器215,网关服务器215包括与公共网络地址诸如互联网的互联网协议(IP)地址相关联的网络接口。继而,连接到网络的各种客户端250可生成通过网络传输的对于服务的请求。具体地讲,所述请求可包括与服务相关联的URL。在一些情况下,URL可指定主机名,而不是数据中心210中所包括的特定网关服务器215的静态IP地址。就这一点而言,客户端250接收来自有效地将URL转换为IP地址的DNS服务器220的响应。根据一些实施方案,DNS服务器220包括使DNS服务器220能够将主机名转换为相应网关服务器215的IP地址的数据结构(例如,表格、阵列等)。在各种实施方案中,DNS服务器保持一个或多个服务的主机名与对应于服务的一个或多个服务实例的网络地址之间的关联的一个或多个数据结构。
在一些实施方案中,特定主机名可被转换成位于不同数据中心中的不同网关服务器的两个或更多个不同的网络地址。具体地,位于不同地理地区中的不同DNS服务器可将特定主机名与不同的网络地址相关联。例如,北美的DNS服务器可将主机名解析为位于北美的第一数据中心中的网关服务器的第一网络地址,而分开的在欧洲的DNS服务器可将该主机名解析为位于欧洲的第二数据中心中的网关服务器的第二网络地址。具体地,北美的客户端被配置为使用北美的DNS服务器,而欧洲的客户端被配置为使用欧洲的DNS服务器,这防止北美的客户端所产生的流量被发送到位于欧洲的服务实例,并且防止欧洲的客户端所产生的流量被发送到位于北美的服务实例。此类型的冗余可通过减少客户端与特定服务实例之间的在网络内的跳跃数量来减少延迟。
另一类型的冗余可通过在特定地区内使用多个冗余服务实例来提高服务的可用性。可在单个地区内实施多个可用性区域。如图2所示,第一数据中心210-1和第二数据中心210-2可以都位于同一地区(例如北美、欧洲等)中;然而,每个数据中心210可表示不同的可用性区域。单个DNS服务器220可实施循环DNS实践来将特定主机名解析为两个或更多个分开且不同的网络地址,从而实现一种负载均衡。继而,位于特定地区中的一些客户端250(诸如客户端250-1)将特定服务的主机名解析成第一数据中心210-1中的网关服务器215的网络地址,而位于该特定地区中的其他客户端(诸如客户端250-2)将该特定服务的主机名解析成第二数据中心210-2中的网关服务器215的网络地址。
应当理解,可通过在地区内不同地理位置的不同数据中心中实施多个服务实例来实现服务的总体高可用性。就这一点而言,当特定服务实例或数据中心停机时,DNS服务器220所处理的对于解析服务的主机名的请求可返回位于不同数据中心中的不同服务实例的网络地址之一。因此,特定服务的通信只有在多个数据中心中该服务的所有服务实例都停机时才无法递送,这是不常见的。
在一些实施方案中,DNS服务器220可包括健康检查引擎225,其周期性地检查向DNS服务器220注册的服务的状况。根据一些实施方案,健康检查引擎225可被配置为周期性地传输健康检查消息给所注册服务中的每一者。如本文前面所述,可通过将服务的主机名与一个或多个网络地址关联来向DNS服务器220注册服务。就这一点而言,健康检查引擎225可发送健康检查消息给每个所注册的网络地址处的服务实例。接收健康检查消息的服务实例于是可以用被包括在对健康检查消息的响应中的状况来对健康检查消息进行响应。在各种实施方案中,状况与状况代码相关联。例如,反映服务实例状况的状况代码可被选择为HTTP状况代码,诸如在服务实例的状况为肯定时可被选择为例如“200好的”,或者在服务实例的状况为否定时可被选择为“503服务不可用”。另选地,状况代码可以是反映状况的状态(例如,可用/不可用;肯定/一般/欠佳/否定;等)的自定义状况代码。任选地,状况除了状况代码之外还可包括状况消息。如果服务实例正在正确工作,则状况可指示服务实例可用。但是,如果服务实例没有正在正确工作,则状况可指示服务实例不可用。当健康检查引擎225接收到服务实例不可用的对健康检查消息的响应时,可从DNS服务器220中的数据结构中移除主机名与和该服务实例相关联的网络地址之间的关联,使得用与主机名相关联的其他网络地址中的一者来响应对于解析主机名的任何新请求。
在一些实施方案中,当健康检查消息指示服务实例不可用时,主机名与该服务实例的网络地址之间的关联的归类被标记为不可用,而不是将其从DNS服务器220中的数据结构移除。这样,DNS服务器220不将主机名解析成与该服务实例对应的网络地址。在此类实施方案中,健康检查引擎225可被配置为在一定延迟之后周期性地向在该网络地址处的服务实例传输健康检查消息以检查服务实例是否正在正确工作。如果服务实例的状况指示服务实例可用,则主机名与服务实例的网络地址之间的关联的归类被标记为可用,并且DNS服务器220被允许用与该特定服务实例对应的网络地址来解析服务的主机名。
在健康检查引擎225的朴素具体实施中,健康检查消息是被传输给服务实例的基本HTTP请求,并且服务实例返回HTTP响应消息,该HTTP响应消息在服务实例可用时包括例如状况代码2XX(例如,状况代码“200好的”),以及在服务实例不可用时包括例如状况代码4XX或5XX(例如,状况代码“404未找到”、状况代码“503服务不可用”等)。所述关联也可在服务器计算设备在超时周期之后没有返回任何HTTP响应消息时被标记为不可用。例如,如果网关服务器215经历故障并且不能将HTTP请求转发给服务实例,则数据中心210-1中的特定服务实例可能不返回对HTTP请求的HTTP响应消息。但是,此朴素具体实施没有明确地跟踪服务实例的服务依赖方。健康检查引擎225的朴素具体实施也没有基于服务实例的服务依赖方中每一者的状况来确定服务实例的状况。因此,需要并且在本文中描述了经改进的用于实施服务的健康检查的技术。
在各种实施方案中,健康检查引擎225可被实施在连接到DNS服务器220的单独服务器计算设备上。健康检查引擎225监视服务的状况并传输消息给DNS服务器220以便移除DNS服务器220的数据结构内的关联或更改DNS服务器220的数据结构内的关联的归类。在其他实施方案中,健康检查引擎225可被实施用于与DNS完全无关的目的。例如,健康检查引擎225可被配置为为了动态地更改基于web的应用的配置而监视服务的状况。应当理解,健康检查引擎225的功能可被实施用于与分析一个或多个服务的状况相关的任何有效目的。
图3示出了根据一些实施方案的在服务实例和一个或多个服务依赖方之间传输的消息。如图3所示,服务A的第一服务实例310在网络接口312处接收请求301。如本文所用,网络接口诸如网络接口312是指被服务器计算机设备分配给服务实例用于从其他计算设备接收数据或传输数据给其他计算设备的网络地址和端口号。服务A的第一服务实例310分配用于处理请求301的线程。在请求301的处理过程中,线程生成与服务A的第一服务依赖方相关联的附加请求302。附加请求302从网络接口314传输给服务B的第一服务实例320。此外,处理请求301可涉及线程生成与服务A的第二服务依赖方相关联的附加请求304。附加请求304从网络接口316传输给服务C的第一服务实例330。
如图3所示,服务B的第一服务实例320在网络接口322处接收附加请求302。服务B的第一服务实例320可分配用于处理附加请求302的线程。服务B的第一服务实例320于是生成响应303并将响应通过网络接口322传输给服务A的第一服务实例310。另外,服务C的第一服务实例330在网络接口332处接收附加请求304。服务C的第一服务实例330分配用于处理附加请求304的线程。在处理请求304期间,线程生成与服务C的服务依赖方相关联的附加请求305。附加请求305从网络接口334传输给服务D的第一服务实例340。
服务D的第一服务实例340在网络接口342处接收附加请求305。服务D的第一服务实例340可分配用于处理附加请求305的线程。服务D的第一服务实例340生成响应306并利用网络接口342将响应传输给服务C的第一服务实例330。在网络接口334处接收来自服务D的第一服务实例340的响应306之后,服务C的第一服务实例330生成响应307并通过网络接口322将响应307传输给服务A的第一服务实例310。继而,在网络接口314处接收来自服务B的第一服务实例320的响应303以及在网络接口316处接收来自服务C的第一服务实例330的响应307之后,服务A的第一服务实例310生成响应308并通过网络接口312将响应308传输给客户端。应当理解,附加请求302/304的传输顺序可取决于线程内指令的顺序。此外,服务A的第一服务实例310接收响应303/307的顺序相对于相应的请求302和请求304分别被传输给相应的服务B的第一服务实例320和服务C的第一服务实例330的顺序可以是乱序的。
在一些实施方案中,每个服务实例包括被配置为对健康检查消息(诸如DNS服务器220中的健康检查引擎225所生成的健康检查消息)进行响应的监视代理350。监视代理350保持服务实例的状况,并生成包括反映服务实例的状况的状况代码的对健康检查消息的响应。根据一些实施方案,状况代码指示服务实例是否正在正常工作并对来自客户端的请求进行响应。服务实例的状况也可反映服务依赖方的状况。例如,即使服务实例可用并且正在正确工作,但服务实例也可能由于一个或多个服务依赖方经历故障状态而不能对请求进行响应。
在一些实施方案中,监视代理350监视被分配给与服务依赖方相关联的服务实例的网络接口上的流量。具体地讲,监视代理350可被配置为跟踪由服务实例生成、并且通过网络接口传输给与服务依赖方相关联的服务实例的附加请求的数量。监视代理350也可被配置为计算响应于传输给与服务依赖方相关联的服务实例的附加请求而接收的成功响应与失败响应的比率。可对于一段时间(在本文中被称为“跟踪窗口”)跟踪请求的数量和成功响应与失败响应的比率。就这一点而言,服务实例的状况可基于请求的数量和成功响应与失败响应的比率来确定。在各种实施方案中,通过将服务依赖方的成功响应与失败响应的比率与阈值进行比较来确定服务实例的状况。例如,如果服务依赖方的成功响应与失败响应的比率高于所述阈值(例如,10:1、5:1等),则服务实例的状况可为肯定的(例如,服务实例可用)。相反,如果服务依赖方的成功响应与失败响应的比率低于所述阈值,则服务实例的状况可为否定的(例如,服务实例不可用)。
服务实例的状况可由监视代理350在每个跟踪窗口的结束处确定。在各种实施方案中,如果在跟踪窗口期间传输给服务依赖方的附加请求的数量低于第二阈值,则无论成功响应与失败响应的比率如何,在跟踪窗口的结束处服务实例的状况都保持与前一跟踪窗口的结束处服务实例的状况相同。换句话讲,当在跟踪窗口期间发送的附加请求的数量太小时,该比率可能没有准确地反映服务依赖方的状况。
在一些实施方案中,通过将相应的多个服务依赖方的成功响应与失败响应的比率与阈值进行比较来确定服务实例的状况。如果所述相应的多个服务依赖方中一者的成功响应与失败响应的任何比率低于所述阈值,则服务实例的状况可被归类为否定的。相反,如果所述相应的多个服务依赖方的成功响应与失败响应的所有比率都高于所述阈值,则服务实例的状况可被归类为肯定的。
例如,如图3所示,服务A的第一服务实例310中的监视代理350可监视通过网络接口314传输的请求302,并计算在跟踪窗口期间在网络接口314处接收的成功响应303与失败响应303的第一比率。类似地,服务A的第一服务实例310中的监视代理350可监视通过网络接口316传输的请求304,并计算在跟踪窗口期间在网络接口316处接收的成功响应307与失败响应307的第二比率。如果第一比率和第二比率二者均高于阈值,则在跟踪窗口的结束处服务A的第一服务实例310的状况可被归类为肯定的。相反,如果第一比率或第二比率低于所述阈值,则在跟踪窗口的结束处服务A的第一服务实例310的状况可被归类为否定的,只要低于所述阈值的具体比率是基于数量高于第二阈值的附加请求生成的。
在一些实施方案中,通过将服务实例生成的成功响应与失败响应的比率与阈值进行比较来确定状况。换句话讲,服务实例跟踪在跟踪窗口内生成并传输给多个客户端的响应。与跟踪被传输给服务依赖方的请求的数量以及从服务依赖方接收的相应响应相反,监视代理350可跟踪作为处理从客户端接收的请求的结果而被传输给客户端的响应。具体地讲,从客户端接收的每个请求可使得服务实例生成对服务依赖方的多个附加请求,这些附加请求必须单独跟踪。然而,来自特定客户端的每个请求对应于所述特定客户端的服务实例所生成的仅单个响应,因此监视代理350仅被要求对与单个网络接口相关联的请求和/或相应响应计数以便监视服务实例的状况。就这一点而言,状况准确地反映关键服务依赖方的可用性,因为任何关键服务依赖方的下游故障可导致由服务实例生成并被传输给所述特定客户端的失败响应。
例如,如图3所示,服务A的第一服务实例310中的监视代理350监视通过网络接口312传输的响应308,并计算在跟踪窗口期间通过网络接口312传输的成功响应308与失败响应308的比率。如果比率高于阈值,则在跟踪窗口的结束处服务A的第一服务实例310的状况可被归类为肯定的。相反,如果比率低于所述阈值,则在跟踪窗口的结束处服务A的第一服务实例310的状况可被归类为否定的,只要低于所述阈值的比率是基于数量高于第二阈值的在跟踪窗口期间接收的请求301生成的。
是监视被传输给服务依赖方的附加请求并跟踪从每个服务依赖方接收的成功响应与失败响应的比率、还是监视被传输给客户端的响应,这个选择是可由软件开发方实施的设计选择。然而,应当指出的是,假定监视代理350在不同网络接口上单独跟踪每个依赖方,前一技术可提高精度。相比之下,假定监视代理350仅跟踪经由单个网络接口传输的响应,后一技术降低精度。
在一些实施方案中,状况消息可被包括在指示在服务实例的状况被归类为否定时停机的具体依赖方的响应中。根据一些实施方案,状况消息可包括对于一个或多个服务依赖方在前一跟踪窗口期间监视代理350所收集的成功响应与失败响应的比率。此外,状况消息可指示服务实例停机的具体原因。例如,处理请求的每个线程可包括使得线程在线程经历严重故障时将错误消息传输给监视代理350的指令。继而,监视代理350可收集与在跟踪窗口期间从线程池收集的任何故障相关的统计数据。监视代理350于是可在状况消息中、或者另选地在响应中所包括的消息主体中报告这些统计数据。
在一些实施方案中,服务实例可包括对用于收集与特定网络接口相关的统计数据的库的引用(例如,在其源代码中)。例如,监视代理350的源代码可利用对库的调用来在跟踪窗口期间收集统计数据。在各种实施方案中,库可收集比跟踪窗口小的时间段的统计数据。继而,监视代理350可被配置为通过利用对库函数的调用来在跟踪窗口期间频繁地收集统计数据。监视代理350于是可在跟踪窗口的持续时间上集聚所收集的统计数据。利用中间库来收集网络流量的统计数据就可减少软件开发方为利用软件开发方所选择的可变尺寸跟踪窗口的服务编写源代码所需的时间。另选地,库可使得软件开发方能够在利用库方法的构造函数时指定跟踪窗口的大小(例如,以毫秒为单位)。
应当理解,大量客户端生成对数据中心中单个服务实例的请求就可很快地压垮服务实例。具体地讲,并且在此类情形下,服务实例可能不能对所有客户端请求进行响应。实践中,许多服务实例通常被部署在特定数据中心中,在那里,每个服务实例处理来自多个客户端的请求。因此,数据中心中所包括的多个服务中的每个服务可与多个服务实例相关联。此类部署使健康状况监视系统的具体实施复杂化。例如,当健康检查消息被传输给DNS服务器220的数据结构中与服务相关联的网络地址时,健康检查消息可被转发给在该网络地址处调配的特定服务实例。但是,如果网络地址与服务的大量服务实例相关联,则健康检查消息可被转发给特定服务实例,并且该特定服务实例的状况可能没有准确地反映该网络地址处该服务的状况(例如,其中少量服务实例正在经历故障,但大量服务实例正在正确工作)。因此,需要一种更稳健的用于实施健康状况监视系统的技术。
图4示出了根据一些实施方案的包括多个服务实例420的服务400。如图4所示,服务400包括N个服务实例420,其中每个服务实例420可在服务器计算设备上执行。另选地,在一些实施方案中,多个服务器实例420可被部署在单个服务器计算设备上,其中每个服务器实例420在服务器计算设备上的虚拟机内执行。管理程序或虚拟机监视器也可在服务器计算设备上执行,并被配置为调配虚拟机用于服务器实例。管理程序或虚拟机监视器也可被配置为调度对虚拟机中每一者的硬件资源分配,使得被包括在服务实例420中的线程被允许时间来利用服务器计算设备的硬件运行。
服务400也包括负载均衡器410。负载均衡器410可在服务器计算设备上执行,该服务器计算设备可与托管一个或多个服务实例420的服务器计算设备分开。来自客户端的请求可被负载均衡器410接收,其中负载均衡器410继而将所述请求分发给N个服务实例420的池中的特定服务实例420。在各种实施方案中,负载均衡器410可利用循环调度来将请求分发给不同的服务实例420。另选地,负载均衡器410可利用跟踪正被每个服务实例420处理的未决请求的数量的更复杂的调度算法。负载均衡器410于是可尝试在服务实例420的可用池中均匀地分发请求。当然,其他用于执行负载均衡的算法也在所述负载均衡器410的范围内。
如本文前面所述,当健康检查消息从健康检查引擎225传输给利用单个服务实例实施的服务时,这单个服务实例的状况准确地反映服务的状况。然而,当服务是利用分布式环境中的多个服务实例实施的(例如,具有至少两个服务实例被部署在单个数据中心210内的网关服务器215后面)时,特定服务实例的状况可能没有准确地反映服务的状况。
例如,如图4所示,第一服务实例420-1和第二服务实例420-2可停机(例如,不可用),而第三服务实例420-3可正常运转(例如,可用)。从健康检查引擎225传输给服务400的健康检查消息可被负载均衡器410转发给服务实例池中服务实例420之一。该服务实例420或更具体地讲,服务实例420内的监视代理350生成对健康检查请求的响应,并通过负载均衡器410将响应传输回健康检查引擎225。响应中所指示的服务400的状况将反映接收健康检查消息的特定服务实例420的状况。因此,所述特定服务实例420的状况可能没有准确地反映服务400的状况。
如这里先前所述,健康检查引擎225的朴素具体实施可涉及单个健康检查消息被健康检查引擎225传输给服务400。对健康检查消息的响应反映与服务相关联的单个服务实例420的状况,并且健康检查引擎225可将服务的主机名与数据中心210的网关服务器215的网络地址的关联重新归类为不可用。应当理解,这种类型的具体实施通常效率低下,并且对于服务可导致相当量的停机时间,即使是在只有少量服务实例正在经历故障时。
在一些实施方案中,健康检查引擎225可被配置为将多个健康检查消息发送给位于特定网络地址处的服务。健康检查引擎225收集与在对健康检查消息的响应中返回的服务实例420的状况相关的统计数据。健康检查引擎225计算返回指示服务实例420具有肯定状况的响应的服务实例420的数量与返回指示服务实例420具有否定状况的响应的服务实例420的数量的比率。该比率大致反映与不可用相比,服务400的多少服务实例420可用,并且健康检查引擎225可将比率与阈值进行比较,以确定是否要从DNS服务器220中的数据结构移除关联或者是否要将关联标记为不可用。应当理解,不确保健康检查引擎225所接收的响应是从分开的和不同的服务实例420返回,因为负载均衡器410可将多个健康检查消息发送给同一服务实例420。此外,健康检查消息的数量可以提供为服务400实施的服务实例420的仅样本的状况。取决于所采的具体样本,样本可能偏离所有服务实例420的平均状况。因此,需要一种确保健康检查引擎225接收包括多个服务实例420的服务400的状况的准确评估的技术。
在一些实施方案中,健康检查引擎225将健康检查消息传输给服务400。负载均衡器410接收健康检查消息。不是将健康检查消息转发给单个服务实例420,负载均衡器410而是将健康检查消息转发给多个服务实例420。在各种实施方案中,负载均衡器410将健康检查消息转发给服务400所实施的每个服务实例420。另选地,负载均衡器410将健康检查消息转发给服务400所实施的服务实例420的统计相关样本。接收健康检查消息的每个服务实例420生成响应,该响应被传输回健康检查引擎225。因此,健康检查引擎225可将响应积聚成具有肯定状况的服务实例420的数量和具有否定状况的服务实例420的数量的计数,以便计算比率,健康检查引擎225可将该比率与阈值进行比较。比较的结果可被用于确定是否要从DNS服务器220中的数据结构移除关联或者是否要将关联标记为不可用。然而,这些实施方案要求健康检查引擎225准备响应于向服务400传输单个健康检查消息而处理来自未知数量的服务实例420的未知数量的响应。这会使健康检查引擎225的具体实施细节复杂化。
在一些实施方案中,负载均衡器410包括监视代理450。负载均衡器410中的监视代理450保持结合所述多个服务实例420的状况的服务400的状况。监视代理450跟踪被转发给每个服务实例420的请求并监视从服务实例420接收的对那些请求的响应。服务400的状况是基于在跟踪窗口期间负载均衡器410所转发的请求的数量以及在跟踪窗口期间负载均衡器410从服务实例420接收的成功响应与失败响应的比率来确定的。在各种实施方案中,通过将成功响应与失败响应的比率与阈值进行比较来确定服务400的状况。例如,如果成功响应与失败响应的比率高于所述阈值,则服务400的状况为肯定的(例如,服务可用);然而,如果成功响应与失败响应的比率低于所述阈值,则服务400的状况为否定的(例如,服务不可用)。在各种实施方案中,如果在跟踪窗口期间负载均衡器410所转发的请求的数量低于第二阈值,则无论成功响应与失败响应的比率如何,在跟踪窗口的结束处服务400的状况都保持与前一跟踪窗口的结束处服务400的状况相同。
在一些实施方案中,负载均衡器410中的监视代理450在跟踪窗口期间不跟踪正常请求和响应,以便监视服务400的状况。相反,监视代理450可被配置为集聚来自多个服务实例420的对被负载均衡器410转发给所述多个服务实例420的健康检查消息的响应。更具体地讲,健康检查引擎225可被配置为将健康检查消息传输给服务400。负载均衡器410接收健康检查信息并将健康检查消息转发给服务400所实施的多个服务实例420。负载均衡器410拦截来自所述多个服务实例420的对健康检查消息的响应,并且将这些响应集聚成单个响应,所述单个响应被传输回健康检查引擎225。集聚所述响应是指通过处理从所述多个服务实例420接收的响应来跟踪具有肯定状况的服务实例420的数量和具有否定状况的服务实例420的数量。基于具有肯定状况的服务实例420的数量和具有否定状况的服务实例420的数量来计算比率,并且将该比率与阈值进行比较以确定服务400的状况。监视代理450生成被传输给健康检查引擎225的响应,该响应指示服务400的状况,例如由响应中所包括的状况代码来反映服务400的状况。
在一些实施方案中,负载均衡器410跟踪服务400所实施的每个服务实例420的状况。在负载均衡器410从服务实例420接收对健康检查消息的响应时,负载均衡器410可将该服务实例420标记为可用或不可用。继而,负载均衡器410不将正常请求转发给任何被标记为不可用的服务实例420。然而,从健康检查引擎225接收的健康检查消息被转发给所有服务实例420,既被转发给被标记为可用的服务实例420又被转发给被标记为不可用的服务实例420。在对健康检查消息的响应中接收的服务实例420的状况可被用于将服务实例420的归类从可用更改为不可用,或者相反从不可用更改为可用。实际上,健康检查引擎225所发布的健康检查消息使得负载均衡器410能够使之前不可用的服务实例420在促成服务实例420的否定状况的问题已被纠正的情况下返回在线。
在一些实施方案中,监视代理450不将健康检查消息转发给服务实例420。相反,服务实例420中所包括的监视代理350可被配置为响应于服务实例420内状况的改变而向负载均衡器410中的监视代理450发送健康状况更新消息。继而,负载均衡器410保持包括服务400所实施的每个服务实例420的状况的数据结构。响应于从健康检查引擎225接收健康状况消息,监视代理450检查数据结构以计算状况被归类为肯定的服务实例420与状况被归类为否定的服务实例420的比率。将该比率与阈值进行比较以确定服务400的状况。在各种实施方案中,每当监视代理450从服务实例420接收健康状况更新消息时就计算该比率,而不是响应于从健康检查引擎225接收健康检查消息而计算该比率,这可减少对来自健康检查引擎225的健康检查消息进行响应的延迟。
在一些实施方案中,DNS服务器220可被配置为响应于从监视代理450接收对健康检查消息的响应而在DNS服务器220中的数据结构中将关联重新归类为可用或不可用。然而,一旦关联被标记为不可用,就期望提供一种有效的机制用于在服务400的状况从否定转变成肯定时在数据结构中对关联进行重新归类。在一些实施方案中,DNS服务器220中的健康检查引擎225可被配置为周期性地轮询任何与被标记为不可用的关联对应的服务400,以检查对应于该关联的服务400的状况。健康检查引擎225周期性地将健康检查消息传输给服务400,直到从负载均衡器410接收的响应指示服务400的状况是肯定的。作为响应,健康检查引擎225在DNS服务器220的数据结构中将该关联标记为可用。
另选地,在一些实施方案中,健康检查引擎225响应于在对健康检查消息的响应中接收到来自监视代理450的关于服务400的状况被归类为否定的指示而将更新请求消息传输给监视代理450。更新请求消息使得监视代理450监视服务400的状况,并且在服务400的状况从否定转变成肯定时将更新响应消息传输给健康检查引擎225。例如,服务400的状况在服务400添加附加服务实例420从而改变与阈值进行比较以确定状况的比率时可从否定转变成肯定。服务400的状况也可在服务依赖方变成可用而使得服务实例420开始从服务依赖方接收成功响应与失败响应的更好比率时从否定转变成肯定。通过前瞻性地向健康检查引擎225传输更新响应消息,DNS服务器220可以与利用循环DNS的常规方法相比更快地使服务400返回在线。
图5示出了根据一些实施方案的用于监视服务实例的状况的示例性方法500的流程图。方法500可通过硬件、处理器所执行的软件、或者硬件和软件的任意组合来执行。在一些实施方案中,方法500可由本文所述的监视代理350来实施。
在步骤502,在跟踪窗口期间收集与一个或多个服务依赖方相关联的统计数据。在一些实施方案中,被包括在服务实例内的监视代理350可被配置为跟踪通过网络接口传输给服务依赖方的请求的数量。监视代理350也可被配置为跟踪在跟踪窗口期间从服务依赖方接收的成功响应的数量和失败响应的数量。在各种实施方案中,成功响应可被表示在包括2XX状况代码的HTTP响应消息中,失败响应可被表示在包括4XX或5XX状况代码的HTTP响应消息中。
在步骤504,基于在跟踪窗口期间收集的统计数据来计算至少一个比率。在一些实施方案中,基于对针对特定服务依赖方在网络接口处所接收的多个附加请求的响应来为每个服务依赖方计算比率。在一些实施方案中,基于服务实例所生成的多个响应来计算比率。服务实例所生成的每个响应只有在与服务依赖方相关联的响应中每一者也成功的情况下才是成功的。因此,服务实例所生成的失败响应的数量包括由于任何一个或多个服务依赖方而失败的响应。
在步骤506,将请求的数量与阈值进行比较。当响应的总样本大小是统计意义上显著的值时,在步骤504计算的比率是有用的。因此,当与在跟踪窗口期间接收的响应对应的请求的数量大于阈值时,基于成功响应与失败响应的比率来确定状况。在一些实施方案中,将被传输给每个服务依赖方的附加请求的数量与阈值进行比较。如果对于服务依赖方中的任何服务依赖方,附加请求的数量小于所述阈值,则方法500前进至步骤508。然而,如果对于所有服务依赖方,附加请求的数量大于或等于所述阈值,则方法500前进至步骤510。
在一些实施方案中,将服务实例从一个或多个客户端所接收的请求的数量与阈值进行比较。服务实例所接收的每个请求对应于服务实例所生成的响应。此外,一个或多个附加请求可由服务实例生成并传输给一个或多个服务依赖方。如果服务实例所接收的请求的数量小于所述阈值,则方法500前进至步骤508。然而,如果请求的数量大于或等于所述阈值,则方法500前进至步骤510。
在步骤508,当请求的数量小于所述阈值时,保持在前一跟踪窗口期间确定的服务实例的状况。当请求的数量小于所述阈值时,则比率所指示的状况在统计意义上没有意义。因此,在跟踪周期期间忽略该比率,并且将服务实例的状况保持为与在前一跟踪期间所确定的相同状况。方法500可在新的跟踪窗口期间重复。
在步骤510,当请求的数量大于所述阈值时,通过将所述至少一个比率与阈值进行比较来确定服务实例的状况。在一些实施方案中,通过将一个或多个服务依赖方的成功响应与失败响应的每个比率与阈值进行比较来确定状况。如果一个或多个服务依赖方的比率低于所述阈值,则服务实例的状况被归类为否定的(例如,服务实例不可用);但是,如果一个或多个服务依赖方的一个或多个比率高于所述阈值,则服务实例的状况被归类为肯定的(例如,服务实例可用)。在一些实施方案中,通过将服务实例所生成的成功响应与失败响应的比率与阈值进行比较来确定状况。如果比率低于所述阈值,则服务实例的状况被归类为否定的(例如,服务实例不可用);然而,如果比率高于所述阈值,则服务实例的状况被归类为肯定的(例如,服务实例可用)。方法500可在新的跟踪窗口期间重复。
在一些实施方案中,方法500在服务实例的监视代理350内实施。方法500可在每个新的跟踪窗口期间重复,从而以取决于跟踪窗口的长度的频率更新服务实例的状况。示例性实施方案可根据服务的预期流量而利用介于一秒和六十秒之间的跟踪窗口,尽管小于一秒或大于60秒的跟踪窗口被设想为在监视代理350的这个详细描述的范围内。
图6示出了根据一些实施方案的用于监视包括多个分布式服务实例的服务的状况的示例性方法600的流程图。方法600可通过硬件、处理器所执行的软件、或者硬件和软件的任意组合来执行。在一些实施方案中,方法600可由服务400的前端的负载均衡器410中的监视代理450实施。
在步骤602,在服务处接收健康检查消息。服务可包括负载均衡器和多个服务实例。在一些实施方案中,从被包括在DNS服务器220中的健康检查引擎225接收健康检查消息。在步骤604,将健康检查消息转发给多个服务实例。在一些实施方案中,负载均衡器接收健康检查信息并将健康检查消息转发给所述多个服务实例中的每个服务实例。每个服务实例生成包括服务实例的状况的对健康检查消息的响应。在各种实施方案中,根据上文结合图5所述的方法500生成每个服务实例的状况。
在步骤606,基于从所述多个服务实例接收的响应来确定服务的状况。每个服务实例生成指示服务实例的状况的响应。每个服务实例将相应的响应传输给负载均衡器。在一些实施方案中,负载均衡器拦截来自所述多个服务实例的响应,并且将这些响应集聚成单个响应,所述单个响应被传输回健康检查引擎,其中所述单个响应指示服务的状况。
在步骤608,服务的状况被传输给健康检查引擎。在一些实施方案中,负载均衡器在对负载均衡器所接收的健康检查消息的响应中将服务的状况传输给健康检查引擎。健康检查引擎可被配置为处理所述响应并基于服务的状况调节服务的主机名和与服务相关联的网络地址之间的关联的归类。
应当理解,在一些实施方案中,步骤606的操作可在DNS服务器220的健康检查引擎225中实施,而不是在服务的负载均衡器中实施。在此类实施方案中,负载均衡器将从服务实例中每一者接收的对健康检查消息的响应转发给健康检查引擎225。健康检查引擎225可被配置为集聚这些响应并基于在所述多个响应中接收的每个服务实例的状况来确定服务的状况。在此类实施方案中,步骤608的操作可被省略,因为负载均衡器仅充当用于将健康检查消息转发给所述多个服务实例并将所述响应从服务实例转发给健康检查引擎225的代理。
应当理解,负载均衡器所编译的服务的状况代表与单个网络地址相关联的单个可用性区域中服务的状况。在各种实施方案中,服务可在不同可用性区域中被调配以具有附加服务实例,附加服务实例与附加负载均衡器以及服务的附加状况相关联。对应于负载均衡器中特定监视代理的服务的每个状况对应于DNS服务器220的数据结构中服务的主机名与特定网络地址的特定关联。服务的主机名和与服务的附加服务实例对应的附加网络地址之间的附加关联可被包括在DNS服务器220所保持的数据结构中,并且可由健康检查引擎225通过向那些特定附加网络地址发送附加健康检查消息来更新。
图7示出了根据一些实施方案的可被用于实施本文所述的各种装置和/或方法的示例性计算设备700的详细视图。具体地讲,所述详细视图示出了可被包括在图1至图4所示和/或本文所述的计算设备中的各种部件。例如,一个或多个客户端设备250、一个或多个网关服务器215、DNS服务器220或者包括被包括在数据中心210中的任何计算设备或服务器计算设备在内的任何其它设备中的一者或多者可包括计算设备700的部件。
如图7所示,计算设备700可包括处理器702,该处理器表示用于控制计算设备700的总体操作的微处理器或控制器。计算设备700还可包括用户输入设备708,该用户输入设备允许计算设备700的用户与计算设备700进行交互。例如,用户输入设备708可采取多种形式,诸如按钮、小键盘、拨号盘、触摸屏、音频输入接口、视觉/图像捕获输入接口、传感器数据形式的输入等。更进一步地,计算设备700可包括可由处理器702控制以向用户呈现视觉信息的显示器710(屏幕显示器)。数据总线716可促进至少存储设备740、处理器702和控制器713之间的数据传输。该控制器713可用于通过装备控制总线714来与不同装备进行交互并对其进行控制。该计算设备700还可包括耦接至数据链路712的网络/总线接口711。在无线连接的情况下,网络/总线接口711可包括无线收发器。
该计算设备700还包括存储设备740,该存储设备可包括单个磁盘或多个磁盘(例如,硬盘驱动器),并包括管理存储设备740内的一个或多个分区的存储管理模块。在一些实施方案中,该存储设备740可包括闪存存储器、半导体(固态)存储器等。该计算设备700还可包括随机存取存储器(RAM)720和只读存储器(ROM)722。该ROM 722可以非易失性方式存储将执行的程序、实用程序或进程。RAM 720可提供易失性数据存储并存储与计算设备700的操作相关的指令。
可单独地或以任何组合方式来使用所述实施方案的各个方面、实施方案、具体实施或特征。可由软件、硬件或硬件与软件的组合来实现所述实施方案的各个方面。所述实施方案还可实施为在非暂态计算机可读介质上的计算机可读代码。非暂态计算机可读介质为可存储数据的任何数据存储设备,该数据之后可由计算机系统读取。非暂态计算机可读介质的示例包括只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带和光学数据存储设备。非暂态计算机可读介质也可分布在网络耦接的计算机系统上,使得计算机可读代码以分布方式存储和执行。
在上述描述中,为了解释的目的,所使用的特定命名提供对所述实施方案的彻底理解。然而,对于本领域的技术人员而言将显而易见的是,实践所述实施方案不需要这些具体细节。因此,对特定实施方案的前述描述是出于例示和描述的目的而呈现的。这些描述不旨在被认为是穷举性的或将所述的实施方案限制为所公开的精确形式。对于本领域的普通技术人员而言将显而易见的是,根据上述教导内容,许多修改和变型是可能的。

Claims (20)

1.一种用于监视服务的方法,所述方法包括由实施监视代理的服务器计算设备执行以下操作:
在跟踪窗口期间收集与所述服务的至少一个服务依赖方相关联的统计数据,其中所述至少一个服务依赖方包括所述服务依赖的至少第一下游服务和第一下游服务依赖的至少第二下游服务;
通过以下来集聚所述统计数据:
对从第一下游服务接收的成功响应的数量进行计数,其中第一下游服务仅在第二下游服务发出对第一下游服务的成功响应时发出对所述服务的成功响应,和
对与所述至少一个服务依赖方相关联的失败响应的数量进行计数;
使用成功响应的数量和失败响应的数量来计算至少一个比率;
通过将所述至少一个比率与阈值进行比较来生成所述服务的状况;以及
将所述服务的状况传输到域名系统DNS服务器中的健康检查引擎,以更新所述DNS服务器所保持的数据结构中所述服务的主机名与网络地址之间的关联的归类。
2.根据权利要求1所述的方法,其中所述响应是经由与所述至少一个服务依赖方相关联的网络接口接收的。
3.根据权利要求1所述的方法,其中所述服务的所述状况:
在所述至少一个比率高于所述阈值时,被归类为肯定的;或者
在所述至少一个比率低于所述阈值时,被归类为否定的。
4.根据权利要求1所述的方法,其中失败响应指示第一下游服务不可用和/或第二下游服务不可用。
5.根据权利要求1所述的方法,其中每个响应包括超文本传输协议HTTP响应消息。
6.根据权利要求5所述的方法,其中每个成功响应是包括2XX状况代码的HTTP响应消息,并且其中每个失败响应是包括4XX或5XX状况代码的HTTP响应消息。
7.根据权利要求1所述的方法,其中第二下游服务仅在第二下游服务依赖的第三下游服务发出对第二下游服务的成功响应时发出对第一下游服务的成功响应。
8.根据权利要求1所述的方法,还包括:
从所述健康检查引擎接收健康检查消息;以及
向所述健康检查引擎或与所述服务的多个服务实例对应的负载均衡器传输对所述健康检查消息的响应,其中对所述健康检查消息的所述响应包括所述状况。
9.根据权利要求8所述的方法,还包括:
在所述负载均衡器的监视代理处接收指示所述服务的主机名与网络地址之间的关联在DNS服务器的数据结构中被标记为不可用的更新请求消息;
由所述监视代理确定所述服务的所述状况的状态是否指示从第一状态向第二状态的转变,其中第一状态包括肯定状态和否定状态中的一者,第二状态包括肯定状态和否定状态中的另一者;以及
将更新响应消息传输给所述健康检查引擎,以使得所述DNS服务器将所述服务的所述主机名与所述网络地址之间的所述关联标记为可用的。
10.一种服务器计算设备,被配置以监视服务,所述服务器计算设备包括处理器,所述处理器被配置为使所述服务器计算设备执行包括以下的操作:
在跟踪窗口期间收集与所述服务的至少一个服务依赖方相关联的统计数据,其中所述至少一个服务依赖方包括所述服务依赖的至少第一下游服务和第一下游服务依赖的至少第二下游服务;
通过以下来集聚所述统计数据:
对从第一下游服务接收的成功响应的数量进行计数,其中第一下游服务仅在第二下游服务发出对第一下游服务的成功响应时发出对所述服务的成功响应,和
对与所述至少一个服务依赖方相关联的失败响应的数量进行计数;
使用成功响应的数量和失败响应的数量来计算至少一个比率;
通过将所述至少一个比率与阈值进行比较来生成所述服务的状况;以及
将所述服务的状况传输到域名系统DNS服务器中的健康检查引擎,以更新所述DNS服务器所保持的数据结构中所述服务的主机名与网络地址之间的关联的归类。
11.根据权利要求10所述的服务器计算设备,其中所述服务的所述状况:
在所述至少一个比率高于所述阈值时,被归类为肯定的;或者
在所述至少一个比率低于所述阈值时,被归类为否定的。
12.根据权利要求10所述的服务器计算设备,所述操作还包括:
从所述健康检查引擎接收健康检查消息;以及
向所述健康检查引擎或与所述服务的多个服务实例对应的负载均衡器传输对所述健康检查消息的响应,其中对所述健康检查消息的所述响应包括所述状况。
13.根据权利要求12所述的服务器计算设备,所述操作还包括:
在所述负载均衡器的监视代理处接收指示所述服务的主机名与网络地址之间的关联在DNS服务器的数据结构中被标记为不可用的更新请求消息;
由所述监视代理确定所述服务的所述状况的状态是否指示从第一状态向第二状态的转变,其中第一状态包括肯定状态和否定状态中的一者,第二状态包括肯定状态和否定状态中的另一者;以及
将更新响应消息传输给所述健康检查引擎,以使得所述DNS服务器将所述服务的所述主机名与所述网络地址之间的所述关联标记为可用。
14.根据权利要求10所述的服务器计算设备,其中所述响应是经由与所述至少一个服务依赖方相关联的网络接口接收的。
15.根据权利要求10所述的服务器计算设备,其中失败响应指示第一下游服务不可用和/或第二下游服务不可用。
16.根据权利要求10所述的服务器计算设备,其中每个响应包括超文本传输协议HTTP响应消息。
17.根据权利要求16所述的服务器计算设备,其中每个成功响应是包括2XX状况代码的HTTP响应消息,并且其中每个失败响应是包括4XX或5XX状况代码的HTTP响应消息。
18.根据权利要求10所述的服务器计算设备,其中第二下游服务仅在第二下游服务依赖的第三下游服务发出对第二下游服务的成功响应时发出对第一下游服务的成功响应。
19.一种计算机可读存储介质,其上存储有可执行指令,所述可执行指令在由处理器执行时,实现如权利要求1-9中任一项所述的方法的操作。
20.一种用于监视服务的装置,包括用于执行如权利要求1-9中任一项所述的方法的操作的单元。
CN201811134606.9A 2017-12-21 2018-09-28 用于监视服务的方法、设备和存储介质 Active CN109951576B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311175168.1A CN117176711A (zh) 2017-12-21 2018-09-28 用于监视服务的方法、设备和存储介质

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762609245P 2017-12-21 2017-12-21
US62/609,245 2017-12-21
US15/962,885 2018-04-25
US15/962,885 US10938696B2 (en) 2017-12-21 2018-04-25 Health status monitoring for services provided by computing devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311175168.1A Division CN117176711A (zh) 2017-12-21 2018-09-28 用于监视服务的方法、设备和存储介质

Publications (2)

Publication Number Publication Date
CN109951576A CN109951576A (zh) 2019-06-28
CN109951576B true CN109951576B (zh) 2023-09-22

Family

ID=63787678

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311175168.1A Pending CN117176711A (zh) 2017-12-21 2018-09-28 用于监视服务的方法、设备和存储介质
CN201811134606.9A Active CN109951576B (zh) 2017-12-21 2018-09-28 用于监视服务的方法、设备和存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311175168.1A Pending CN117176711A (zh) 2017-12-21 2018-09-28 用于监视服务的方法、设备和存储介质

Country Status (4)

Country Link
US (2) US10938696B2 (zh)
EP (2) EP4231603A1 (zh)
CN (2) CN117176711A (zh)
DK (1) DK3503503T3 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
EP4187881A1 (en) 2017-08-28 2023-05-31 Bright Data Ltd. Improving content fetching by selecting tunnel devices grouped according to geographic location
US10938696B2 (en) 2017-12-21 2021-03-02 Apple Inc. Health status monitoring for services provided by computing devices
FR3081582A1 (fr) * 2018-06-18 2019-11-29 Orange Procede d'installation d'une fonction reseau virtualisee
US11310276B2 (en) * 2018-09-17 2022-04-19 International Business Machines Corporation Adjusting resiliency policies for cloud services based on a resiliency score
US10924370B2 (en) * 2018-10-09 2021-02-16 Verizon Patent And Licensing Inc. Monitoring cloud-based services and/or features
LT3780557T (lt) 2019-02-25 2023-03-10 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
EP3935792A4 (en) 2019-04-02 2022-11-30 Bright Data Ltd. SYSTEM AND METHOD FOR MANAGING A NON-DIRECT URL RETRACTION SERVICE
CN111865629B (zh) * 2019-04-26 2023-08-29 伊姆西Ip控股有限责任公司 用于配置服务实例的方法、设备和计算机程序产品
CN110445650B (zh) * 2019-08-07 2022-06-10 中国联合网络通信集团有限公司 检测报警方法、设备及服务器
US11218380B2 (en) * 2019-10-04 2022-01-04 Cisco Technology, Inc. Closed loop automation for intent-based networking
CN110995806B (zh) * 2019-11-24 2022-05-24 济南浪潮数据技术有限公司 一种资源状态转换方法、装置、设备及存储介质
EP3974992A1 (en) * 2020-09-24 2022-03-30 Atos Nederland B.V. Method for monitoring the states of a computer service
US11606267B1 (en) * 2021-09-10 2023-03-14 Microsoft Technology Licensing, Llc Detecting and quantifying latency components in accessing cloud services
WO2023191874A1 (en) * 2022-03-30 2023-10-05 Microsoft Technology Licensing, Llc Resource management for reliability
GB202204544D0 (en) * 2022-03-30 2022-05-11 Microsoft Technology Licensing Llc Resource management for reliability
CN114785861B (zh) * 2022-06-22 2022-12-13 飞狐信息技术(天津)有限公司 一种服务请求转发系统、方法、计算机设备和存储介质
US11916810B1 (en) * 2023-03-23 2024-02-27 Honda Motor Co., Ltd. Resource management
CN117076544B (zh) * 2023-10-13 2024-01-26 腾讯科技(深圳)有限公司 数据转换服务请求处理方法、系统、装置和计算机设备
CN117097599B (zh) * 2023-10-20 2024-01-16 深圳高灯计算机科技有限公司 网络服务检测方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224296A (zh) * 2014-06-19 2016-01-06 上海快测网络信息技术有限公司 基于独立第三方的Web服务Qos属性评价系统及其评价方法
CN106330556A (zh) * 2016-08-30 2017-01-11 北京百度网讯科技有限公司 一种用于生成服务模块调用关联信息的方法与装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7600007B1 (en) 1999-05-24 2009-10-06 Computer Associates Think, Inc. Method and apparatus for event correlation in service level management (SLM)
US7523181B2 (en) * 1999-11-22 2009-04-21 Akamai Technologies, Inc. Method for determining metrics of a content delivery and global traffic management network
US7143153B1 (en) * 2000-11-09 2006-11-28 Ciena Corporation Internal network device dynamic health monitoring
US7574508B1 (en) * 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US8069435B1 (en) * 2003-08-18 2011-11-29 Oracle America, Inc. System and method for integration of web services
US7720954B2 (en) * 2006-08-03 2010-05-18 Citrix Systems, Inc. Method and appliance for using a dynamic response time to determine responsiveness of network services
US7730364B2 (en) 2007-04-05 2010-06-01 International Business Machines Corporation Systems and methods for predictive failure management
US8255528B2 (en) 2009-12-23 2012-08-28 Citrix Systems, Inc. Systems and methods for GSLB spillover
US8930395B2 (en) 2012-01-10 2015-01-06 Bank Of America Corporation Proactive monitoring of database servers
US8908521B2 (en) 2012-04-04 2014-12-09 Telefonaktiebolaget L M Ericsson (Publ) Load balancing for stateful scale-out network services
US10771351B2 (en) * 2012-06-15 2020-09-08 Digital River, Inc. Fast provisioning service for cloud computing
US20130339510A1 (en) * 2012-06-15 2013-12-19 Digital River, Inc Fast provisioning service for cloud computing
US9047181B2 (en) * 2012-09-07 2015-06-02 Splunk Inc. Visualization of data from clusters
US9819729B2 (en) * 2012-12-21 2017-11-14 Bmc Software, Inc. Application monitoring for cloud-based architectures
US9246752B2 (en) * 2013-06-18 2016-01-26 International Business Machines Corporation Ensuring health and compliance of devices
US9215240B2 (en) * 2013-07-25 2015-12-15 Splunk Inc. Investigative and dynamic detection of potential security-threat indicators from events in big data
US9489119B1 (en) * 2013-10-25 2016-11-08 Theodore Root Smith, Jr. Associative data management system utilizing metadata
US20150222504A1 (en) * 2014-02-03 2015-08-06 Apigee Corporation System and method for monitoring and reporting data in api processing systems
US10462004B2 (en) * 2014-04-15 2019-10-29 Splunk Inc. Visualizations of statistics associated with captured network data
US10700950B2 (en) * 2014-04-15 2020-06-30 Splunk Inc. Adjusting network data storage based on event stream statistics
US9348710B2 (en) 2014-07-29 2016-05-24 Saudi Arabian Oil Company Proactive failure recovery model for distributed computing using a checkpoint frequency determined by a MTBF threshold
US10044629B1 (en) * 2014-09-22 2018-08-07 Amazon Technologies, Inc. Dynamic TTL based on endpoint health checking
US9544403B2 (en) * 2015-02-02 2017-01-10 Linkedin Corporation Estimating latency of an application
US10341426B2 (en) * 2015-04-30 2019-07-02 Amazon Technologies, Inc. Managing load balancers associated with auto-scaling groups
US10412020B2 (en) * 2015-04-30 2019-09-10 Amazon Technologies, Inc. Background processes in update load balancers of an auto scaling group
US9747153B2 (en) * 2015-06-22 2017-08-29 Microsoft Technology Licensing, Llc Resilience as a service
CN106411828B (zh) * 2015-08-03 2019-06-28 阿里巴巴集团控股有限公司 量化防御结果的方法、装置及系统
US10375026B2 (en) * 2015-10-28 2019-08-06 Shape Security, Inc. Web transaction status tracking
US11025514B2 (en) 2015-10-30 2021-06-01 Nicira, Inc. Automatic health check and performance monitoring for applications and protocols using deep packet inspection in a datacenter
US9992086B1 (en) * 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) * 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10277488B2 (en) * 2016-09-09 2019-04-30 International Business Machines Corporation System and method for management and recovery of multi-service web transactions
US10135916B1 (en) * 2016-09-19 2018-11-20 Amazon Technologies, Inc. Integration of service scaling and external health checking systems
US10419494B2 (en) * 2016-09-26 2019-09-17 Splunk Inc. Managing the collection of forensic data from endpoint devices
US10425442B2 (en) * 2016-09-26 2019-09-24 Splunk Inc. Correlating forensic data collected from endpoint devices with other non-forensic data
US10542071B1 (en) * 2016-09-27 2020-01-21 Amazon Technologies, Inc. Event driven health checks for non-HTTP applications
US10749748B2 (en) * 2017-03-23 2020-08-18 International Business Machines Corporation Ranking health and compliance check findings in a data storage environment
US11575579B2 (en) * 2017-04-25 2023-02-07 Nutanix, Inc. Systems and methods for networked microservice modeling
US10938696B2 (en) * 2017-12-21 2021-03-02 Apple Inc. Health status monitoring for services provided by computing devices
US10977161B2 (en) * 2018-05-30 2021-04-13 Microsoft Technology Licensing, Llc Automatic intelligent cloud service testing tool
JP7147361B2 (ja) * 2018-08-20 2022-10-05 富士通株式会社 異常診断プログラムおよび異常診断方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224296A (zh) * 2014-06-19 2016-01-06 上海快测网络信息技术有限公司 基于独立第三方的Web服务Qos属性评价系统及其评价方法
CN106330556A (zh) * 2016-08-30 2017-01-11 北京百度网讯科技有限公司 一种用于生成服务模块调用关联信息的方法与装置

Also Published As

Publication number Publication date
US20190199611A1 (en) 2019-06-27
DK3503503T3 (da) 2023-08-07
EP3503503B1 (en) 2023-06-21
US11343166B2 (en) 2022-05-24
US20210250265A1 (en) 2021-08-12
CN117176711A (zh) 2023-12-05
EP4231603A1 (en) 2023-08-23
US10938696B2 (en) 2021-03-02
EP3503503A1 (en) 2019-06-26
CN109951576A (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
CN109951576B (zh) 用于监视服务的方法、设备和存储介质
US11159450B2 (en) Nonintrusive dynamically-scalable network load generation
US10560360B2 (en) Diagnostic heartbeat throttling
US8756453B2 (en) Communication system with diagnostic capabilities
US9852016B2 (en) Diagnostic heartbeating in a distributed data processing environment
US8769089B2 (en) Distributed application using diagnostic heartbeating
KR101091250B1 (ko) 분산형 컴퓨팅 시스템에서 라우팅 정보의 주문형 전파
US8874974B2 (en) Synchronizing a distributed communication system using diagnostic heartbeating
US9075660B2 (en) Apparatus and method for providing service availability to a user via selection of data centers for the user
WO2009097300A2 (en) Bandwidth-aware multicast load balancing on a multi-interface host
CN106411629B (zh) 一种用于监控cdn节点的状态的方法和设备
US11032358B2 (en) Monitoring web applications including microservices
AU2013201256A1 (en) Differentiated service-based graceful degradation layer
US11477098B2 (en) Identification of candidate problem network entities
WO2019164428A1 (en) Method and first node for managing transmission of probe messages
US20170123760A1 (en) Code Correction During a User Session in a Distributed Business Transaction
US20230421429A1 (en) Techniques for monitoring node status using a throughput metric
CN117294624A (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
GR01 Patent grant
GR01 Patent grant