首页> 中国专利> 用于一个或多个客户端和数据中心的服务器之间的客户端管理会话持续性的设备、系统和方法

用于一个或多个客户端和数据中心的服务器之间的客户端管理会话持续性的设备、系统和方法

摘要

一种用于维护一个或多个客户端和一个或多个数据服务器之间的会话持续性的设备、系统和方法包括根据包括在由负载均衡器从客户端接收的消息中的负载均衡器提示头,在客户端和数据服务器之间提供持续会话。客户端修改可由应用生成的消息,以便包括标识消息内标识特定持续会话的会话ID的位置的负载均衡器提示头。负载均衡器基于会话ID从会话-服务器表标识数据服务器并且将消息传输到所标识的数据服务器。如果负载均衡器不能定位相应的数据服务器,负载均衡器可与其他负载均衡器通信,以便确定相应的数据服务器的位置。

著录项

  • 公开/公告号CN104380278A

    专利类型发明专利

  • 公开/公告日2015-02-25

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201380028625.2

  • 发明设计人 R·科恩;M·嘎姆拉维;S·玛哈卡里;

    申请日2013-06-21

  • 分类号G06F15/16(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人姬利永

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 04:44:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-18

    授权

    授权

  • 2015-03-25

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20130621

    实质审查的生效

  • 2015-02-25

    公开

    公开

说明书

背景

云计算是向公司和其他实体提供虚拟计算资源和服务所借助的常用工 具。随着客户端公司的需要随着时间变化,云计算可为客户端公司提供许 多优势,包括计算资源的相对快速、高效和廉价的可升级性和可扩展性。 在云计算中,基础设施、平台、和/或软件可由云计算提供商提供给客户端 公司作为网络上(即,云上)的服务。例如,不是将独立的软件包加载到 客户端公司的每台计算机上,软件可被提供给客户端公司作为使用网络浏 览器或相关联的轻型应用可由客户端公司的任何计算机访问的服务。

云计算提供商通常管理一个或多个数据中心,这便于客户端公司访问 计算资源和服务。每个数据中心可包括一个或多个数据服务器(例如网络 服务器、应用服务器等等)以及一个或多个负载均衡器以便使用负载均衡 算法跨数据服务器均衡来自客户端公司计算机的工作负载(或一个或多个 “全局负载均衡器”来均衡跨数据中心的工作负载)。随着客户端公司的 计算需要的增长,可向公司的云计算资源添加附加的数据服务器和/或数据 中心,以便满足增长的计算需要。为了支持公司客户端计算机对虚拟计算 资源和服务的多重同时访问,每个数据服务器可包括由计算资源/服务使用 的数据的本地副本。为了确保每个数据服务器能够访问所存储数据的完整 副本,周期性地跨数据服务器复制数据。

附图简要说明

通过举例而非通过限制在附图中示出在此描述的本发明。为了示出的 简单和清晰,图中所示元件无需按比例绘制。例如,为了清晰的目的,某 些元件的尺寸可能相对于其他元件被放大。而且,当考虑合适时,已经在 附图中重复参考标号以便表明相应的或类似的元素。

图1是用于维护客户端计算设备与数据中心的数据服务器之间的会话 持续性的系统的至少一个实施例的简化框图;

图2是图1的系统的客户端计算设备的环境的至少一个实施例的简化 框图;

图3是图1的系统的负载均衡器的环境的至少一个实施例的简化框图;

图4是可由图2的客户端计算设备执行的用于生成持续消息的方法的 至少一个实施例的简化流程图;

图5和图6是可由图1的负载均衡器执行的用于维护客户端计算设备 和一个或多个数据服务器之间的会话持续性的方法的至少一个实施例的简 化流程图;

图7是用于维护客户端计算设备与数据中心的数据服务器之间的会话 持续性的系统的另一个实施例的简化框图。

附图详细描述

尽管本公开的概念可受到各种修改和替代形式,已经通过举例在附图 中并且将在此详细地描述其特定示例性实施例。然而,应当理解的是不旨 在将本公开的概念限制为所公开的具体形式,而是相反,本发明涵盖与本 公开和所附权利要求书一致的所有修改、等效方案和替代方案。

在以下说明中,列出了许多特定细节,诸如逻辑实现方式、操作码、 用于指定操作数的装置、资源划分/共享/复制实现方式、系统组件的类型和 相互关系、以及逻辑划分/集成选择,以便提供本公开的更透彻理解。然而, 本领域普通技术人员将认识到本公开的实施例可在没有这些特定细节的情 况下实践。在其他实例中,未详细地示出控制结构、门级电路、以及全软 件指令序列,以便不混淆本发明。通过所包括的描述,本领域普通技术人 员将能够在无需不适当的试验的情况下实现适当的功能。

在说明书中对“一个实施例”、“实施例”、“示例实施例”等等的 引用表明所描述的实施例可包括具体的特征、结构或特性,但是每个实施 例可无需包括该具体的特征、结构或特性。而且,这种短语无需指代相同 的实施例。而且,当结合实施例描述具体的特征、结构或特性时,认为其 在本领域普通技术人员结合显式地或未显式地描述的其他实施例实施这种 特征、结构或特性的知识范围内。

本发明的实施例可在硬件、固件、软件或其任何组合中实现。在计算 机系统中实现的本发明的实施例可包括组件之间的一个或多个基于总线的 互连和/或组件之间的一个或多个点到点互连。本发明的实施例还可被实现 为由瞬态或非瞬态机器可读(例如计算机可读)介质携带或存储在其上的 指令,这些指令可由一个或多个处理器读取并执行。机器可读介质可被实 施为任何用于存储或传输机器(例如,计算设备)可读形式的信息的设备、 机制、或物理结构。例如,机器可读介质可被实施为只读存储器(ROM); 随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存设备;迷 你或微SD卡、存储器棒、电信号和其他信号。

在附图中,可出于描述简单的目的示出示意元素(诸如表示设备、模 块、指令框和数据元素的那些)的特定安排或排序。然而,本领域普通技 术人员应当理解的是附图中的示意元素的特定排序或安排不旨在暗示要求 具体的处理顺序或序列或分离的过程。进一步地,附图中的示意元素的包 括不旨在暗示所有实施例中要求这种元素或者暗示这种元素所表示的特征 可不包括在某些实施例中的其他元素或与其组合。

总体上,可使用任何合适形式的机器可读指令(诸如软件或固件应用、 程序、功能、模块、例程、过程、流程、插件、小程序、小工具、代码片 段和/或其他)实现用于表示指令框的示意元件,以及可使用任何合适的编 程语言、库、应用编程接口(API)、和/或其他软件开发工具实现每个这 种指令。例如,可使用Java、C++、和/或其他编程语言实现某些实施例。 类似地,可使用任何合适的电子安排或结构(诸如寄存器、数据存储、表 格、记录、阵列、索引、散列、映射、树、列表、图示、文件(具有任何 文件类型)、文件夹、目录、数据库、和/或其他)实现用于表示数据或信 息的示意元件。

进一步地,在附图中,当连接元素(诸如实线或虚线或箭头)用于示 出两个或更多个示意元素之间的连接、关系或关联,任何这种连接元素的 不存在不意味着暗示不存在连接、关系或关联。换言之,元素之间的某些 连接、关系或关联可不在附图中示出,以便不混淆本公开。附加地,为了 示出简单,单个连接元素可用于表示元素之间的多个连接、关系或关联。 例如,当连接元素表示传递信号、数据或指令时,本领域普通技术人员应 当理解的是这种元素可表示可需要以实现通信的一个或多个信号路径(例 如总线)。

现在参考图1,在一个实施例中,用于维护客户端和一个或多个数据 服务器之间的会话持续性的系统100包括负载均衡器102,该负载均衡器被 配置成用于通过网络108从一个或多个客户端计算设备104、106接收消息 并将这种消息转发到数据中心114的所选择的一个或多个数据服务器110、 112。为了这样做,如以下更详细讨论的,客户端计算设备104、106被配 置成用于修改具体的传出消息以便包括负载均衡器提示头,该负载均衡器 提示头标识会话标识符(ID)所位于的消息内的位置。负载均衡器102基 于负载均衡器提示头的存在识别这种消息,并且基于负载均衡器提示头中 包括的数据从消息检索会话ID。负载均衡器102维护使会话ID与一个或 多个特定数据服务器110、112相关的会话服务器表。这样,负载均衡器102 可通过参照会话服务器表以便确定适当的数据服务器110、112接收消息, 来维护一个或多个特定客户端计算设备104、106和一个或多个特定数据服 务器110、112之间的持续会话。一旦确定,负载均衡器102将消息转发到 适当的数据服务器110、112。以此方式,最终一致性导致的问题被基本上 避免并且由负载均衡器102根据一个或多个客户端计算设备104、106发送 的经修改的消息,维护客户端计算设备104、106和一个或多个数据服务器 110、112之间的会话持续性。

相反,在典型的云计算系统中,最终一致性相关的问题会难以避免。 例如,如图1所示地安排的典型云计算系统可在某些情况下展现写后读问 题。例如,当客户端计算设备向一个服务器写入新数据(即,相关联的负 载均衡器将写消息路由到第一数据服务器)并且随后从尚未通过复制更新 的不同的数据服务器(即,相关联的负载均衡器将读消息路由到第二数据 服务器)读取数据时,这种情况可发生。这种写后读问题的发生是由于跨 云计算系统的数据服务器复制的暂时延迟。

某些云计算系统尝试缓解写后读问题并且通过使用附加于客户端计算 设备发送的消息并与其分离的cookie或数据来确保最终一致性。这种cookie 或附加的分离数据消息的使用可增加云计算系统的开销和延迟。其他云计 算系统可将数据嵌入到消息本体中,其用于建立如本领域已知的“粘性会 话”。然而,这种系统要求负载均衡器解析每个所接收到的消息本体以便 扫描所嵌入的粘性数据。这种解析和扫描会显著地影响负载均衡器性能, 因为负载均衡器不具有对这种粘性数据位于消息中哪里的指示并且因此必 须搜索整个消息或其大部分,以便定位粘性数据。

返回参考图1,系统100的每个客户端计算设备104、106可被实施为 能够执行在此所描述的功能的任何类型的计算设备。例如,每个客户端计 算设备104、106可被实施为而不限于被配置成用于存储和访问数据中心 114中的数据的计算机、桌上计算机、个人计算机(PC)、平板计算机、 膝上计算机、笔记本计算机、移动计算设备、智能电话、蜂窝电话、手机、 通讯设备、工作站、网络电器、web电器、分布式计算系统、微处理器系 统、基于处理器的系统、消费者电子设备、数字电视设备、机顶盒、和/或 任何其他计算设备。在某些实施例中,计算设备104、106中的一个或多个 可被实施为服务器(例如,消费者网络入口或数据服务器,其充当数据中 心114的客户端)。附加地,尽管系统100在图1中被示出为包括两个客 户端计算设备104、106,应当认识到在其他实施例中系统100可包括附加 的客户端计算设备。

在图1的说明性实施例中,客户端计算设备104包括处理器120、I/O 子系统124、存储器126、数据存储设备128、通信电路130、以及一个或 多个外围设备132。在某些实施例中,前述组件中的若干组件可被结合到客 户端计算设备104的母板或主板上,而其他组件可通过例如外围端口通信 地耦合到母板。进一步地,应当认识到客户端计算设备104可包括在计算 机和/或计算设备中通常发现的其他组件、子组件、以及设备,为了描述清 晰的目的,未在图1中示出。

客户端计算设备104的处理器120可被实施为能够执行软件/固件的任 何类型的处理器(诸如微处理器、数字信号处理器、微控制器等等)。处 理器120被说明性地实施为具有处理器核122的单核处理器。然而,在其 他实施例中,处理器120可被实施为具有多个处理器核122的多核处理器。 附加地,客户端计算设备104可包括具有一个或多个处理器核122的附加 处理器120。

客户端计算设备104的I/O子系统124可被实施为用于促进客户端计 算设备104的处理器120和/或其他组件的输入/输出操作的电路和/或组件。 在某些实施例中,I/O子系统124可被实施为存储器控制器中枢(MCH或 “北桥”)、输入/输出控制器中枢(ICH或“南桥”)以及固件设备。在 这种实施例中,I/O子系统124的固件设备可被实施为用于存储基本输入/ 输出系统(BIOS)数据和/或指令和/或其他信息(例如,在客户端计算设 备104的启动期间使用的BIOS驱动器)的存储器设备。然而,在其他实施 例中,可使用具有其他配置的I/O子系统。例如,在某些实施例中,I/O子 系统124可被实施为平台控制器中枢(PCH)。在这种实施例中,存储器 控制器中枢(MCH)可被结合到处理器120中或以其他方式与其相关联, 并且处理器120可直接与存储器126通信(如图1中的虚线所示)。附加 地,在某些实施例中,I/O子系统124可形成片上系统(SoC)的一部分并 且可与客户端计算设备104的处理器120和其他组件一起结合到单个集成 电路芯片上。

处理器120通过多条信号路径通信地耦合到I/O子系统124。这些信号 路径(以及图1中示出的其他信号路径)可被实施为能够促进客户端计算 设备104的组件之间的通信的任何类型的信号路径。例如,这些信号路径 可被实施为任何数量的点到点链路、接线、线缆、光导、印刷电路板迹线、 通孔、总线、介入设备等等。

客户端计算设备104的存储器126可被实施为或以其他方式包括一个 或多个存储器设备或数据存储位置,其包括例如动态随机存取存储器设备 (DRAM)、同步动态随机存取存储器设备(SDRAM)、双数据速率同步 动态随机存取存储器设备(DDR SDRAM)、掩码只读存储器(ROM)设 备、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)设备、 闪存设备、和/或其他易失性和/或非易失性存储器设备。存储器126通过多 条信号路径通信地耦合到I/O子系统124。尽管在图1中示出仅单个存储器 设备126,在其他实施例中,客户端计算设备104可包括附加存储器设备。 各种数据和软件可被存储在存储器126中。例如,组成处理器120执行的 软件堆栈的一个或多个操作系统、应用、程序、库、以及驱动器可在执行 期间驻留在存储器126中。

