CN102150397B - 在共享托管环境中对对应于主机名的请求作出响应的方法以及托管多个主机名的方法 - Google Patents

在共享托管环境中对对应于主机名的请求作出响应的方法以及托管多个主机名的方法 Download PDF

Info

Publication number
CN102150397B
CN102150397B CN200980135195.8A CN200980135195A CN102150397B CN 102150397 B CN102150397 B CN 102150397B CN 200980135195 A CN200980135195 A CN 200980135195A CN 102150397 B CN102150397 B CN 102150397B
Authority
CN
China
Prior art keywords
host name
server
request
association
content servers
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
CN200980135195.8A
Other languages
English (en)
Other versions
CN102150397A (zh
Inventor
W·S·刘
A·K·鲁伊阿
M·E·布朗
W·J·斯特普尔斯
H·K·帕特尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102150397A publication Critical patent/CN102150397A/zh
Application granted granted Critical
Publication of CN102150397B publication Critical patent/CN102150397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • 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
    • 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/1014Server selection for load balancing based on the content of a request
    • 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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

共享托管环境中的请求路由。共享托管环境包括服务器的网络场,每一个服务器都能够处理对应于主机名的请求。当接收到请求时,路由器确定是否已经存在服务器的子集到对应于该请求的主机名的主机名关联。如果是,则消息被分派给那些关联的服务器中的一个。如果否,则将一个或多个服务器关联到主机名以创建该主机名的关联的服务器的子集。不同的主机名可具有它们所关联到的服务器的不同子集。随着时间推移,在适当时可终止该关联。

Description

在共享托管环境中对对应于主机名的请求作出响应的方法以及托管多个主机名的方法
背景技术
因特网允许访问各种各样的网站。某些站点经历拥挤的通信量,并且可使用专用于服务大量并发请求的较大服务器场。这些站点的示例可包括大型在线书店、全球投标服务、大型公司站点等等。然而,较低通信量(在下文中也被称为“较小”)的站点也对因特网的财富和深度有贡献。那些较小站点可遇到较小通信量,并且可能不一直主动地处理请求。这样的较小站点大多数时间甚至可能是不活动的。这样的较小站点的示例包括,例如,具有数量非常有限的作者和观看者的家庭博客。 
对于较小站点,站点所有者要建立服务器来实际地托管该网站常常在经济上和技术上是不可行的或至少是不方便的。因此,出现了共享托管服务公司。较小网站所有者现在可雇用托管服务来托管该网站。托管服务通常将具有服务大量网站的一个或多个服务器。在单个服务器上托管大量网站即使不是很有希望的也是有可能的。假定共享托管服务向不一直活动的大量较小网站提供服务,则与如果网站总是活动的情况下单个服务器能够托管的网站相比,共享托管服务可使该单个服务器托管更多网站。 
例如,假设所托管的网站平均少于10%的时间是活动的。还假设给定服务器一次能够托管200个活动站点。共享托管服务可选择在服务器上总共部署2000个网站,希望这些活动网站总是逗留在小于10%的量,由此允许服务器以可接受的方式来有效地服务2000个网站。这一方法的成功取决于主网站的使用模式,这在某些情况下是不可预测的。 
然而,共享托管服务认识到趋势有时会改变。因此,共享托管服务通过周期性地检查它们的服务器中的每一个以便验证这些服务器有效地满足不断改变的活动网站的需求,来执行某种手动负载平衡。在服务器满足显著余量和安全因素的要求的情况下,其中服务器满足要求并且仍具有附加的未消耗的资源,服务器可选择在该服务器上部署附加网站来有效地最大化服务器资源。在服务器不满足要求的情况下,这意味着服务器至少冒着无法充分地响应网站请 求的风险。在这一情况下,托管服务可将某些网站从服务器中移除,并且将它们重新部署在另一个可能是新的服务器上。随着网站总数和/或活动网站的平均百分比的增加,共享托管服务将添加新的服务器。共享托管服务可具有成百甚至上千个这样的服务器,每一个上都部署有大量网站。这些服务器中的每一个具有服务所管理的配置文件。 
简要概述 
本文描述的各实施例涉及在共享托管环境中对请求的路由。共享托管环境包括网络服务器场,每一个服务器都能够处理对应于主机名的请求。当接收到请求时,路由器确定是否已经存在服务器的子集到对应于该请求的主机名的主机名关联(affinitization)。如果是,则消息被分派给那些关联服务器中的一个。如果否,则将一个或多个服务器关联到主机名以创建该主机名的关联服务器的子集。不同的主机名可具有它们所关联到的服务器的不同子集。 
本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。 
附图说明
为了描述可以获得本发明的上文所列举的及其他优点和特征的方式,下面将通过参考附图来呈现对各实施例的更具体的描述。可以理解,这些附图只描绘了样本实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加属性和细节来描述和解释各实施例,在附图中: 
图1A示出了可实现本文描述的一个或多个特征的计算系统形式的消息处理器; 
图1B示出了可实现本文描述的一个或多个特征的状态机形式的消息处理器; 
图2示出了其中可采用主机名关联的共享托管环境;以及 
图3示出了用于在执行主机名关联的共享托管环境中对对应于主机名的请求作出响应的方法的流程图。 
具体实施方式
根据本文描述的各实施例,本文描述的原理提供了用于在共享托管环境中 在主机名的基础上关联处理的高效机制。首先,将参考图1A和1B来描述消息处理器的各种实施例。随后,将参考图2至3来描述基于主机名的关联的各种实施例。 
图1A示出了计算系统100A形式的消息处理器。在其最基本的配置中,计算系统100A通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性、非易失性、或两者的某种组合。术语“存储器”在此也可用来指诸如物理存储介质等非易失性大容量存储。如果计算系统是分布式的,那么,处理、存储器和/或存储能力也可以是分布式的。 
如此处所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎,以及服务可以被实现为在计算系统上执行的对象或进程(例如,作为单独的线程)。然而,如以下将参考图1B来进一步描述的,消息处理器还可被实现为状态机,甚至可能完全以硬件来实现。 
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令,引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(和所操纵的数据)可被存储在计算系统100A的存储器104中。 
计算系统100A还可包含允许计算系统100A通过例如网络110与其他消息处理器通信的通信信道108。通信信道108是通信介质的示例。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息递送介质。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及诸如声学、无线电、红外线及其他无线介质之类的无线介质。如此处所用的术语计算机可读介质既包括存储介质又包括通信介质。 
本发明的范围内的实施例还包括用于携带或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括诸如RAM、ROM、EEPROM、CD-ROM之类的物理存储器和/或存储介 质或其他光盘存储、磁盘存储或其他磁存储设备、或可用于携带或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,计算机将该连接完全视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。上述的组合也应被包括在计算机可读介质的范围内。 
计算机可执行指令例如包括,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于此处所描述的具体特征或动作。相反,此处所描述的具体特征和动作是作为实现权利要求的示例形式来公开的。 
图1B示出了状态机120形式的消息处理器。状态机120可完全用硬件来实现,但情况不必如此。状态机120接收输入信号121,并且确定性地生成输出信号122。可任选地,确定性功能可取决于一个或多个可任选的配置设置123。在一个实施例中,状态机120可使用逻辑门以及诸如或许寄存器和时钟等可能的其他电路组件来实现。当被实现为消息处理器时,状态机120可执行此处所描述的消息分派。 
既然已经描述了示例消息处理器,现在将描述示出特定的消息收发处理环境200的图2。各种示出的组件可用软件或硬件来实现。例如,如果给定组件用软件来实现,则图1A的计算系统100A可使得组件作为处理器102执行来自存储器104的计算机可读指令的结果来被创建和操作。如果用硬件来实现,则组件可以是诸如参考图1B示出的计算系统或设备。 
图2示出了共享托管环境200,该共享托管环境包括经由网络(诸如因特网)与共享托管网络场220通信的多个客户机210。共享托管网络场220在其上部署有多个网站,每一个网站都具有对应的主机名。只要客户机浏览器导航到由共享托管网络场服务的主机名中的一个,则该主机向共享托管网络场220发出对应于该主机名的请求。 
在图2中,仅示出四个客户机211至214,然而,省略号215表示可以存在与共享托管网络场220接口的许多客户机。与网络场220接口的客户机200 的集合可随着每一客户机、或其用户决定在其浏览器中要导航到哪些主机名而动态地改变。 
在后端,共享托管环境包括多个内容服务器230。在示出的实施例中,存在五个内容服务器231至235。然而,省略号236表示可以存在大于或小于此数量,并且该数量可动态地改变。的确,本文描述的某些实施例准许在内容服务器的数量上有相当高效的缩放。 
常规的共享托管网络场还可包括数个内容服务器。然而,在图2中,内容服务器230中的每一个都能够独立地处理对应于主机名的通用集合的请求。在此处将频繁参考的一个具体示例中,该组通用的主机名包括10000个主机名,包括yyy.hostname1.com至yyy.hostname10000.com。当然,这些不是真实的可导航的主机名。首先,在本说明书中,项“www”已经变成“yyy”,以便避免本专利申请的公布版本的电子文本的自动超链接,该自动超链接违反至少一个专利局的规定。另外,清楚地构成主机名“hostname1”至“hostname10000”仅出于讨论目的。在真实部署中,主机名将与实际可操作和可导航的网站相对应。 
此处描述的更广泛的原理不限于使内容服务器230中的每一个能够独立地处理对主机名的通用集合的请求的具体方式。例如,在一个实施例中,内容服务器230中的每一个包括其自己的数据服务器,该数据服务器在需要时提供呈现对应于主机名的通用集合中的每一个对应主机名的每一个网站所需的文件。然而,为了改进的效率和较低部署成本起见,内容服务器230可共享单个数据服务器240,该单个数据服务器包括呈现主机名的通用集合的每一网站所必需的所有文件。由于每一内容服务器230处理对应于特定主机名的请求,因此该内容服务器将从数据服务器240请求和接收对应的文件。当然,随着内容服务器230数量的增加,如果处理增长的需求需要,则数据服务器240的数量也同样被放大。 
作为边注,图2中示出的内容服务器230和各种其他服务器将被描述为具有特定功能。这并不意味着服务器限于该功能。例如,尽管内容服务器中的每一个都能够独立地处理对应于主机名的通用集合的请求,但并不暗示所有内容服务器仅仅能够处理对应于该通用集合的主机名。例如,内容服务器的子集可 能能够处理对应于主机名的附加通用集合的请求。例如,内容服务器231至233可能能够处理对应于yyy.hostname1.com至yyy.hostname10000.com的通用集合、以及对应于主机名yyy.hostname10001至yyy.hostname11000.com的附加集合的请求。此外,可以存在能够处理对应于其他内容服务器不能够处理的主机名的请求的内容服务器。例如,可能内容服务器231也能够处理对应于主机名yyy.hostname11001.com至yyy.hostname12000.com的请求。 
作为返回图2的描述之前的最后一点要注意的,尽管示出了能够处理对应于通用内容服务器集合的请求的五个内容服务器231至235,但无论出于什么理由,共享托管网络场220可包括不能够处理对应于主机名的通用集合的所有主机名的请求的其他内容服务器。例如,五个内容服务器231至235可处理对主机名的一个通用集合yyy.hostname1.com至yyy.hostname10000.com的请求,而可能存在处理对应于主机名的另一集合(可能是yyy.hostname10001.com至yyy.hostname20000.com)的请求的一个或多个内容服务器的另一集合。然而,为了清楚地避免这样的复杂性,本说明书现在将转向简化的示例,其中内容服务器231至235被描述为对对应于主机名的通用集合yyy.hostname1.com至yyy.hostname10000.com作出响应。对其他请求的响应将不进一步描述。 
共享托管网络场220包括路由服务器221,该路由服务器接收要由共享托管网络场220来处理的客户机请求。虽然路由服务器221可能接收对应于延伸到主机名的通用集合之外的主机名的请求,但这里将仅更详细地描述处理对应于主机名的通用集合的请求。路由服务器221、内容服务器230和数据服务器240可以但不必如以上对图1A的计算系统100A和/或图1B的状态机120描述的那样来结构化。 
当路由服务器221接收对应于主机名的通用集合的一个主机名的请求时,路由服务器221标识将处理该请求的内容服务器230,并且将该请求分派给所标识的内容服务器。这一标识和分派以迫使主机名关联的方式来发生,其中,主机名的通用集合中的至少某一些被关联。鉴于此,在本说明书中,路由服务器221还可被称为路由和关联服务器221。路由和关联服务器221还可用于基于负载平衡算法来标识适当的服务器。 
例如,当接收到对主机名1(hostname1)的第一请求时,或至少当接收到 对主机名1(hostname1)的第一请求并且不存在对主机名1的活动的主机名关联时,路由服务器221可选择一个或多个内容服务器来将该主机名关联到其上。作为一个示例,如果存在两个要被关联的内容服务器,则路由服务器221可将内容服务器231和231关联到主机名1。可基于负载平衡算法来选择这两个被关联的内容服务器。当接收到对主机名1的后续请求时,除非关联同时已被终止,否则该请求将被分派给关联的内容服务器231和232集合。可基于负载平衡算法来选择关联的内容服务器231和232集合中的一个适当的服务器。 
如果接收到对主机名2(hostname2)的请求,则对主机名1的关联是不相关的,除非路由服务器要同时关联主机名的集群,而主机名1和主机名2碰巧在同一主机名集群中。然而,在本文进一步描述的的实施例中,关联发生在个别主机名的基础上,但本发明的原理不限于此。当接收到对主机名2的请求时,如果还没有对主机名2的关联,则路由服务器221决定关联。在此情况下,可能只有一个服务器被关联,比如内容服务器233。随后,除非关联被终止,否则内容服务器223将处理对主机名2的请求。 
注意在此示例中,主机名1被关联到两个内容服务器,而主机名2仅被关联到一个。在一个实施例中,每一主机名可具有不同数量的关联。可能这是由于主机名1的主机名提供者订阅了比主机名2的主机名提供者更高级别的服务(例如,两个关联单元)。如果例如主机名1的提供者比主机名2的提供者期望更多的网络通信量,或会想要更多的可靠服务,则这可能是适当的。在某一点处,由于主机名2的提供者经历甚至更多的网络通信量,该提供者可简单地订阅甚至更多的关联单元,而可能增加支付给共享托管服务的补偿。由此,主机提供者可保留实现替换的并且可能更昂贵托管安排的决定,诸如专用托管服务、或甚至可能购买并且建立它们自己的托管网络。因此,共享托管服务器可以为具有不同通信量和可靠性需要的各种各样的顾客定制共享托管,从而为共享托管服务创建扩展的业务机会和客户基础。 
尽管发生这一主机名关联的精确方法对此处描述的更广泛的原理不是至关重要的,但现在将描述一个具体示例方法。图3示出了用于关联对应于主机名的请求的方法300的流程图。方法300可以在每次接收到对应于主机名的通用集合中的一个主机名的请求时由路由服务器221来启动(动作301)。 
在接收请求(动作301)之后,路由服务器标识该请求的对应的主机名(动作302)。例如,路由服务器可标识该请求与主机名yyy.hostname1.com相对应。路由服务器随后确定对应的主机名是否被关联到内容服务器230中的任一个(判定框303)。 
如果还不存在对于该主机名到一个或多个内容服务器的主机名关联(在判定框303中“否”),则路由服务器选择将主机名关联到的服务器的子集(动作304)。在一个实施例中,可存在相关在一起的主机名集群。例如,出于营销目的,站点的所有者可具有该站点的数个主机名。例如,办公椅的卖方可具有两个主机名:“yyy.comfychairs.com”以及“yyy.comfortablechairs.com”。这两个主机名可以实际上是相同站点,因为域名服务器(DNS)服务器将这两个主机名解析成相同的因特网协议(IP)地址。在这一示例中,没有原因要区别对待它们。因此,如果请求与主机名“yyy.comfychairs.com”相关,则动作304可能仅将服务的集合关联到该主机名,但还可将相同的服务器集合关联到相关的主机名“yyy.comfortablechairs.com”,因为它们实际上是相同的站点。 
如上所述,主机名关联的内容服务器的子集可以是单个关联的内容服务器,或它可包括数个主机名关联的内容服务器。如果例如只要选择一个内容服务器来用于关联,则路由服务器可执行负载平衡算法来选择它认为最适于处理该请求的内容服务器。 
在一个实施例中,负载平衡算法可考虑对作出请求的客户机可能已经存在的任何客户机关联。这里,我们引入一种不同类型的关联,被称为“客户机关联”,这不要与“主机名关联”混淆。客户机关联意味着可基于作出请求的客户机来选择内容服务器以处理请求,而主机名关联意味着可基于对应于请求的主机名来选择内容服务器以处理请求。 
一旦选择了内容服务器集合(动作304),则所选择的内容服务器是被关联到该请求的对应主机名的主机名(动作305)。由此,从该时间向前,除非并且直到对于该关联的内容服务器集合的主机名关联被终止,否则对应于该主机名的请求将继续只由关联的内容服务器集合中的一个来处理。 
可能存在特定内容服务器的主机名关联为什么被终止的多个理由,一个理由是只不过相关的工作者进程超时了。即,在特定的可配置量的时间中没有接 收到对应于主机名的请求。由于可能大多数时间都不使用对应于该主机名的网站,这意味着内容服务器到主机名的关联可常常由于工作者进程超时而被终止。终止关联的另一原因是内容服务器可能丢失其足以处理进一步请求的健康。在一个实施例中,在发生某种可配置超时和内容服务器的健康丢失中的较早者之后,终止内容服务器的主机名关联。 
如果丢失内容服务器的主机名关联,例如,由于丢失该内容服务器的健康,并且如果特定主机名的关联的集合中仍存在内容服务器,则甚至在接收到对应于主机名的下一请求之前,路由服务器可在关联的集合以外主动地搜索最适合的内容服务器。或者,路由服务器可等待确定,直到接收到对主机名的下一请求。 
例如,如果主机名被分配了三个单元的关联单元,并且随后接收到对该主机名的请求。如果由于两个先前的关联服务器已丢失它们对主机名的关联,因此关联的服务器集合已被减小到一个,则路由服务器将再多选择两个内容服务器来关联到主机名,由此还原所分配的总共三个主机名关联的内容服务器。 
另一方面,在接收到请求之后(动作301),并且标识主机名之后(动作302),如果结果已经存在关联的内容服务器集合(在判定框303中“是”),则标识该关联的内容服务器集合(动作306)。然而,如上所述,如果关联的内容服务器集合下降到为该特定主机分配的内容服务器数量以下,则可选择附加的内容服务器并且将其关联到该主机名。 
一旦标识了关联的内容服务器集合(动作306),则标识要处理请求并且向其分派对应于该主机名的请求的一个特定的关联的内容服务器(动作307)。在平凡的情况下,其中在集合中仅存在一个关联的内容服务器,该内容服务器将是处理请求的那个内容服务器。在较难的情况下,其中存在对该主机名的数个关联的内容服务器,则路由服务器选择一个来处理请求。 
路由服务器可再次基于负载平衡算法来作出选择,可能在关联的内容服务器集合中选择最健康或可用的内容服务器。然而,在一个实施例中,路由服务器可施加客户机关联。例如,如果存在先前处理了来自特定客户机的请求并且对应于主机名的一个服务器,则即使存在关联到该主机名的数个内容服务器,路由服务器也可再次选择该服务器来处理对应于相同主机名并且对应于相同 客户机的另一请求。 
因此,此处描述的原理提供用于在共享托管环境中关联请求的高效且可能容易缩放的机制。例如,为了缩放,可能所有为添加内容服务器而执行的是允许内容服务器访问通用数据服务器,并且让路由服务器知道附加内容服务器的存在。 
另外,配置信息可在数个服务器之间共享,因为它们都能够对主机名的通用集合中的每一个的请求作出响应。这可简化共享托管服务的配置管理。例如,如果添加了附加内容服务器,则一个人可简单地给予附加的内容服务器对通用配置文件的访问。 
此外,负载平衡不需要手动地执行,因为所有内容服务器都能够对主机名的通用集合中的网站的请求作出响应,并且在接收到请求时选择适合的内容服务器。最后,由于每一服务器都能够对对应于通用集合中的任何主机名的请求作出响应,因此可改进可靠性。如果一个内容服务器停机了,另一个还可处理相同的请求。 
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述来指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。 

Claims (13)

1.一种用于在共享托管环境(200)中对对应于主机名的请求作出响应的方法(300),所述共享托管环境包括网络场(220),所述网络场包括多个内容服务器(230),所述方法包括:
路由服务器从客户机接收一请求,所述请求将由所述多个内容服务器中的至少一个服务器来处理;
所述路由服务器标识对应于所述请求的主机名;
确定所述主机名是否与所述多个内容服务器内的服务器的关联的子集相关联;
当确定所述主机名与服务器的关联的子集相关联时:
标识所述多个内容服务器中的与所述主机名进行主机名关联的关联的子集,其中所述关联是基于个别主机名,这样,解析成相同的IP地址的两个主机名可以被关联到不同的服务器的子集,
其中所述多个内容服务器包括关联到不同的第二主机名的不同的第二子集;
其中所述关联的子集中的每个服务器被关联到所述主机名,以及
其中所述关联的子集中的每个服务器能够处理对应于所述主机名的所述请求;
当确定所述主机名没有与所述多个内容服务器内的服务器的关联的子集相关联时:
所述路由服务器标识对应于所述主机名的新的服务器的关联的子集,所述新的服务器的关联的子集是所述多个内容服务器内的服务器组成的;
确定一个特定内容服务器要处理对应于所述主机名的请求,当确定所述主机名与服务器的关联的子集相关联时,所述特定内容服务器在所述服务器的关联的子集之内,当所述主机名没有与服务器的关联的子集相关联时,所述特定内容服务器在所述新的服务器的关联的子集之内;以及
所述路由服务器将所述对应于主机名的请求分派给所确定的特定内容服务器以供处理。
2.如权利要求1所述的方法,其特征在于,所述关联的子集包括单个主机名关联的服务器。
3.如权利要求1所述的方法,其特征在于,所述关联的子集包括数个主机名关联的服务器。
4.如权利要求1所述的方法,其特征在于,确定所述特定内容服务器包括执行负载平衡算法来确定所述多个内容服务器中的哪一个最适于处理所述请求。
5.如权利要求4所述的方法,其特征在于,负载平衡算法将对所述请求的客户机关联包括在内。
6.如权利要求1所述的方法,其特征在于,当在所述共享托管环境中接收到所述请求时,所述关联的子集已经被关联到所述主机名。
7.如权利要求1所述的方法,其特征在于,在所述网络场中的多个内容服务器中,仅某些服务器能够处理对应于所述主机名的请求。
8.如权利要求1所述的方法,其特征在于,在所述网络场中的多个内容服务器中的所有服务器都能够处理对应于所述主机名的请求。
9.如权利要求8所述的方法,其特征在于,在所述网络场中的多个内容服务器中的所有服务器都能够独立地处理对所述共享托管环境支持的多个主机名中的任一个的请求。
10.如权利要求1所述的方法,其特征在于,在分派所述请求之后,所述方法还包括:
确定终止所述关联的子集到所述主机名的主机名关联的条件已发生;以及
响应于确定终止所述主机名关联的条件已发生,终止所述关联的子集到所述主机名的关联。
11.如权利要求1所述的方法,其特征在于,在分派所述请求之后,所述方法还包括:
确定终止特定内容服务器到所述主机名的主机名关联的条件已发生;以及
响应于确定终止特定内容服务器到所述主机名的主机名关联的条件已发生,终止所述特定内容服务器到所述主机名的关联。
12.如权利要求11所述的方法,其特征在于,终止条件包括所述特定内容服务器在一特定时间段内不在处理请求。
13.一种在共享托管网络场(220)中托管多个主机名的方法,其中所述共享托管网络场包括:多个内容服务器(230),每一个内容服务器都能够独立地处理对应于所述多个主机名的通用集合中的每个主机名的请求;以及路由和关联服务器(221),所述路由和关联服务器被配置成接收对应于多个主机名的请求,并且被配置成基于主机名将所述请求中的至少某些请求以迫使主机名关联的方式来分派给所述多个内容服务器,在主机名关联中,对所述多个主机名中的至少某些主机名的请求基于主机名而被关联到所述多个内容服务器的对应子集,其特征在于,所述方法包括:
所述路由和关联服务器接收对应于多个主机名的请求,并响应于所接收的请求中的某些来执行以下动作:
标识(302)所述请求的对应主机名,其中,所述对应主机名包括在所述主机名的通用集合中;
确定(303)是否已存在将所述主机名与一个或多个关联的内容服务器的第一集合相关联的对所述主机名的主机名关联,其中,所述关联是基于个别主机名,这样,解析成相同的IP地址的两个主机名可以被关联到一个或多个内容服务器的不同的集合;
当还不存在对于所述多个内容服务器内的一个或多个内容服务器的主机名关联,则将所述主机名关联(304)到一个或多个内容服务器的第二集合,每个所述一个或多个内容服务器的第二集合都在所述多个内容服务器内;
当已经存在对于一个或多个内容服务器的主机名关联,则标识(306)一个或多个关联的内容服务器的所述第一集合;
标识(307)向其分派对应于所述主机名的请求的特定的关联的内容服务器,当存在主机名关联时,所述特定的关联的内容服务器在一个或多个关联的内容服务器的所述第一集合内,当不存在主机名关联时,所述特定的关联的内容服务器在一个或多个内容服务器的所述第二集合内;
将所述请求分派给所述特定的关联的内容服务器。
CN200980135195.8A 2008-09-03 2009-08-19 在共享托管环境中对对应于主机名的请求作出响应的方法以及托管多个主机名的方法 Active CN102150397B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/203,852 2008-09-03
US12/203,852 US8533333B2 (en) 2008-09-03 2008-09-03 Shared hosting using host name affinity
PCT/US2009/054297 WO2010027664A2 (en) 2008-09-03 2009-08-19 Shared hosting using host name affinity

Publications (2)

Publication Number Publication Date
CN102150397A CN102150397A (zh) 2011-08-10
CN102150397B true CN102150397B (zh) 2014-01-29

Family

ID=41726903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980135195.8A Active CN102150397B (zh) 2008-09-03 2009-08-19 在共享托管环境中对对应于主机名的请求作出响应的方法以及托管多个主机名的方法

Country Status (4)

Country Link
US (1) US8533333B2 (zh)
EP (1) EP2321931B1 (zh)
CN (1) CN102150397B (zh)
WO (1) WO2010027664A2 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377598B (zh) * 2010-08-26 2015-07-01 中国移动通信集团公司 一种互联网应用托管系统、设备和方法
CN102420708A (zh) * 2011-12-16 2012-04-18 广东高新兴通信股份有限公司 一种业务数据的负载均衡处理系统及方法
US8738902B2 (en) 2012-01-27 2014-05-27 Microsoft Corporation Implicit SSL certificate management without server name indication (SNI)
US8495221B1 (en) 2012-10-17 2013-07-23 Limelight Networks, Inc. Targeted and dynamic content-object storage based on inter-network performance metrics

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371852A (en) * 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
US5918017A (en) * 1996-08-23 1999-06-29 Internatioinal Business Machines Corp. System and method for providing dynamically alterable computer clusters for message routing
US6424992B2 (en) * 1996-12-23 2002-07-23 International Business Machines Corporation Affinity-based router and routing method
US6470389B1 (en) * 1997-03-14 2002-10-22 Lucent Technologies Inc. Hosting a network service on a cluster of servers using a single-address image
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
ATE381846T1 (de) * 1999-03-03 2008-01-15 Ultradns Inc Skalierbare und effiziente domainnamenauflösung
US6374300B2 (en) * 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
US6374297B1 (en) * 1999-08-16 2002-04-16 International Business Machines Corporation Method and apparatus for load balancing of web cluster farms
US6865601B1 (en) * 2000-02-11 2005-03-08 Hewlett-Packard Development Company L.P. Method for allocating web sites on a web server cluster based on balancing memory and load requirements
US6996616B1 (en) * 2000-04-17 2006-02-07 Akamai Technologies, Inc. HTML delivery from edge-of-network servers in a content delivery network (CDN)
US7200863B2 (en) * 2000-05-16 2007-04-03 Hoshiko Llc System and method for serving content over a wide area network
IL148037A0 (en) * 2000-06-14 2002-09-12 Sap Ag Communication between client and server computers via http, method, computer program product and system
US7346676B1 (en) * 2000-07-19 2008-03-18 Akamai Technologies, Inc. Load balancing service
US7366755B1 (en) * 2000-07-28 2008-04-29 International Business Machines Corporation Method and apparatus for affinity of users to application servers
WO2002013479A2 (en) * 2000-08-04 2002-02-14 Avaya Technology Corporation Intelligent demand driven recognition of url objects in connection oriented transactions
US7454500B1 (en) * 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US6813635B1 (en) * 2000-10-13 2004-11-02 Hewlett-Packard Development Company, L.P. System and method for distributing load among redundant independent stateful world wide web server sites
US7149797B1 (en) * 2001-04-02 2006-12-12 Akamai Technologies, Inc. Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP)
US20020143953A1 (en) * 2001-04-03 2002-10-03 International Business Machines Corporation Automatic affinity within networks performing workload balancing
US20020152307A1 (en) * 2001-04-12 2002-10-17 Doyle Ronald Patrick Methods, systems and computer program products for distribution of requests based on application layer information
US6871347B2 (en) * 2001-04-13 2005-03-22 Interland, Inc. Method and apparatus for facilitating load balancing across name servers
US7007089B2 (en) * 2001-06-06 2006-02-28 Akarnai Technologies, Inc. Content delivery network map generation using passive measurement data
US7315892B2 (en) * 2001-06-27 2008-01-01 International Business Machines Corporation In-kernel content-aware service differentiation
IL145104A (en) * 2001-08-23 2007-02-11 Gregory Bondar A method and system for balancing the load on a computer resource between computers
US7376953B2 (en) * 2001-10-29 2008-05-20 Hewlett-Packard Development Company, L.P. Apparatus and method for routing a transaction to a server
US7565402B2 (en) * 2002-01-05 2009-07-21 Eric Schneider Sitemap access method, product, and apparatus
US7088718B1 (en) * 2002-03-19 2006-08-08 Cisco Technology, Inc. Server load balancing using IP option field approach to identify route to selected server
US20040054793A1 (en) 2002-09-16 2004-03-18 Richard Coleman System and method for high performance shared web hosting
WO2004077259A2 (en) * 2003-02-24 2004-09-10 Bea Systems Inc. System and method for server load balancing and server affinity
US7636917B2 (en) 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7483998B2 (en) * 2003-11-14 2009-01-27 Alcatel Lucent Software configurable cluster-based router using heterogeneous nodes as cluster nodes
US20050177635A1 (en) * 2003-12-18 2005-08-11 Roland Schmidt System and method for allocating server resources
WO2006040811A1 (ja) 2004-10-12 2006-04-20 Fujitsu Limited リソース交換処理プログラムおよびリソース交換処理方法
US7493400B2 (en) * 2005-05-18 2009-02-17 Oracle International Corporation Creating and dissolving affinity relationships in a cluster
US7512707B1 (en) * 2005-11-03 2009-03-31 Adobe Systems Incorporated Load balancing of server clusters
US20070118667A1 (en) 2005-11-21 2007-05-24 Limelight Networks, Inc. Domain name resolution based dynamic resource assignment
US7707314B2 (en) * 2005-11-21 2010-04-27 Limelight Networks, Inc. Domain name resolution resource allocation
US7797200B2 (en) 2005-12-20 2010-09-14 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for providing website management services
US20070168548A1 (en) * 2006-01-19 2007-07-19 International Business Machines Corporation Method and system for performing multi-cluster application-specific routing
US9953097B2 (en) 2006-03-16 2018-04-24 Ebay Inc. System and method for managing network traffic routing
US20070239854A1 (en) * 2006-04-11 2007-10-11 Gopalakrishnan Janakiraman Method of migrating process domain
US7844839B2 (en) * 2006-12-07 2010-11-30 Juniper Networks, Inc. Distribution of network communications based on server power consumption
US7996820B2 (en) * 2007-01-04 2011-08-09 International Business Machines Corporation Determining proportionate use of system resources by applications executing in a shared hosting environment
US7694019B2 (en) * 2007-03-09 2010-04-06 International Business Machines Corporation System and method for accessing multiple addresses per domain name using networked repository
US8645524B2 (en) * 2007-09-10 2014-02-04 Microsoft Corporation Techniques to allocate virtual network addresses
US8881167B2 (en) * 2008-04-28 2014-11-04 International Business Machines Corporation Load balancing in network based telephony applications
US7925782B2 (en) * 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components

