CN1578320B

Network load balancing with main machine status information

Abstract

In the first exemplary medium implementation, one or more processors can access the access medium, including processor-executable instructions. When the instructions are executed, they can guide the system to operate, including: in multiple hosts Accumulating host status information; and sending the accumulated host status information from the plurality of hosts. In the second exemplary medium implementation manner, one or more processors can access the access medium, including processor-executable instructions. When the instructions are executed, they can guide the system to operate, including: receiving from multiple hosts Host status information; and make a load balancing decision based on the received host status information. In the third exemplary medium implementation manner, one or more processors can access the access medium, including processor-executable instructions. When the instructions are executed, they can instruct the system to perform operations, including: Determine the health status and load information on the basis; and select an application program from a plurality of applications according to the health status and load information.

CN1578320B, drawing sheet 1
Sheet 1 of 41

Term

Term ended

Expired 30 June 2024, 2.2 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

69 claims: 2 independent, 67 dependent

  1. 1
    一种网络负载平衡方法,包括: 接收来自多个主机的特定应用的健康状态和负载信息,所述特定应用的健康状态和负 载信息包括指示应用程序的状态是否良好、故障或未知的应用程序健康状态;和 根据所接收到的特定应用的健康状态和负载信息作出负载平衡判决。
  2. 2
    如权利要求1中所述的方法,其特征在于,还包括: 接收来自客户端的用于一新连接的请求; 其中所述作出负载平衡判决包括: 根据所接收到的应用特定的健康状态和负载信息为该新连接选择一个目的目标。
  3. 3
    如权利要求1中所述的方法,其特征在于,所述的接收来自多个主机的特定应用的 健康状态和负载信息包括下述至少一个操作: 直接从所述多个主机中的一个或多个主机接收所述特定应用的健康状态和负载信息; 和 不直接从所述多个主机中的一个或多个主机接收所述特定应用的健康状态和负载信 息。
  4. 4
    一种用于网络负载平衡的系统,包括: 接收来自多个主机的特定应用的健康状态和负载信息的装置,所述特定应用的健康状 态和负载信息包括指示应用程序的状态是否良好、故障或未知的应用程序健康状态;和 根据所接收到的特定应用的健康状态和负载信息作出负载平衡判决的装置。
  5. 5
    如权利要求4所述的系统,其特征在于,所述的接收来自多个主机的特定应用的健 康状态和负载信息的装置包括: 通过至少一个代理接收来自所述多个主机的特定应用的健康状态和负载信息的装置。
  6. 6
    如权利要求4所述的系统,其特征在于,所述特定应用的健康状态和负载信息包括 至少一个负载平衡指示;并且其中所述的接收来自多个主机的特定应用的健康状态和负载 信息的装置包括: 通过至少一个代理接收来自所述多个主机的所述至少一个负载平衡指示的装置,所述 的至少一个代理调用一个或多个应用程序编程接口 Αρι来进栈推入所述的至少一个负载 平衡指不。
  7. 7
    如权利要求4所述的系统,其特征在于,所述的系统包括一个单一设备和多个设备 中的至少一种。 一种用于网络负载平衡的系统,其特征在于,包括: 健康状态和负载基础结构,适用于确定特定应用的健康状态和负载信息,所述特定应 用的健康状态和负载信息包括指示应用程序的状态是否良好、故障或未知的应用程序健康 状态;和 负载平衡基础结构,适用于在分配请求到多个应用程序时利用所述特定应用的健康状 态和负载信息。
  8. 8
    9. 如权利要求8所述的系统,其特征在于,所述的健康状态和负载基础结构包括存储 有所述特定应用的健康状态和负载信息的至少一部分的健康状态和负载表。
  9. 9
    10. 如权利要求8所述的系统,其特征在于,所述的健康状态和负载基础结构包括存储 有所述特定应用的健康状态和负载信息的至少一部分的健康状态和负载表;所述的健康状 态和负载表包括多个条目,所述多个条目的每一个条目与所述多个应用程序中的一个应用 程序相关联。
  10. 10
    11. 如权利要求8所述的系统,其特征在于,所述的健康状态和负载基础结构包括存储 有所述特定应用的健康状态和负载信息的至少一部分的健康状态和负载表;所述的健康状 态和负载表包括多个条目,所述多个条目的每一个包括:与该条目相关联的一个特定应用 程序的应用程序标识符、描述所述特定应用程序的至少一个状态的特征的信息、和有关该 特定应用程序的至少一个负载平衡指示。
  11. 11
    12. 如权利要求8所述的系统,其特征在于,所述的负载平衡基础结构包括存储有所述 特定应用的健康状态和负载信息的联合的健康状态和负载高速缓存。
  12. 12
    13. 如权利要求8所述的系统,其特征在于,所述的负载平衡基础结构包括存储有在多 个主机上执行的所述多个应用程序的特定应用的健康状态和负载信息的联合的健康状态 和负载高速缓存。
  13. 13
    14. 如权利要求8所述的系统,其特征在于,所述的特定应用的健康状态和负载信息包 括特定应用程序端点的健康状态和负载信息。
  14. 14
    15. 如权利要求8所述的系统,其特征在于,进一步包括: 代理设备,该代理设备包括所述健康状态和负载基础结构的至少部分,所述健康状态 和负载基础结构的所述至少部分适用于通过执行外部监视操作来确定所述特定应用的健 康状态和负载信息。
  15. 15
    16. 如权利要求8所述的系统,其特征在于, 所述的健康状态和负载基础结构包括存储有所述特定应用的健康状态和负载信息的 多个健康状态和负载表;和 所述的负载平衡基础结构包括存储有所述特定应用的健康状态和负载信息的多个联 合的健康状态和负载高速缓存。
  16. 16
    17. 如权利要求16所述的系统,其特征在于,所述的系统进一步包括: 在其上分布有所述健康状态和负载基础结构的多个主机,所述多个主机的每个主机拥 有所述多个健康状态和负载表中的一个健康状态和负载表;和 对应于所述负载平衡基础结构的至少一部分的多个负载平衡单元,所述多个负载平衡 单元的每个负载平衡单元拥有所述多个联合的健康状态和负载高速缓存中的一个联合的 健康状态和负载高速缓存。 1 如权利要求16所述的系统,其特征在于,所述的系统进一步包括: 在其上分布有所述健康状态和负载基础结构的多个主机,所述多个主机的每个主机拥 有所述多个健康状态和负载表中的一个健康状态和负载表;和 对应于所述负载平衡基础结构的至少一部分的多个负载平衡单元,所述多个负载平衡 单元的每个负载平衡单元拥有所述多个联合的健康状态和负载高速缓存中的一个联合的 健康状态和负载高速缓存; 其中所述多个联合的健康状态和负载高速缓存中的每个联合的健康状态和负载高速 缓存包括存储在所述的多个健康状态和负载表中的每个健康状态和负载表中的所述特定 应用的健康状态和负载信息。 19.如权利要求16所述的系统,其特征在于,所述的系统进一步包括: CN 1578320 Β 在其上分布有所述健康状态和负载基础结构的多个主机,所述多个主机的每个主机拥 有所述多个健康状态和负载表中的一个健康状态和负载表;和 对应于所述负载平衡基础结构的至少一部分的多个负载平衡单元,所述多个负载平衡 单元的每个负载平衡单元拥有所述多个联合的健康状态和负载高速缓存中的一个联合的 健康状态和负载高速缓存; 其中所述的多个应用程序在所述的多个主机上执行。
  17. 17
    20. 如权利要求16所述的系统,其特征在于,所述的系统进一步包括: 驻留于多个设备上的多个主机,所述的健康状态和负载基础结构分布在所述的多个主 机上,所述的多个主机中的每个主机拥有所述多个健康状态和负载表中的一个健康状态和 负载表;和 由至少一个设备组成的并对应于所述负载平衡基础结构的至少一部分的多个负载平 衡单元,所述多个负载平衡单元中的每个负载平衡单元拥有所述多个联合的健康状态和负 载高速缓存中的一个联合的健康状态和负载高速缓存。
  18. 18
    21. 如权利要求16所述的系统,其特征在于,所述的系统进一步包括: 驻留于多个设备上的多个主机,所述的健康状态和负载基础结构分布在所述的多个主 机上,所述的多个主机中的每个主机拥有所述多个健康状态和负载表中的一个健康状态和 负载表;和 由至少一个设备组成的并对应于所述负载平衡基础结构的至少一部分的多个负载平 衡单元,所述多个负载平衡单元中的每个负载平衡单元拥有所述多个联合的健康状态和负 载高速缓存中的一个联合的健康状态和负载高速缓存; 其中所述的健康状态和负载基础结构包括所述负载平衡基础结构的一个远端部分。
  19. 19
    22. 如权利要求16所述的系统,其特征在于,所述的系统进一步包括: 驻留于多个设备上的多个主机,所述的健康状态和负载基础结构分布在所述的多个主 机上,所述的多个主机中的每个主机拥有所述多个健康状态和负载表中的一个健康状态和 负载表;和 由至少一个设备组成的并对应于所述负载平衡基础结构的至少一部分的多个负载平 衡单元,所述多个负载平衡单元中的每个负载平衡单元拥有所述多个联合的健康状态和负 载高速缓存中的一个联合的健康状态和负载高速缓存; 其中所述的至少一个设备是所述的多个设备中的一个。
  20. 20
    23. 如权利要求16所述的系统,其特征在于,所述的系统进一步包括: 驻留于多个设备上的多个主机,所述的健康状态和负载基础结构分布在所述的多个主 机上,所述的多个主机中的每个主机拥有所述多个健康状态和负载表中的一个健康状态和 负载表;和 由至少一个设备组成的并对应于所述负载平衡基础结构的至少一部分的多个负载平 衡单元,所述多个负载平衡单元中的每个负载平衡单元拥有所述多个联合的健康状态和负 载高速缓存中的一个联合的健康状态和负载高速缓存; 其中所述的至少一个设备不是所述的多个设备中的一个;和 其中所述的健康状态和负载基础结构进一步适用于从所述的多个设备将所述特定应 用的健康状态和负载信息传播到所述的至少一个设备。 CN 1578320 Β
  21. 21
    24. 如权利要求8所述的系统,其特征在于,所述的健康状态和负载基础结构和所述的 负载平衡基础结构能够使用消息协议来在它们之间进行涉及所述特定应用的健康状态和 负载信息的通信。
  22. 22
    25. 如权利要求24所述的系统,其特征在于,所述的消息协议包括一个或多个下述的 消息类型:心跳消息类型、再见消息类型、行变化消息类型、获得表快照消息类型、发送表快 照消息类型、假定表状态消息类型、和假定错误消息类型。
  23. 23
    26. 如权利要求24所述的系统,其特征在于,所述的消息协议包括用组成员关系来进 行通信的能力。
  24. 24
    27. 如权利要求8所述的系统,其特征在于,所述的负载平衡基础结构,在一个故障之 后,能够经过所述的健康状态和负载基础结构使用一个消息协议来在它们之间进行通信来 恢复所述特定应用的健康状态和负载信息。 2 如权利要求8所述的系统,其特征在于,所述的负载平衡基础结构进一步适用于使 用一个或多个分配方案分配请求到所述的多个应用程序。
  25. 25
    29. 如权利要求28所述的系统,其特征在于,所述的一个或多个分配方案包括令牌分 配方案和百分比分配方案中的至少一个。
  26. 26
    30. 如权利要求28所述的系统,其特征在于,所述的一个或多个分配方案需要使用一 种定时器期满机制。
  27. 27
    31. 如权利要求28所述的系统,其特征在于,所述一个或多个分配方案可以由所述负 载平衡基础结构的健康状态和负载处理器来完成。
  28. 28
    32. 如权利要求11所述的系统,其特征在于,所述应用程序标识符唯一地从所述一个 或多个应用程序中识别出所述特定应用程序。
  29. 29
    33. 如权利要求11所述的系统,其特征在于,所述的应用程序标识符包括虚拟互联网 协议IP地址和端口、实际IP地址和端口、与所述特定应用程序相关的协议、和专用于该协 议的信息中的至少一个。
  30. 30
    34. 如权利要求11所述的系统,其特征在于,所述应用程序标识符包括至少一个全局 唯一标识符GUIDo
  31. 31
    35. 如权利要求11所述的系统,其特征在于,所述描述所述特定应用程序的至少一个 状态的特征的信息包括应用程序健康状态、应用程序负载、和应用程序容量中的至少一个。
  32. 32
    36. 如权利要求35所述的系统,其特征在于,所述的应用程序负载指示所述的特定应 用程序被占有的情况;以及所述应用程序容量指示所述特定应用程序的最大容量。
  33. 33
    37. 如权利要求36所述的系统,其特征在于,所述特定应用程序的最大容量是相对于 在所述系统中执行的与所述特定应用程序属于相同类型的应用程序的总容量来表示的。 3 如权利要求36所述的系统,其特征在于,所述特定应用程序的最大容量被表示为 一个没有单位的有限数字。
  34. 34
    39. 如权利要求11所述的系统,其特征在于,所述至少一个负载平衡指示可以提供给 多个负载平衡单元,为进行关于所述特定应用程序相对于相同应用程序类型的其它应用程 序的网络负载平衡提供指导。
  35. 35
    40. 如权利要求11所述的系统,其特征在于,所述至少一个负载平衡指示包括有效、耗 尽、无效。
  36. 36
    41. 如权利要求11所述的系统,其特征在于,所述至少一个负载平衡指示包括目标负 载平衡状态指示和当前负载平衡状态指示。
  37. 37
    42. 如权利要求11所述的系统,其特征在于,所述的系统进一步包括: 多个设备,所述的多个设备中的每一个设备分别包括各自的健康状态和负载表。
  38. 38
    43. 如权利要求24所述的系统,其特征在于,所述消息协议被实现在至少一个主机和 一个或多个负载平衡单元之间,所述消息协议包含至少一个消息,所述至少一个消息包括 心跳消息,所述心跳消息向所述一个或多个负载平衡单元指示所述至少一个主机正在运 行。
  39. 39
    44. 如权利要求43所述的系统,其特征在于,所述心跳消息的格式包括所述至少一个 主机的标识符、健康状态和/或负载信息的差错校验数据、和域名系统DNS名。
  40. 40
    45. 如权利要求43所述的系统,其特征在于,所述心跳消息的格式允许包含一块号/代 标识符ID对。
  41. 41
    46. 如权利要求24所述的系统,其特征在于,所述消息协议被实现在至少一个主机和 一个或多个负载平衡单元之间,所述消息协议包含至少一个消息,所述至少一个消息包括 再见消息,所述再见消息向所述的一个或多个负载平衡单元指示出所述至少一个主机打算 关机。
  42. 42
    47. 如权利要求46所述的系统,其特征在于,所述再见消息的格式包含所述至少一个 主机的标识符。 4 如权利要求24所述的系统,其特征在于,所述消息协议被实现在至少一个主机和 一个或多个负载平衡单元之间,所述消息协议包含至少一个消息,所述至少一个消息包含 行变化消息,所述行变化消息向所述一个或多个负载平衡单元指示出所述至少一个主机的 一个应用程序的健康状态和/或负载信息已经改变。
  43. 43
    49. 如权利要求48所述的系统,其特征在于,所述行变化消息的格式包括所述至少一 个主机的标识符、所述应用程序的标识符、反映所述变化的操作、和用于该操作的数据。
  44. 44
    50. 如权利要求24所述的系统,其特征在于,所述消息协议被实现在至少一个主机和 一个或多个负载平衡单元之间,所述消息协议包含至少一个消息,所述的至少一个消息包 括从所述的一个或多个负载平衡单元发送到所述至少一个主机的获得表快照消息,所述的 获得表快照消息请求所述至少一个主机的当前健康状态和/或负载信息的快照。
  45. 45
    51. 如权利要求50所述的系统,其特征在于,所述获得表快照消息的格式包含所述一 个或多个负载平衡单元的请求负载平衡单元的标识。
  46. 46
    52. 如权利要求24所述的系统,其特征在于,所述消息协议被实现在至少一个主机和 一个或多个负载平衡单元之间,所述消息协议包含至少一个消息,所述的至少一个消息包 含从所述至少一个主机发送到所述一个或多个负载平衡单元的请求负载平衡单元的发送 表快照消息,所述的发送表快照消息提供了所述至少一个主机的当前健康状态和/或负载 信息的快照。
  47. 47
    53. 如权利要求52所述的系统,其特征在于,所述发送表快照消息的格式包含所述至 少一个主机的所述当前健康状态和/或负载信息的所述快照。
  48. 48
    54. 如权利要求24所述的系统,其特征在于,所述消息协议被实现在至少一个主机和 一个或多个负载平衡单元之间,所述消息协议包含至少一个消息,所述至少一个消息包含 CN 1578320 Β 从所述的至少一个主机发送到所述一个和多个负载平衡单元的假定表状态消息,所述假定 表状态消息包括指示由所述至少一个主机所期望存在于至少一个负载平衡单元的当前负 载平衡状态指不的负载平衡状态指不。
  49. 49
    55. 如权利要求54所述的系统,其中所述假定表状态消息的格式包含所述至少一个主 机的标识符和所述当前负载平衡状态指示。
  50. 50
    56. 如权利要求24所述的系统,其特征在于,所述消息协议被实现在至少一个主机和 一个或多个负载平衡单元之间,所述消息协议包含至少一个消息,所述至少一个消息包含 从所述一个或多个负载平衡单元的一个负载平衡单元发送到先前发送了假定表状态消息 的所述至少一个主机的假定错误消息,所述的假定错误消息指示所述的一个负载平衡单元 有一个与包含在所述假定表状态消息中的一个假定的负载平衡状态指示不同的实际负载 平衡状态指不。
  51. 51
    57. 一种用于网络负载平衡的方法,包括: 在每一个应用程序基础上确定健康状态和负载信息,所述健康状态和负载信息包括指 示应用程序的状态是否良好、故障或未知的应用程序健康状态;和 根据所述的健康状态和负载信息从多个应用程序中选择一个应用程序用于负载平衡 判决。 5 如权利要求57所述的方法,其特征在于,所述的确定操作包括下述操作: 确定所述的多个应用程序中的应用程序何时开始和停止。
  52. 52
    59. 如权利要求57所述的方法,其特征在于,所述的确定操作包括下述操作: 确定所述的多个应用程序的一个应用程序何时是良好的和该应用程序何时出现故障 或处于故障当中。
  53. 53
    60. 如权利要求57所述的方法,其特征在于,所述的确定操作包括下述操作: 相对于一个特定应用程序类型的一个或多个其它的应用程序的负载来确定所述特定 应用程序类型的一个给定应用程序的负载。
  54. 54
    61. 如权利要求57所述的方法,其特征在于,还包括: 在每个应用程序基础上接收关于对所述健康状态和负载信息的确定的外部输入; 其中所述的确定步骤包括下述操作: 在每个应用程序的基础上根据所述的外部输入确定所述的健康状态和负载信息。
  55. 55
    62. 如权利要求57所述的方法,其特征在于,还包括: 从至少一个主机传播所述健康状态和负载信息到一个或多个负载平衡单元。
  56. 56
    63. 如权利要求57所述的方法,其特征在于,还包括: 从至少一个主机使用消息协议传播所述的健康状态和负载信息到一个或多个负载平 衡单元。
  57. 57
    64. 如权利要求57所述的方法,其特征在于,还包括: 从至少一个主机使用成员关系分组将所述的健康状态和负载信息传播到一个或多个 负载平衡单元。
  58. 58
    65. 如权利要求64所述的方法,其特征在于,所述的传播操作包括下述操作: 从所述至少一个主机发送一个心跳消息到一个领导主机,其中所述的心跳消息包括一 个传送指示,以指导所述的领导主机,即使在成员关系分组中没有变化发生时,也将所述的 CN 1578320 Β 心跳消息传送到所述的一个或多个负载平衡单元。
  59. 59
    66. 如权利要求57所述的方法,其特征在于,还包括: 从至少一个健康状态和负载表传播所述的健康状态和负载信息到一个或多个联合的 健康状态和负载高速缓存。
  60. 60
    67. 如权利要求57所述的方法,其特征在于,还包括: 接收来自多个主机的健康状态和负载信息;和 高速缓存所述的健康状态和负载信息。 6 如权利要求57所述的方法,其特征在于,还包括: 接收来自多个主机的健康状态和负载信息; 高速缓存所述的健康状态和负载信息; 接收请求一连接开始的分组;和 为所述的连接开始查询经高速缓存的健康状态和负载信息; 其中所述的选择操作包括下述操作: 根据所述的查询在所述多个应用程序中选择所述的应用程序。
  61. 61
    69. 如权利要求68所述的方法,其特征在于,所述的连接开始属于一个特定的应用程 序类型。
  62. 62
    70. 如权利要求57所述的方法,其特征在于,所述的选择操作包括下述操作: 响应于所述的健康状态和负载信息,从多个应用程序端点中选择一个应用程序端点。
  63. 63
    71. 如权利要求57所述的方法,其特征在于,所述的选择操作包括下述操作: 响应于所述的健康状态和负载信息,从被分布到多个主机中的多个应用程序端点中选 择一个应用程序端点。
  64. 64
    72. 如权利要求57所述的方法,其特征在于,所述的选择操作包括下述操作: 响应于所述的健康状态和负载信息,根据在多个应用程序端点之间或之中的相对可用 容量,从所述多个应用程序端点中选择应用程序端点的分配。
  65. 65
    73. 如权利要求72所述的方法,其特征在于,所述的选择操作包括进一步的操作: 使用令牌分配方案来选择所述应用程序端点的分配。
  66. 66
    74. 如权利要求72所述的方法,其特征在于,所述的选择操作包括进一步的操作: 使用百分比分配方案来选择所述应用程序端点的分配。
  67. 67
    75. 如权利要求72所述的方法,其特征在于,所述的多个应用程序端点对应于单一应 用程序类型的应用程序。
  68. 68
    76. 如权利要求57所述的方法,其特征在于,所述的选择操作包括下述操作: 为了平衡由进入的分组所引起的网络负载,响应于所述的健康状态和负载信息从所述 多个应用程序中选择所述应用程序。
  69. 69
    77. 如权利要求57所述的方法,其特征在于,所述的选择操作包括下述操作: 为了平衡由进入的连接请求所引起的网络负载,响应于所述的健康状态和负载信息从 所述多个应用程序中选择所述应用程序。 CN 1578320 Β
Independent claims69