数据存储设备128可被实施为被配置成用于数据的短期或长期存储的 任何类型的设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动、固 态驱动、或其他数据存储设备。在说明性实施例中,客户端计算设备104 维护存储在数据存储设备128中的消息策略数据库206(见图2)。如以下 更详细讨论的,消息策略数据库206包括用于确定哪些传出消息是持续消 息并且因此应当被修改以便包括负载均衡器提示头的策略或规则。当然, 在其他实施例中,客户端计算设备104可存储、访问、和/或维护数据存储 128中的其他数据。客户端计算设备104的通信电路130可包括用于实现客 户端计算设备104和负载均衡器102之间的通过网络108的通信的任何数 量的设备和电路,如以下更详细讨论的。通信电路130可被配置成用于使 用任何一种或多种通信协议或其组合来与负载均衡器102通信,诸如例如 有线网络通信协议(例如TCP/IP)、无线网络通信协议(例如,WiMAX)、蜂窝通信协议(例如,宽带码分多址(W-CDMA))、和/或 其他通信协议。

在某些实施例中,客户端计算设备104还可包括一个或多个外围设备 132。这种外围设备132可包括任何数量的附加输入/输出设备、接口设备、 和/或其他外围设备。例如,在某些实施例中,外围设备132可包括显示器、 图形电路、键盘、鼠标、扬声器系统、和/或其他输入/输出设备、接口设备、 和/或外围设备。