Also Published As

Publication number Publication date
US8533333B2 (en) 2013-09-10
WO2010027664A2 (en) 2010-03-11
EP2321931A4 (en) 2013-01-02
EP2321931B1 (en) 2018-04-18
WO2010027664A3 (en) 2010-05-14
US20100057837A1 (en) 2010-03-04
CN102150397A (zh) 2011-08-10
EP2321931A2 (en) 2011-05-18

Similar Documents

Publication Publication Date Title
CN101997903B (zh) 用于处理超文本传输协议请求的方法和系统
US7478122B2 (en) Web server system and method
US8959226B2 (en) Load balancing workload groups
CN109936635B (zh) 负载均衡方法和装置
CN101689169B (zh) 分布式操作系统中外部硬件装置的管理
US7865550B2 (en) Message processing control in a publish/subscribe system
CN102047242A (zh) 内容管理
CN101535978A (zh) 分布式服务器系统中的消息转发备份管理器
TW200931272A (en) System and method of inter-widget communication
CN101296176B (zh) 一种基于群集的数据处理方法和装置
WO2011041202A1 (en) Techniques for managing functionality changes of an on-demand database system
CN103596066A (zh) 一种数据处理方法及装置
CN102150397B (zh) 在共享托管环境中对对应于主机名的请求作出响应的方法以及托管多个主机名的方法
JP6335978B2 (ja) 通信セッション上の一部の参加者のための仮想の通信セッションを提供するシステムおよび方法
CN114924751A (zh) 一种业务访问请求流量分配的方法和装置
CN105530311A (zh) 负载分配方法和设备
US7984158B2 (en) Web service for coordinating actions of clients
KR100385926B1 (ko) 인터넷으로 연결된 복수의 사용자 단말장치간의 공유를 통한 분산처리시스템 및 시스템의 형성방법
JP2023545985A (ja) エッジ・コンピューティング環境におけるタスク・フローの管理
US11381665B2 (en) Tracking client sessions in publish and subscribe systems using a shared repository
US20190362320A1 (en) Systems and Methods for Task Assistance
CN106557310B (zh) 一种远程桌面管理方法和系统
US20210337041A1 (en) Orchestrated proxy service
US9456024B1 (en) Content sharing in mobile ad hoc networks
US11146501B2 (en) Decision based resource allocation in response systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.