客户端计算设备106可基本上类似于客户端计算设备104并且包括具 有共同参考标号的已经在图1中标识的类似组件。这样,客户端计算设备 104的组件的上述描述可同样适用于客户端计算设备106的那些类似组件, 并且在此不再赘述,以便不混淆本公开。当然,应当认识到在某些实施例 中,客户端计算设备104、106(或系统100的其他客户端计算设备)可相 互不同。例如,系统100的客户端计算设备可被实施为彼此不同的各种类 型的计算设备(例如,桌上计算机、移动计算机、平板计算机、智能电话、 或其他计算设备)并且包括通常在这种相应的计算设备中发现的组件。

如以下更详细讨论的,客户端计算设备104、106被配置成用于通过网 络108向数据中心114的负载均衡器102传输消息。网络108可被实施为 任何数量的各种有线和/或无线网络。例如,网络108可被实施为或以其他 方式包括有线或无线局域网(LAN)、有线或无线广域网(WAN)、和/ 或公共可访问的全球网络(诸如因特网)。这样,网络108可包括任何数 量的附加设备,诸如附加计算机、路由器、和交换机,以便促进客户端计 算设备104、106和数据中心114的负载均衡器102之间的通信。

如上所述,数据中心114包括负载均衡器102和一个或多个数据服务 器110、112。负载均衡器102被配置成用于从客户端计算设备104、106 接收消息并且将这种消息路由到数据服务器110、112中的一个(或多个)。 如果所接收到的消息是持续消息(即,该消息包括负载均衡器提示头), 负载均衡器102被配置成用于根据负载均衡器提示头从该消息检索标识特 定消息会话的会话ID,并且基于所检索到的会话ID确定将持续消息路由 到哪个(哪些)数据服务器110、112,如以下更详细讨论的。尽管数据中 心114在图1中被示出为包括仅单个负载均衡器102和数据服务器110、 112,应当认识到的是在其他实施例中,数据中心114可包括附加负载均衡 器以及通信地耦合到每个负载均衡器的一个、两个或更多个数据服务器。 附加地,如图7所示,在某些实施例中,系统100可包括多个数据中心114。

负载均衡器102可被实施为能够执行在此描述的功能的任何类型的数 据服务器或类似的计算设备。在图1的说明性实施例中,负载均衡器102 包括处理器140、I/O子系统144、存储器146、数据存储设备148、通信电 路150、以及一个或多个外围设备152。在某些实施例中,前述组件中的若 干组件可被结合到负载均衡器102的母板或主板上,而其他组件可通过例 如外围端口通信地耦合到母板。进一步地,应当认识到负载均衡器102可 包括在服务器和/或计算设备中通常发现的其他组件、子组件、以及设备, 为了描述清晰的目的,未在图1中示出。

负载均衡器102的处理器140可被实施为能够执行软件/固件的任何类 型的处理器(诸如微处理器、数字信号处理器、微控制器等等)。处理器 140被说明性地实施为具有处理器核142的单核处理器。然而,在其他实施 例中,类似于处理器120,处理器140可被实施为具有多个处理器核142 的多核处理器。附加地,负载均衡器102可包括具有一个或多个处理器核 142的附加处理器140。

负载均衡器102的I/O子系统144可被实施为用于促进负载均衡器102 的处理器140和/或其他组件的输入/输出操作的电路和/组件。在某些实施 例中,I/O子系统144可被实施为存储器控制器中枢(MCH或“北桥”)、 输入/输出控制器中枢(ICH或“南桥”)以及固件设备。在这种实施例中, I/O子系统144的固件设备可被实施为用于存储基本输入/输出系统(BIOS) 数据和/或指令和/或其他信息(例如,在客户端计算设备104的启动期间使 用的BIOS驱动器)的存储器设备。然而,在其他实施例中,可使用具有其 他配置的I/O子系统。例如,在某些实施例中,I/O子系统144可被实施为 平台控制器中枢(PCH)。在这种实施例中,存储器控制器中枢(MCH) 可被结合到处理器140中或与其相关联,并且处理器140可直接与存储器 146通信(如图1中的虚线所示)。附加地,在某些实施例中,I/O子系统 144可形成片上系统(SoC)的一部分并且可与负载均衡器102的处理器140 和其他组件一起结合到单个集成电路芯片上。

处理器140通过多条信号路径通信地耦合到I/O子系统144。这些信号 路径(以及图1中示出的其他信号路径)可被实施为能够促进负载均衡器 102的组件之间的通信的任何类型的信号路径。例如,这些信号路径可被实 施为任何数量的点到点链路、接线、线缆、光导、印刷电路板迹线、通孔、 总线、介入设备等等。

负载均衡器102的存储器146可被实施为或以其他方式包括一个或多 个存储器设备或数据存储位置,其包括例如动态随机存取存储器设备 (DRAM)、同步动态随机存取存储器设备(SDRAM)、双数据速率同步 动态随机存取存储器设备(DDR SDRAM)、掩码只读存储器(ROM)设 备、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)设备、 闪存设备、和/或其他易失性和/或非易失性存储器设备。存储器146通过多 条信号路径通信地耦合到I/O子系统144。尽管在图1中示出仅单个存储器 设备146,在其他实施例中,负载均衡器102可包括附加存储器设备。各种 数据和软件可被存储在存储器146中。例如,组成处理器140执行的软件 堆栈的一个或多个操作系统、应用、程序、库、以及驱动器可在执行期间 驻留在存储器146中。

数据存储设备148可被实施为被配置成用于数据的短期或长期存储的 任何类型的设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动、固 态驱动、或其他数据存储设备。在说明性实施例中,负载均衡器102维护 存储在数据存储设备148中的会话-服务器表306(见图3)。如以下更详 细讨论的,会话服-务器表306交叉引用、或以其他方式使会话ID与数据 服务器110、112相关。即,当在一个或多个客户端计算设备104、106和 一个或多个数据服务器110、112之间建立持续会话时,负载均衡器用特定 持续会话的会话ID到数据服务器对更新会话-服务器表306。当然,在其他 实施例中,负载均衡器102可存储、访问、和/或维护数据存储设备148中 的其他数据。

负载均衡器102的通信电路150可包括用于实现负载均衡器102和客 户端计算设备104、106之间的通过网络108的通信的任何数量的设备和电 路。通信电路150可被配置成用于使用任何一种或多种通信协议使如以上 参照客户端计算设备104的通信电路130所讨论的这种通信生效。附加地, 在某些实施例中,负载均衡器102还可包括一个或多个外围设备152。这种 外围设备152可包括通常与服务器或计算设备相关联的任何数量的附加输 入/输出设备、接口设备、和/或其他外围设备。

类似于负载均衡器102,数据服务器110、112可被实施为能够执行在 此描述的功能的任何类型的服务器(例如,网络服务器)或类似的计算设 备。这样,每个数据服务器110、112可包括类似于负载均衡器102的组件 和特征,诸如处理器、I/O子系统、存储器、数据存储、通信电路、以及各 种外围设备,为了本描述的清晰,未在图1中示出。数据服务器110、112 可被实施为与图1中示出的负载均衡器102分离的独立服务器或计算设备。 可替代地,在某些实施例中,数据服务器110、112中的一个或多个可被结 合到负载均衡器102中或以其他方式形成其一部分。

在图1的说明性实施例中,每个数据服务器110、112维护存储有各种 服务器侧应用、基于客户端的应用数据、以及其他数据存储的一个或多个 数据库160。在云计算实现方式中,数据服务器110、112可执行与在客户 端计算设备104、106上执行的应用相对应的各种服务器侧应用(例如,独 立式或基于浏览器的应用)。附加地,数据服务器110、112可将从客户端 计算设备104、106接收的数据和/或由客户端侧和服务器侧应用生成的数据 存储在数据库160中。如以上所讨论的,存储在数据库160中的数据可被 周期性地跨数据中心的所有数据服务器110、112(以及跨多个数据中心) 复制,以便确保每个数据服务器维护完整的和当前的数据集。

现在参考图2,在一个实施例中,客户端计算设备104、106在操作期 间建立环境200。说明性环境200包括一个或多个应用202、会话持续性模 块204、消息策略数据库206、以及通信模块208。应用202可被实施为被 配置成用于在执行期间与数据中心114通信的任何类型的软件或固件应用。 例如,在云计算实现方式中,应用202可被实施为被配置成用于与在一个 或多个数据服务器110、112上执行的相应服务器侧应用通信的基于浏览器 的应用和/或“瘦”客户端侧应用。可替代地,在其他实施例中,应用202 可被实施为被配置成用于与数据中心114通信以便远程地存储数据的独立 式、全特征应用。

会话持续性模块204可被实施为硬件、固件、软件或其组合。在某些 实施例中,会话持续性模块204可被实施为结合到应用202中或以其他方 式与其互连的应用程序接口。可替代地,在其他实施例中,会话持续性模 块204可被结合到通信模块208的通信堆栈(例如,堆栈TCP/IP)中。会 话持续性模块204被配置成用于标识从应用202发送的持续消息并且修改 这种消息以便包括负载均衡器提示头,其标识包括在消息内的会话ID的位 置(以及在某些实施例中的长度)。会话持续性模块204可通过访问可存 储在数据存储设备128中的消息策略206标识持续消息。

消息策略206包括由会话持续性模块204用于确定从应用202发送的 哪些传出消息是持续消息(即,发起或属于客户端-服务器持续会话)的规 则和/或策略。例如,在某些实施例中,消息策略206可提供用于基于消息 的终点(例如,消息所指向的负载均衡器102和数据中心114的互联网协 议(IP)地址或媒体访问控制(MAC)地址)、消息类型(例如,在消息 中使用的超文本传输协议(HTTP)方法的类型、在消息中使用的简单对象 访问协议(SOAP)动作的类型)、包括在HTTP或其他协议有效载荷中的 其他数据、和/或会话持续性模块204可用于标识应当被认为是持续消息的 那些传出消息的其他数据来标识持续消息的规则或策略。

一旦被标识为持续消息,会话持续性模块204修改该持续消息以便包 括负载均衡器提示头。如以下参照图4更详细讨论的,负载均衡器提示头 包括标识消息内的会话ID的位置的位置标识符以及标识会话ID的长度的 长度标识符。附加地,在某些实施例中,负载均衡器提示头可包括标识要 由负载均衡器102执行的动作的动作。在持续消息已经被修改以便包括负 载均衡器提示头之后,持续消息被通过网络108经由通信模块208使用如 上所讨论的合适通信协议传输到数据中心114。类似于会话持续性模块204, 通信模块208可被实施为硬件、固件、软件或其组合。

现在参考图3,在一个实施例中,负载均衡器102在操作期间建立环 境300。说明性环境300包括通信模块302、会话持续性模块304、会话- 服务器表或数据库306、以及负载均衡器模块308。通信模块302可被实施 为硬件、固件、软件或其组合,并且被配置成用于通过网络108从客户端 计算设备104、106接收消息。通信模块302将所接收到的消息传递到会话 持续性模块304以用于分析和处理。

类似于会话持续性模块204,会话持续性模块304可被实施为硬件、 固件、软件或其组合。会话持续性模块304被配置成用于从自客户端计算 设备104、106接收的那些消息标识持续消息。为了这样做,会话持续性模 块304确定特定消息是否包括负载均衡器提示头。如果包括,会话持续性 模块204基于包括在负载均衡器提示头中的数据检索包括在持续消息中的 会话ID,如以下更详细讨论的。将所检索到的会话ID与会话-服务器表306 进行比较以便确定该特定会话ID已经被指派给哪个(哪些)数据服务器 110、112。通信模块302随后将持续消息路由到所标识的数据服务器110、 112。可替代地,如果会话ID不位于会话-服务器表306中,消息被提供给 负载均衡器模块308,该负载均衡器模块基于或者以其他方式使用典型的负 载均衡算法(例如,基于数据服务器110、112的工作负载)选择将消息路 由到其上的一个或多个数据服务器110、112。会话持续性模块304随后用 新指派的会话-服务器对更新会话-服务器表306。

现在参考图4,在使用时,客户端计算设备104、106可执行用于生成 持续消息的方法400。方法400以框402开始,其中,客户端计算设备104、 106被初始化,其可包括任何合适的初始化过程。在某些实施例中,客户端 计算设备104、106可在框404中检索或以其他方式生成会话ID,其可被实 施为标识特定持续会话的任何类型的数据。例如,在框404中,如果会话 ID已经由负载均衡器102生成并指派,客户端计算设备104、106可检索会 话ID。可替代地,会话ID可由客户端计算设备104、106从负载均衡器102 请求或简单地由负载均衡器102指派给与新会话相关联的第一消息。仍进 一步地,在某些实施例中,会话ID可由客户端计算设备104生成。在这种 实施例中,会话ID可被实施为从其他客户端计算设备唯一地标识客户端计 算设备104、106的数据字,诸如媒体访问控制(MAC)地址或全局唯一标 识符(GUID)。在这种实施例中,可在执行方法400之前将会话ID指派 给客户端计算设备104、106或以其他方式与其关联,并在框404中对其进 行检索。在其他实施例中,会话ID可被实施为使用合适的随机数生成器在 框404中随机地生成的数据字或其他数据,以便产生基本上唯一的标识符。 在这种实施例中,会话ID可唯一地标识持续会话,从而使得单个客户端计 算设备104、106可维护多个持续会话。

在框406,客户端计算设备104、106还可配置消息策略206。如以上 所讨论的,消息策略包括可由客户端计算设备104、106的会话持续性模块 204用于确定哪些传出消息是持续消息的规则和/或策略。如此,在框406 中,客户端计算设备104、106可建立、更新、或以其他方式维护这种规则 和策略。

在框408中,客户端计算设备104、106随后通过网络108建立与数据 中心114的连接。在框410中,客户端计算设备104、106的会话持续性模 块204确定在客户端计算设备104、106上执行的应用202是否正在尝试向 数据中心114发送消息。如果是,方法400前进到框412,其中,客户端计 算设备104、106确定传出消息是否是持续消息(即,属于持续会话的消息 或者应当发起持续会话的消息)。为了这样做,会话持续性模块204在框 414中检索消息策略206并且在框416中使用消息策略分析传出消息。如以 上所讨论的,消息策略206的规则和策略可被实施为用于确定消息是否是 持续消息的任何类型的规则或策略,诸如例如基于消息的终点、消息的类 型、或其他数据的规则或策略。

如果会话持续性模块204在框418中确定消息是持续消息,方法400 前进到框420,其中,会话持续性模块204修改消息以便包括负载均衡器提 示头。如以上所讨论的,负载均衡器提示头标识消息内可发现会话ID的位 置。这样,负载均衡器提示头允许负载均衡器102快速地检索会话ID而无 需扫描或分析整个消息。负载均衡器提示头可被实施为标识会话ID在消息 内的位置的任何类型的数据。例如,在使用HTTP消息的实施例中,负载 均衡器提示头可具有以下形式:

LB-HINT:X,Y\r\n,

其中,“LB-HINT”是将头标识为LB-HINT头的头标记,“X”是标 识会话ID在消息内的位置的位置标识符,“Y”是标识会话ID的长度的 长度标识符,并且“/r/n”是标识负载均衡器提示的结束的结束标记。当然, 应当认识到头标记可被实施为标识负载均衡器提示头的任何类型的头标 记,并且在其他实施例中无需是取决于例如消息的类型的“LB-HINT”。 位置标识符可使用绝对值(即,消息内的准确位置)或相对值(即,消息 内的会话ID相对于负载均衡器提示的位置的位置)标识会话ID的位置。 位置标识符可使用任何合适的位置度量(诸如行数、字节数、字符数等等) 标识会话ID的位置。类似地,长度标识符可使用任何合适的度量(诸如会 话ID的字符数、字节数、或字数)标识会话ID的长度。在某些实施例中, 会话ID可不固有地包括在消息内。在这种实施例中,在框422中,会话持 续性模块204还可修改消息以便包括会话ID(在包括负载均衡器提示头之 前或者之后)。

附加地,在系统100包括如图7所示的多个数据中心114或者每个数 据中心114包括多个负载均衡器的实施例中,负载均衡器提示头可包括标 识要由负载均衡器102执行的动作的动作类型。例如,在使用HTTP消息 的实施例中,负载均衡器提示头可具有以下形式:

LB-HINT:X,Y;[action]\r\n,

其中,“action(动作)”定义要由负载均衡器102执行的动作。动作 类型可被实施为适合标识所请求的动作的任何类型的标识符。在某些实施 例中,在框424中,会话持续性模块204可从一组预定义的动作类型中选 择并且设置负载均衡器提示头中的所请求的动作。例如,在一个具体实施 例中,可使用“创建”动作类型或“搜索”动作类型。在这种实施例中, “创建”动作类型指令负载均衡器102应当使用当前会话发起新的持续会 话。“搜索”动作类型指令负载均衡器102针对包括在消息内的会话ID已 经存在持续会话,以及如果当前负载均衡器102没有该会话的记录(即, 在本地会话-服务器表306中不存在会话-服务器对),负载均衡器102应当 与其他负载均衡器通信以便定位持续会话。在已经根据需要在框420、422 和/或424中修改了消息之后,在框426中,通信模块208将经修改的消息 传输到负载均衡器102。

返回参考框418,如果持续性模块204确定该消息不是持续消息,方 法400前进到框426。在框426中,通信模块208照常将该消息传输到负载 均衡器102。即,该消息被视为要发送到负载均衡器的正常消息(非持续)。

现在参考图5和图6,在使用时,负载均衡器102可执行用于维护一 个或多个客户端计算设备104、104和一个或多个数据服务器110、112之 间的会话持续性的方法500。方法500以框502开始,其中,负载均衡器被 初始化,其可包括任何合适的初始化过程。例如,在某些实施例中,在框 504中,负载均衡器102可建立或以其他方式维护会话-服务器表306。相 应地,在某些实施例中,向每个持续会话指派超时阈值,从而使得每个持 续会话仅持续预定或参考时间段。在这种实施例中,在框506中,可选择、 确定、或以其他方式设置会话超时阈值。在某些实施例中,会话超时阈值 的大小被选择为允许跨数据服务器110、112进行数据复制(即,持续会话 仅被维护足够长以便确保跨数据服务器110、112进行数据复制)。

在负载均衡器102已经被初始化之后,在框508中,负载均衡器102 确定是否已经从客户端计算设备104、106接收到消息。如果已经接收到, 在框510中,负载均衡器102的会话持续性模块304确定所接收到的消息 是否是持续消息。为了这样做,会话持续性模块304确定该消息是否包括 负载均衡器提示头。如果会话持续性模块304确定所接收到的消息不是持 续消息(即,不包括负载均衡器提示头),方法500前进到框512,其中, 负载均衡器102将所接收到的消息路由到由负载均衡器模块308使用典型 的负载均衡算法选择的数据服务器110、112。

然而,如果所接收到的消息被确定为持续消息(即,该消息包括负载 均衡器提示头),在框514中,负载均衡器102的会话持续性模块304标 识负载均衡器提示头。随后,在框516中,会话持续性模块304根据负载 均衡器提示头(即,使用包括在负载均衡器提示头内的数据)检索会话ID。 例如,在负载均衡器提示头包括位置标识符和长度标识符的实施例中,会 话持续性模块304使用位置标识符在消息内定位会话ID并且使用长度标识 符检索会话ID。如以上所讨论的,位置标识符可标识会话ID的绝对或相 对位置。

在框518中,会话持续性模块304确定负载均衡器提示头是否包括动 作类型。如果不包括,方法500前进到框520,其中,会话持续性模块304 使用所检索到的会话ID搜索本地会话-服务器表306,以便确定该会话ID 的持续会话是否是活跃的。在框522中,如果会话持续性模块304在会话- 服务器表306中定位到会话ID,方法500前进到框524,其中,负载均衡 器102的通信模块302将该消息路由到在会话-服务器表306中被标识为与 会话ID成对的数据服务器110、112。附加地,在某些实施例中,负载均衡 器102可使用除会话ID以外的数据或标准(例如,负载均衡、复制状态等 等)确定将该消息路由到哪一个或多个数据服务器110、112。在框532, 会话持续性模块304确定包括在会话-服务器表306中的任何持续会话是否 已经达到超时阈值。如果是,方法500前进到框534,其中,任何超时持续 会话的会话-服务器对被从会话-服务器表306移除。如果否,或者会话-服 务器对已经被从会话-服务器表306移除之后,方法500循环回到框508, 其中,负载均衡器102监视来自客户端计算设备104、106的消息。

返回参考框522,如果会话ID不包括在会话-服务器表306中,方法 500前进到框526,其中,负载均衡器102的负载均衡器模块308为新的持 续会话选择一个或多个数据服务器110、112(即,数据服务器110、112 用于从客户端计算设备104、106接收用于新的持续会话的消息)。如上所 述,负载均衡器模块308可使用任何合适的负载均衡算法或技术来选择数 据服务器110、112。一旦被选定,在框528中,会话持续性模块304用使 用所选择的数据服务器110、112的新的会话ID-服务器对来更新会话-服务 器表306。在框530中,为新建立的持续会话(即,为新的会话-服务器对) 发起会话计时器。在某些实施例中,会话计时器与会话-服务器对相关联地 被记录在会话-服务器表306中并且可被实施为例如新的持续会话被建立的 时间。方法500随后前进到框532,其中,会话持续性模块304确定包括在 会话-服务器表306中的任何持续会话是否已经达到超时阈值,如上所述。 如果已达到,方法500前进到框534,其中,任何超时持续会话的会话-服 务器对被从会话-服务器表306移除。如果未达到,或者会话-服务器对已经 被从会话-服务器表306移除之后,方法500循环回到框508,其中,负载 均衡器102监视来自客户端计算设备104、106的消息。

返回参考框518,如果会话持续性模块304确定负载均衡器提示头确 实包括动作类型,方法500前进到框550(见图6)。在框550中,会话持 续性模块304确定动作类型是否是“创建”动作。如果是,方法500前进 到框552、554、和556,其中,负载均衡器模块308为新的持续会话选择 一个或多个数据服务器110、112、更新会话-服务器表306、以及为新建立 的持续会话发起会话计时器,如以上参照框526、528、和530所讨论的。 在已经建立新的持续会话之后,方法500前进到框558,其中,会话持续性 模块304确定包括在会话-服务器表306中的任何持续会话是否已经达到超 时阈值。如果已达到,方法500前进到框560,其中,任何超时持续会话的 会话-服务器对被从会话-服务器表306移除。如果未达到,或者会话-服务 器对已经被从会话-服务器表306移除之后,方法500循环回到框508,其 中,负载均衡器102监视来自客户端计算设备104、106的消息。

返回参考框550,如果负载均衡器提示头的动作类型被确定不是“创 建”动作,方法500前进到框462,其中,会话持续性模块304确定动作类 型是否是“搜索”动作。如果不是,方法500循环回到框520(见图5), 其中,该消息被处理为不具有动作类型的消息。然而,如果动作类型被确 定为是“搜索”动作,方法500前进到框566,其中,会话持续性模块304 使用所检索到的会话ID搜索本地会话-服务器表306,以便确定该会话ID 的持续会话是否是活跃的,如以上参照框520所讨论的。如果会话持续性 模块304确定在会话-服务器表306中包括会话ID,方法500前进到框570, 其中,负载均衡器102的通信模块302将该消息路由到在会话-服务器表306 中被标识为与会话ID成对的数据服务器110、112。方法500随后前进到框 558,其中,会话持续性模块304确定包括在会话-服务器表306中的任何 持续会话是否已经达到超时阈值,如上所述。如果已达到,方法500前进 到框560,其中,任何超时持续会话的会话-服务器对被从会话-服务器表306 移除。如果未达到,或者会话-服务器对已经被从会话-服务器表306移除之 后,方法500循环回到框508,其中,负载均衡器102监视来自客户端计算 设备104、106的消息。

返回参考框568,如果会话持续性模块304在本地会话-服务器表306 中不包括会话ID(即,持续会话不是由对应的负载均衡器102维护),方 法500前进到框572,其中,负载均衡器102向系统100的数据中心114 或其他数据中心114内的其他负载均衡器发送请求(见图7)。在这样做时, 负载均衡器102请求其他负载均衡器针对会话ID搜索其本地会话-服务器 表306,以便确定其他负载均衡器中的哪一个或多个正在维护该持续会话。 随后,在框578中,负载均衡器102确定会话ID是否已经由另一个负载均 衡器定位到(例如,负载均衡器102是否从其他负载均衡器接收到肯定响 应)。如果接收到,在框580中,负载均衡器102向提供维护该特定持续 会话的负载均衡器的标识数据(例如,IP地址)的客户端计算设备104、 106发送重定向消息。然而,如果会话ID未被定位到,在框582中,向客 户端计算设备104、106发送错误消息,并且方法循环回到框508,其中, 负载均衡器102监视来自客户端计算设备104、106的消息。

示例

以下提供在此公开的设备、系统、和方法的说明性示例。设备、系统、 和方法的实施例可包括以下所描述的示例中的任何一个或多个以及任何组 合。

在一个示例中,一种用于跨多个数据服务器均衡来自多个客户端计算 设备的工作负载的负载均衡器可包括:通信模块,用于从该多个客户端计 算设备中的客户端计算设备接收消息;以及会话持续性模块,用于根据包 括在该消息内的负载均衡器提示头在一个或多个客户端计算设备和一个或 多个数据服务器之间提供持续会话。该负载均衡器提示头可标识该消息内 的标识该持续会话的会话标识符的位置。

在示例中,该会话持续性模块用于:根据该负载均衡器提示头检索该 会话标识符;将该会话标识符与会话-服务器表进行比较以便标识至少一个 数据服务器用于接收该消息;以及向所标识的至少一个数据服务器传输该 消息。在示例中,该会话持续性模块可响应于与该一个或多个客户端计算 设备与所标识的至少一个数据服务器之间的该持续会话相关联的会话计时 器的过期,从该会话-服务器表移除该会话标识符。在示例中,该会话持续 性模块可响应于该会话标识符不包括在该会话-服务器表中使用负载均衡 算法从该多个数据服务器选择数据服务器,并且将该消息传输到所选择的 数据服务器。在示例中,该会话持续性模块可响应于选择该数据服务器, 发起与该一个或多个客户端计算设备与所选择的数据服务器之间的该持续 会话相关联的会话计时器。

在示例中,该负载均衡器提示头可包括标识该消息内该会话标识符的 位置的位置标识符。在示例中,该位置标识符可包括标识该消息内该会话 标识符相对于以下之一的位置的偏移值:(i)该负载均衡器提示头在该消息 内的位置或(ii)该消息的起始。在示例中,该负载均衡器提示头可进一步包 括标识该会话标识符的长度的长度标识符。在示例中,该会话持续性模块 可根据该位置标识符和该长度标识符从该消息获得该会话标识符、将该会 话标识符与本地会话-服务器表进行比较来根据该会话标识符标识用于接 收该消息的数据服务器、以及将该消息传输到所标识的数据服务器。

在示例中,该负载均衡器提示头可包括标识该消息内该会话标识符的 位置的位置标识符以及指示要由该负载均衡器执行的动作的动作类型。在 这种示例中,该会话持续性模块可基于包括在该负载均衡器提示头中的该 动作类型执行多个动作之一。在示例中,该会话持续性模块响应于该述负 载均衡器提示头包括相应的动作类型,可使用负载均衡算法从该多个数据 服务器选择数据服务器以便接收该消息以及将该消息传输到所选择的数据 服务器。在示例中,该会话持续性模块可响应于选择该数据服务器,发起 与该持续会话相关联的会话计时器。在示例中,该会话持续性模块响应于 该负载均衡器提示头包括相应的动作类型,可确定该会话标识符是否包括 在本地会话-服务器表中,以及响应于确定该会话标识符不包括在该本地会 话-服务器表中,向至少一个其他负载均衡器传输确定该会话标识符是否包 括在该其他负载均衡器所管理的会话-服务器表中的请求。在示例中,该会 话持续性模块可从另一个负载均衡器接收该会话标识符包括在由该其他负 载均衡器管理的会话-服务器表中的确认,以及响应于该确认,将重定向消 息传输到发送该消息的该客户端计算设备。该重定向消息可包括标识管理 包括该会话标识符的会话服-务器表的负载均衡器的负载均衡器标识数据。 在示例中,该会话持续性模块可从在该其他负载均衡器所管理的该会话-服 务器表中标识的与该会话标识符相关联的该相应数据服务器接收响应消 息,以及将该响应消息重新传输到发送该消息的该客户端计算设备。在示 例中,该会话持续性模块响应于确定该会话标识符包括在该本地会话-服务 器表中,可根据该会话标识符从该本地会话-服务器表标识多个数据服务器 中的一个或多个数据服务器,并且将该消息传输到所标识的一个或多个数 据服务器。

在示例中,该负载均衡器提示头可包括标识该负载均衡器提示头的标 签、标识该消息内该会话标识符的位置的位置标识符、标识该会话标识符 的长度的长度标识符、以及标识要由该负载均衡器执行的动作的动作类型。 在示例中,该负载均衡器提示头包括超文本标记语言头。在示例中,该会 话标识符唯一地标识发送该消息的该客户端计算设备与该数据服务器之一 之间的持续会话。

在另一个示例中,一种用于与数据中心的一个或多个数据服务器通信 的客户端计算设备可包括:会话持续性模块,用于修改要从在该客户端计 算设备上执行的应用发送到该一个或多个数据服务器的消息,以便包括标 识该消息内会话标识符的位置的负载均衡器提示头,会话标识符标识该客 户端计算设备和该一个或多个数据服务器之间的持续会话。该客户端计算 设备还可包括通信模块,用于向管理该一个或多个数据服务器的负载均衡 器传输该经修改的消息。

在示例中,该负载均衡器提示头可包括标识该消息内该会话标识符的 位置的位置标识符。在示例中,该位置标识符可包括标识该消息内该会话 标识符相对于以下之一的位置的偏移值:(i)该负载均衡器提示头在该消息 内的位置或(ii)该消息的起始。在示例中,该负载均衡器提示头可进一步包 括标识该会话标识符的长度的长度标识符。在示例中,该负载均衡器提示 头可进一步包括标识要由该负载均衡器执行的动作的动作类型。在示例中, 该会话持续性模块可确定要由该负载均衡器执行的该动作以及设置该动作 类型以便指示要由该负载均衡器执行的该动作。在示例中,该动作类型可 指示,该负载均衡器用于在该客户端计算设备与该一个或多个数据服务器 之间创建持续会话。在示例中,该动作类型指示,该负载均衡器将与另一 个负载均衡器通信以便定位该客户端计算设备与其进行当前持续会话的相 应的数据服务器。

在示例中,该会话持续性模块可基于存储在该客户端计算设备上的消 息策略,确定该消息是否是要包括在该客户端计算设备与该一个或多个数 据服务器之间的持续会话中的持续消息。在示例中,该消息策略可基于以 下至少一项标识持续消息:该消息的目的地、包括在该消息内的超文本传 输协议方法、以及包括在该消息内的简单对象访问协议动作。在示例中, 该会话持续性模块可生成该会话标识符并且进一步通过包括该会话标识符 来修改该消息。在示例中,该会话标识符可唯一地从与该负载均衡器通信 的其他计算设备标识该客户端计算设备。在示例中,该会话标识符唯一地 标识该客户端计算设备与该一个或多个数据服务器之间的持续会话。在示 例中,该会话标识符唯一地标识该负载均衡器与该一个或多个数据服务器 之间的持续会话。

在另一个示例中,一种在客户端计算设备和多个数据服务器之间提供 持续会话的方法可包括:通过负载均衡器从该客户端计算设备接收消息; 通过该负载均衡器基于包括在该消息内的负载均衡器提示头确定该消息内 会话标识符的位置,该会话标识符标识该持续会话;通过该负载均衡器比 较该会话标识符和由该负载均衡器管理的会话-服务器表以便标识该多个 数据服务器中的至少一个数据服务器来接收该消息;以及从该负载均衡器 向所标识的至少一个数据服务器传输该消息。在示例中,该方法可进一步 包括响应于与该持续会话相关联的会话计时器的过期,从该会话-服务器表 移除该会话标识符。在示例中,该方法可进一步包括响应于该会话标识符 不包括在该会话-服务器表中使用负载均衡算法从该多个数据服务器选择 数据服务器,并且将该消息传输到所选择的数据服务器。附加地,在示例 中,该方法可进一步包括响应于选择该数据服务器,发起与该持续会话相 关联的会话计时器。

在示例中,确定该会话标识符的该位置包括根据(i)标识该消息内该会 话标识符的位置的该负载均衡器提示头的位置标识符和(ii)标识该会话标识 符的长度的长度标识符,确定该会话标识符的位置。在示例中,根据该位 置标识符确定该会话标识符的位置包括根据该位置标识符和该消息内该负 载均衡器提示头的位置,确定该消息内该会话标识符的位置。

在示例中,该方法可进一步包括基于包括在该负载均衡器头中的动作 类型确定要由该负载均衡器执行的动作,其中,该动作类型指示要由该负 载均衡器执行的该动作。在示例中,该方法可进一步包括响应于基于动作 类型确定相应的动作,(i)使用负载均衡算法从该多个数据服务器选择数据 服务器以便接收该消息以及(ii)将该消息从负载均衡器传输到所选择的数据 服务器。在示例中,该方法可进一步包括响应于基于该动作类型确定相应 的动作,(i)确定该会话标识符是否包括在本地会话-服务器表中,以及(ii) 响应于确定该会话标识符不包括在该本地会话-服务器表中,向至少一个其 他负载均衡器传输确定该会话标识符是否包括在该其他负载均衡器所管理 的会话-服务器表中的请求。在示例中,该方法可进一步包括响应于该请求 从另一个负载均衡器接收该会话标识符包括在该其他负载均衡器所管理的 会话-服务器表中的确认,并且响应于该确认向发送该消息的该客户端计算 设备传输重定向消息,其中,该重定向消息包括标识管理包括该会话标识 符的该会话-服务器表的该负载均衡器的负载均衡器标识数据。在示例中, 该方法可进一步包括响应于该请求,从在该其他负载均衡器所管理的该会 话-服务器表中标识的与该会话标识符相关联的该相应数据服务器接收响 应消息,以及将该响应消息重新传输到发送该消息的该客户端计算设备。

在另一个示例中,一种负载均衡器可包括处理器和存储器,该存储器 具有存储在其中的多条指令,当被该处理器执行时,这些指令致使该负载 均衡器执行任何上述方法。附加地,在另一个示例中,一个或多个机器可 读介质可包括存储在其上的多条指令,响应于被执行,这些指令导致负载 均衡器执行任何上述方法。

在另一个示例中,一种用于客户端计算设备和多个数据服务器的数据 服务器之间的持续会话通信的方法可包括:修改要从在该客户端计算设备 上执行的应用发送到该数据服务器的消息以便包括标识该消息内标识该持 续会话的会话标识符的位置的负载均衡器提示头,以及将该经修改的消息 传输到管理该数据服务器的负载均衡器。在示例中,修改该消息可包括设 置该负载均衡器提示头的位置标识符以便标识该消息内该会话标识符的位 置。在示例中,修改该消息包括设置该负载均衡器提示头的位置标识符以 便标识该消息内该会话标识符相对于以下之一的位置:(i)该负载均衡器提 示头在该消息内的位置或(ii)该消息的起始。在示例中,修改该消息包括设 置该负载均衡器提示头的长度标识符以便标识该会话标识符的长度。在示 例中,修改该消息包括设置该负载均衡器提示头的动作类型,该动作类型 指示要由该负载均衡器执行的动作。

在示例中,设置该动作类型可包括设置该动作类型以便指示该负载均 衡器将在该客户端计算设备和该数据服务器之间创建持续会话。在示例中, 设置该动作类型可包括设置该动作类型以便指示该负载均衡器将与另一个 负载均衡器通信以便定位该客户端计算设备与其进行当前持续会话的相应 的数据服务器。

在示例中,该方法可进一步包括基于存储在该客户端计算设备上的消 息策略,确定该消息是否是要包括在该客户端计算设备与该一个或多个数 据服务器之间的持续会话中的持续消息。在示例中,确定该消息是否是持 续消息可包括基于以下至少一项确定该消息是否是持续消息:该消息的目 的地、包括在该消息内的超文本传输协议方法、以及包括在该消息内的简 单对象访问协议动作。在示例中,该方法可进一步包括生成该会话标识符 并且进一步通过包括该会话标识符来修改该消息。

在另一个示例中,一种客户端计算设备可包括处理器和存储器,该存 储器具有存储在其中的多条指令,当被该处理器执行时,这些指令致使该 客户端计算设备行执任何上述方法。附加地,在另一个示例中,一个或多 个机器可读介质可包括存储在其上的多条指令,响应于被执行,这些指令 导致客户端设备执行任何上述方法。

尽管已经在附图和前述描述中详细地示出并描述本公开,这种示出和 描述应被认为是本质上是示例性的并且不是限制性的,应理解的是仅示出 并描述说明性实施例并且希望保护与本公开和所引用的权利要求书相一致 的所有变化和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号