CN112688985B - 通信方法及装置 - Google Patents
通信方法及装置 Download PDFInfo
- Publication number
- CN112688985B CN112688985B CN201910996355.3A CN201910996355A CN112688985B CN 112688985 B CN112688985 B CN 112688985B CN 201910996355 A CN201910996355 A CN 201910996355A CN 112688985 B CN112688985 B CN 112688985B
- Authority
- CN
- China
- Prior art keywords
- index
- server
- group
- address
- identification information
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种通信方法及装置,属于通信领域。所述方法包括:接收报文,报文包括虚拟地址和报文所属数据流的标识信息;根据标识信息,在虚拟地址对应的第一索引组中获取第一索引以及在虚拟地址对应的第二索引组中获取第二索引,其中在虚拟地址对应的服务器组已发生变化的情况下第一索引组包括变化前的服务器组中的各服务器的索引,第二索引组包括变化后的服务器组中的各服务器的索引,服务器的索引用于标识服务器的地址在地址列表中的存储位置;根据第一索引、第二索引和地址列表,获取服务器的地址;向获取的地址对应的服务器发送报文。采用本申请的方案,可以处理向发生变化的服务器组发送的报文。
Description
技术领域
本申请涉及通信领域,特别涉及一种通信方法及装置。
背景技术
数据中心是互联网重要的基础设施,数据中心包括多个服务器,这些服务器可用于处理客户端的数据流。为了平衡数据中心的各服务器的负载压力,可以部署负载均衡设备,负载均衡设备包括负载均衡策略,该负载均衡策略用于平衡数据中心的各服务器的负载压力。这样负载均衡设备接收客户端发送的报文,该报文包括数据中心的虚拟地址和该报文所属数据流的标识信息。根据该标识信息,通过负载均衡策略将该报文发送到该虚拟地址对应的数据中心中的一个服务器,由该服务器处理该报文。
为了实现该负载均衡策略,负载均衡设备中保存有索引列表和服务器列表,该索引列表用于保存该数据中心的虚拟地址和该数据中心的索引组之间的对应关系。该服务器列表包括该数据中心中的各服务器的地址,该数据中心的索引组包括该数据中心中的各服务器的索引,服务器的索引用于标识该服务器的地址在服务器列表中的存储位置。对于该数据中心的索引组,该索引组包括数据中心中的各服务器的索引,对于任一个服务器的索引,该索引组中包括多份该服务器的索引。例如,假设数据中心包括三个服务器以及该服务器列表的第0行、第1行和第2行用来保存该三个服务器的地址,该三个服务器的索引分别为0、1和2,索引组可以包括三份索引0,三份索引1和三份索引2,这样得到的索引组可以为0、1、2、0、1、2、0、1、2。
负载均衡设备在接收到报文时,基于该负载均衡策略,先根据该报文包括的数据中心的虚拟地址,获取该数据中心对应的索引组。根据该索引组中包括的索引数目,对该报文所属数据流的标识信息对应的哈希值进行取模运算,得到偏移值。根据该偏移值在数据中心的索引组中读取一个服务器的索引。根据该服务器的索引从服务器列表中读取该服务器的地址,根据该服务器的地址向该服务器发送该报文。例如,仍以上述的索引组为例,该索引组包括的索引数目为9,假设报文所属数据流的标识信息对应的哈希值为14;根据索引数目9,对14取模得到偏移值为5;根据偏移值5,从该索引组获取的服务器的索引为2,读取服务器列表的第2行保存的服务器地址;根据该服务器的地址向该服务器发送该报文。
在实现本申请的过程中,发明人发现相关技术至少存在以下问题:
上述方案中的索引列表和服务器列表均是固定的表,索引列表和服务器列表中的内容是不能被修改的,这样要求数据中心中的服务器也是固定不变的。然而目前存在一类数据中心,往往每隔一段时间会在该类数据中心中增减服务器,这样上述方案无法应用于该类数据中心,无法处理向该类数据中心发送的报文。
发明内容
本申请实施例提供了一种通信方法及装置,能够处理向发生变化的服务器组发送的报文,以及向发生变化的服务器发送该报文,所述技术方案如下:
第一方面,本申请提供了一种通信方法,在所述方法中,接收报文,该报文包括虚拟地址和该报文所属数据流的标识信息;根据该标识信息,在该虚拟地址对应的第一索引组中获取第一索引以及在该虚拟地址对应的第二索引组中获取第二索引,其中在该虚拟地址对应的服务器组已发生变化的情况下第一索引组包括变化前的服务器组中的各服务器的索引,第二索引组包括变化后的服务器组中的各服务器的索引,服务器的索引用于标识该服务器的地址在地址列表中的存储位置;根据第一索引、第二索引和所述地址列表,获取服务器的地址;向获取的地址对应的服务器发送该报文。
由于根据该标识信息在虚拟地址对应的第一索引组中获取第一索引以及在虚拟地址对应的第二索引组中获取第二索引,以及由于在服务器组发生变化的情况下第一索引组包括变化前的服务器组中的各服务器的索引,第二索引组包括变化后的服务器组中的各服务器的索引;这样根据第一索引、第二索引和地址列表可以获取到服务器的地址,如果该数据流是在服务器组发生变化前已存在的数据流,通过第一索引和第二索引获取的服务器的地址与在服务器组发生变化前为该数据流获取的服务器的地址相同,可以保证在服务器组变化前后为该数据流获取的服务器的地址是同一服务器的地址,保证该数据流不被中断。从而使该通信方法可以应用于不断变化的服务器组,可以处理向该服务器组发送的报文。另外,由于只保存一份地址列表,这样也节省了内存空间。
在一种可能的实现方式中,在第一索引和所述第二索引不同时,根据标识信息和历史记录表确定在服务器组变化前是否已接收该数据流,历史记录表用于记录向变化前的服务器组发送的数据流的标识信息;在确定出在服务器组变化前接收到数据流,根据第一索引从地址列表中获取服务器的地址。由于第一索引是服务器组发生变化前就已存在的服务器的索引,在确定服务器组变化前已接收该数据流,使用第一索引获取服务器的地址,可以保证在服务器组变化前后为该数据流获取的服务器的地址是同一服务器的地址,保证该数据流不被中断。
在另一种可能的实现方式中,在确定出在服务器组变化前没有接收到数据流时,根据第二索引从该地址列表中获取服务器的地址。在确定出在服务器组变化前没有接收到数据流时,表明该数据流是在服务器组发生变化后产生的新数据流,使用第二索引获取服务器的地址,保证将新数据流发送到变化后的服务器组中。
在另一种可能的实现方式中,根据该标识信息,查询数据流表,该数据流表用于保存第一数据流的标识信息与第一服务器的索引的对应关系,第一数据流是向变化前的服务器组发送的数据流,第一服务器是用于处理第一数据流的服务器;如果没有查询出对应的服务器的索引,则根据该标识信息,在虚拟地址对应的第一索引组中获取第一索引以及在虚拟地址对应的第二索引组中获取第二索引。
在另一种可能的实现方式中,如果查询出对应的服务器的索引,根据服务器的索引,从地址列表中获取所述服务器的地址;根据该服务器的地址向服务器发送该报文。由于数据流表用于保存向变化前的服务器组发送的数据流的标识信息和用于处理该数据流的服务器的索引,如果从服务器组中查询出对应的索引,根据查询出的索引获取服务器的地址,这样可以保证在服务器组变化前后为该数据流获取的服务器的地址是同一服务器的地址,保证该数据流不被中断。
在另一种可能的实现方式中,将该标识信息和第一索引之间的对应关系保存在该数据流表中。将服务器组变化前已存在的该数据流的标识信息和第一索引保存到数据流表中,这样下一次接收到该数据流的报文时,根据数据流表为该报文获取服务器的索引,不仅提高获取索引的效率,还保证获取的索引保持不变,保证该数据流不被中断。
在另一种可能的实现方式中,在没接收到该数据流的时长达到第一时长时,从数据流表中删除包括该标识信息的记录。这样可以减少数据流表的数据量,减少对存储空间的占用。
在另一种可能的实现方式中,在距离第一时间的时间差超过时间阈值时,根据第二索引组更新第一索引组,更新后的第一索引组包括变化后的服务器组中的各服务器的索引,第一时间是服务器组发生变化的时间。这样可以在服务器组发生变化后接收到新产生的数据流,根据第一索引组和第二索引组保证将新产生的数据流发送到变化后的服务器组中。
第二方面,本申请提供了一种通信装置,用于执行第一方面或第一方面的任意一种可能实现方式中的方法。具体地,所述装置包括用于执行第一方面或第一方面的任意一种可能实现方式的方法的单元。
第三方面,本申请实施例提供了一种通信装置,所述装置包括:处理器、存储器和收发器。其中,所述处理器、所述存储器和所述收发器之间可以通过总线系统相连。所述存储器用于存储一个或多个程序,所述处理器用于执行所述存储器中的一个或多个程序,完成第一方面或第一方面的任意可能实现方式中的方法。
第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有程序代码,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意可能实现方式中的方法。
第五方面,本申请提供了一种包含程序代码的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意可能实现方式中的方法。
附图说明
图1是本申请实施例提供的一种系统架构示意图;
图2是本申请实施例提供的另一种系统架构示意图;
图3是本申请实施例提供的变更索引列表的方法流程图;
图4是本申请实施例提供的一种增加服务器的示例图;
图5是本申请实施例提供的一种减少服务器的示例图;
图6是本申请实施例提供的一种通信方法流程图;
图7是本申请实施例提供的一种通信装置结构示意图;
图8是本申请实施例提供的另一种通信装置结构示意图。
具体实施方式
参见图1,本申请实施例提供了一种网络架构,该网络架构包括:
源端设备、负载均衡设备和至少一个服务器组,每个服务器组包括至少一个服务器,负载均衡设备包括负载均衡策略。
负载均衡设备接收来自源端设备的报文,该报文包括该报文所属的数据流的标识信息和虚拟地址,该虚拟地址对应一个服务器组,该服务器组包括至少一个服务器。根据该数据流的标识信息,通过该负载均衡策略在该服务器组中确定一个服务器,向该确定的服务器发送该报文,由该确定的服务器处理该报文。其中确定服务器的详细实现过程将在后续图6所示的实施例中进行详细说明,在此先不详细介绍。
可选的,上述负载均衡设备可以为具有负载均衡功能的路由器、交换机或服务器等。上述服务器组可以为数据中心等。上述源端设备可以为路由器、交换机、终端或服务器等。
可选的,该标识信息可以为该报文的四元组信息或五元组信息等信息,该报文的四元组信息包括该报文的目的地址、源地址、目的端口号和源端口号,该报文的五元组信息包括该报文的目的地址、源地址、目的端口号、源端口号和协议类型。
可选的,负载均衡设备保存有索引列表和地址列表,在从该服务器组中为该报文确定服务器的过程中,负载均衡设备会使用到该索引列表和地址列表。接下来详细介绍该地址列表和索引列表的结构。
可选的,地址列表中包括每个服务器组中的各服务器的地址,服务器的地址可以为网络互连协议(internet protocol,IP)地址等。例如,参见图1,该网络架构中包括服务器组A和服务器组B等,服务器组A包括服务器1、2和3,服务器组B包括服务器4、5和6。参见下表1所示的地址列表,该地址列表包括服务器组A中的服务器1的地址1,服务器2的地址2和服务器3的地址3,以及包括服务器组B中的服务器4的地址4,服务器5的地址5和服务器6的地址6。
表1
服务器1的地址1 |
服务器2的地址2 |
服务器3的地址3 |
服务器4的地址4 |
服务器5的地址5 |
服务器6的地址6 |
…… |
可选的,索引列表中保存有每个服务器组对应的第一索引组和第二索引组。该服务器组对应的第一索引组和第二索引组可能相同,也可能不同。在相同的情况下,该服务器组对应的第一索引组和第二索引组均包括该服务器组中的各服务器的索引。在不同的情况下,将在后续内容中详细介绍该服务器组对应的第一索引组的内容和第二索引组的内容,在此先不说明。
对于任一个服务器,该服务器的索引可以用于标识该服务器的地址在地址列表中的存储位置。可选的,该服务器的索引可以为该服务器的地址在地址列表中的存储位置。例如,参见表1,服务器1的地址1、服务器2的地址2、服务器3的地址3、服务器4的地址4、服务器5的地址5和服务器6的地址6分别存储在地址列表的第一行、第二行、第三行、第四行、第五行和第六行。所以可以使用1、2、3、4、5和6分别表示服务器1的索引、服务器2的索引、服务器3的索引、服务器4的索引、服务器5的索引和服务器6的索引。
对于该服务器组中的任一个服务器,在该服务器组对应的第一索引组或第二索引组中可以包括多份该服务器的索引,且第一索引组包括的索引总数目和第二索引组包括的索引总数目相等。
例如,参见下表2所示的索引列表,对于服务器组A对应的第一索引组和第二索引组,第一索引组或第二索引组包括两份服务器1的索引1,两份服务器2的索引2和两份服务器3的索引3,服务器组A对应的第一索引组包括的索引总数目和第二索引组包括的索引总数目均等于6。再如,对于服务器B对应的第一索引组和第二索引组,第一索引组或第二索引组包括两份服务器4的索引4,两份服务器5的索引5和两份服务器6的索引6,服务器组B对应的第一索引组包括的索引总数目和第二索引组包括的索引总数目均等于6。
其中,需要说明的是,对于该服务器组包括的任意两个服务器,该任意两个服务器的索引在第一索引组中所占的比例相等或该任意两个服务器的索引在第一索引组中所占的比例相差的差值小于差值阈值,以及该任意两个服务器的索引在第二索引组中所占的比例相等或该任意两个服务器的索引在第二索引组中所占的比例相差的差值小于差值阈值。该差值阈值可以为0.1、0.05或0.03等数值。
对于任一个服务器的索引,第一索引组包括该索引的数目与第一索引组包括的索引总数目之间的比值为该索引在第一索引组中所占的比例。同理,第二索引组包括该索引的数目与第二索引组包括的索引总数目之间的比值为该索引在第二索引组中所占的比例。
例如,对于服务器组A对应的第一索引组或第二索引组,服务器组A中的服务器1的索引1在第一索引组(或第二索引组)中所占的比例为1/3,服务器2的索引2在第一索引组(或第二索引组)中所占的比例也为1/3,服务器3的索引3在第一索引组(或第二索引组)中所占的比例仍1/3。即服务器组A中的各服务器的索引所占的比例均相等。
表2
可选的,对于该网络架构中的任一服务器组,往往会每隔一段时间在该服务器组中增减服务器,导致该服务器组发生变化。
可选的,参见图2,该网络架构还可以包括管理设备,对于该网络架构中的任一服务器组,在该服务器组发生变化时,管理设备可以变更该负载均衡设备中的地址列表,使得变更后的该地址列表中保存有变化后的该服务器组中的各服务器地址。在该地址列表发生变更后,负载均衡设备变更该服务器组对应的第二索引组,使得变更后的第二索引组保存变化后的该服务器组的各服务器的索引。其中,变更地址列表和索引列表的详细实现过程,将在后续图3所示的实施例进行详细说明,在此先不详细介绍。管理设备也可以是负载均衡设备的一部分。
在该服务器组发生变化的情况下,负载均衡设备在索引列表中将该服务器组对应的第二索引组保存的索引变更为变化后该服务器组中的各服务器的索引,但此时该服务器组对应的第一索引组仍不变,即第一索引组仍保存变化前该服务器组中的各服务器的索引,也就是说此时的该服务器组对应的第一索引组和第二索引组不同。
参见表2,对于索引列表中的每条记录,该条记录包括一个服务器组的虚拟地址和两个索引,对于该两个索引,其中一个索引属于该服务器组对应的第一索引组,另一个索引属于该服务器组对应的第二索引组。在该服务器组对应的第一索引组和第二索引组相同的情况下,该条记录中的两个索引相同,在该服务器组对应的第一索引组和第二索引组不同的情况下,该条记录中的两个索引可能相同,也可能不同。
对于上述任一个服务器组,在该服务器组中增减服务器时,需要对负载均衡设备中保存的地址列表和索引列表进行变更。参见图3,该变更的方法包括如下201至204的步骤:
步骤201:在该服务器组中增加服务器的情况下,管理设备向负载均衡设备发送添加指令,该添加指令包括第一服务器的地址和该服务器组的虚拟地址,第一服务器为在该服务器组中增加的服务器。
在本步骤中,技术人员在该服务器组中增加服务器(第一服务器)后,可以向管理设备输入负载均衡设备的地址,第一服务器的地址和该服务器组的虚拟地址。
管理设备获取输入的负载均衡设备的地址,第一服务器的地址和该服务器组的虚拟地址,根据负载均衡设备的地址,向负载均衡设备发送添加指令,该添加指令包括第一服务器的地址和该服务器组的虚拟地址。
例如,参见图4,技术人员在服务器组A中增加服务器7后,向管理设备输入服务器7的地址7以及服务器组A的虚拟地址VIP1。管理设备向负载均衡设备发送添加指令,该添加指令包括服务器7的地址7和服务器组A的虚拟地址VIP1。
步骤202:负载均衡设备接收该添加指令,该添加指令包括第一服务器的地址和该服务器组的虚拟地址,将第一服务器的地址保存到地址列表中,以及变更该虚拟地址对应的第二索引组,变更后的第二索引组包括在增加第一服务器后该服务组中的各服务器的索引。
在本步骤中,负载均衡设备将第一服务器的地址保存到地址列表中,从地址列表中获取第一服务器的地址的存储位置,根据该存储位置获取第一服务器的索引。根据该服务器组的虚拟地址,从索引列表中获取该服务器组的第二索引组,将第二索引组中的部分索引替换为第一服务器的索引。且在替换后,第二索引组中任意两个服务器的索引在第二索引组中所占的比例相等,或者,该任意两个服务器的索引在第二索引组中所占的比例相差的差值小于差值阈值。
可选的,负载均衡设备获取当前时间作为在该服务器组中增加服务器的时间,该时间又可称为该服务器组的变化时间,在该索引列表中的包括第一服务器的索引的记录中保存该变化时间。
例如,负载均衡设备将服务器7的地址7保存到上述表1所示的地址列表中,得到如下表3所示的地址列表,在表3所示的地址列表中服务器7的索引为7。
表3
地址列表(服务器的地址) |
服务器1的地址1 |
服务器2的地址2 |
服务器3的地址3 |
服务器4的地址4 |
服务器5的地址5 |
服务器6的地址6 |
服务器7的地址7 |
…… |
负载均衡设备根据服务器组A的虚拟地址VIP1,从上述表2所示的索引列表中获取服务器组A的第二索引组,该第二索引组为(1、2、3、3、2、1)。参见下表4,将该第二索引组中的部分索引替换为服务器7的索引7,获取当前时间作为在服务器组A的变化时间t1,在索引列表中的包括索引7的记录中保存变化时间t1。
表4
可选的,在服务器组中增加服务器后,负载均衡设备还可以实时获取当前时间与该服务器组对应的变化时间之间的时间差,在该时间差超过第一时间阈值,在索引列表中根据该服务器组对应的第二索引组更新该服务器组对应的第一索引组。
在实现时:从该索引列表中获取包括变化时间的记录,该记录包括属于第一索引组的索引和属于第二索引组的索引,获取该记录中的变化时间与当前时间之间的时间差,在该时间差超过第一时间阈值时,将该记录中的属于第一索引组的索引替换为属于第二索引组的索引。
可选的,在该时间差超过第一时间阈值时,负载均衡设备还可以从该记录中删除该变化时间。
例如,负载均衡设备从上述表4所示的索引列表中获取包括变化时间t1的记录,该记录中包括属于第一索引组的索引3和属于第二索引组的索引7。获取该记录中的变化时间t1与当前时间之间的时间差,在该时间差超过第一时间阈值时,将该记录中的索引3替换为索引7,以及删除该记录中保存的变化时间t1,得到的结果如下表5所示。
表5
有时可能较频繁地在服务器组中增加服务器,这样可能导致在某段时间内相邻两次增加服务器的间隔可能小于第一时间阈值。所以在索引列表可能保存有与该服务器组的虚拟地址相对应的多个不同的变化时间。
可选的,技术人员除了在该服务器组中增加服务器外,还可以在该服务器组中减少服务器。目前在技术人员从该服务器组中减少服务器之前的某个时间,技术人员需要负载均衡设备对该服务器组对应的第二索引组进行变更。该时间与从该服务器组中减少服务器的实际时间之间的时间差大于或等于第一时间阈值,所谓减少服务器可以是断开该服务器与通信网络之间的连接。变更第二索引组的实现过程如下203至204的步骤:
步骤203:管理设备向负载均衡设备发送减少指令,该减少指令包括第二服务器的地址和该服务器组的虚拟地址,第二服务器是将要从该服务器组中移走的服务器。
在本步骤中,技术人员在从该服务器组减少服务器(第二服务器)之前,向管理设备输入负载均衡设备的地址,第二服务器的地址和该服务器组的虚拟地址。
管理设备获取负载均衡设备的地址,第二服务器的地址和该服务器组的虚拟地址,根据负载均衡设备的地址,向负载均衡设备发送减少指令,该减少指令包括第二服务器的地址和该服务器组的虚拟地址。
例如,参见图5,当从服务器组B中移走服务器6或服务器6不能提供服务时,技术人员向管理设备输入服务器6的地址6以及服务器组B的虚拟地址VIP2。管理设备向负载均衡设备发送减少指令,该减少指令包括服务器6的地址6和服务器组B的虚拟地址VIP2。
步骤204:负载均衡设备接收该减少指令,该减少指令包括第二服务器的地址和该服务器组的虚拟地址,根据第二服务器的地址和地址列表获取第二服务器的索引,更新该虚拟地址对应的第二索引组,更新后的第二索引组包括该服务器组除第二服务器之外的其他服务器的索引。
在本步骤中,负载均衡设备从地址列表获取第二服务器的地址的存储位置,根据该存储位置获取第二服务器的索引,根据该服务器组的虚拟地址,从索引列表中获取该服务器组的第二索引组,将该第二索引组中的第二服务器的索引替换为该服务器组中的其他服务器的索引,且在替换后,第二索引组中的任意两个服务器的索引在第二索引组中所占的比例相等,或者,该任意两个服务器的索引在第二索引组中所占的比例相差的差值小于差值阈值。
其中,在从第二服务器组中减少第二服务器时,负载均衡设备可以不需要变更地址列表,即地址列表中可以还保存第二服务器的地址。
可选的,负载均衡设备获取当前时间作为从该服务器组中减少第二服务器的时间,该时间又可称为该服务器组的变化时间,即在此时负载均衡设备认为服务器组发生了变化。在该第二索引组中将第二服务器的索引替换为其他服务器的索引后,在索引列表中的包括该其他服务器的索引和第二服务器的索引的记录中保存该变化时间。
其中,该变化时间早于从该服务器组中减少第二服务器的实际时间,且该变化时间与减少第二服务器的实际时间之间的时间差大于或等于第一时间阈值。也就是说,在该变化时间之后,至少经过第一时间阈值后,技术人员才真正从该服务器组中减少第二服务器,这样提供了一段缓冲时间,保证在该变化时间之前已发送给第二服务器的数据流在该一段缓冲时间内能继续发送到第二服务器,通常在该一段缓冲时间内该数据流能够传输完,如此保证该数据流不被中断。
例如,负载均衡设备根据服务器6的地址6从上述表3所示的地址列表中,获取服务器6的索引为6。然后根据服务器组B的虚拟地址VIP2,从上述表4所示的索引列表中获取服务器组B的第二索引组,该第二索引组为(4、5、6、5、4、6)。参见下表6,获取当前时间t2作为从服务器组B中减少服务器6的时间,即服务器组B发生变化的变化时间为t2,在将该第二索引组中的第一个索引6替换为索引4时,在包括该索引6和该索引4的记录中保存变化时间t2,以及在将该第二索引组中第二个索引6替换为索引5时,在包括索引6和索引5的记录中保存变化时间t2。
表6
可选的,在执行本步骤之后,负载均衡设备还实时获取当前时间与该服务器组对应的变化时间之间的时间差,在该时间差超过第一时间阈值,在索引列表中根据该服务器组对应的第二索引组更新该服务器组对应的第一索引组。详细实现参见上述步骤202中的相关内容,在此不再详细说明。
可选的,对于从服务器组减少第二服务器的情况,在本申请实施例中,还提供另一种变更索引列表的方式,在该方式中,在技术人员实际从服务器组中减少第二服务器时,技术人员向管理设备输入第二服务器的地址和该服务器组的虚拟地址。管理设备向负载均衡设备发送减少指令,该减少指令包括第二服务器的地址和该服务器组的虚拟地址。负载均衡设备接收该减少指令,根据第二服务器的地址和地址列表获取第二服务器的索引,更新该虚拟地址对应的第一索引组和第二索引组,更新后的第一索引组和第二索引组均包括在减少第二服务器后该服务器组中剩余的各服务器的索引。
在实现时,负载均衡设备接收该减少指令,从地址列表获取存储第二服务器的地址的存储位置,根据该存储位置获取第二服务器的索引。根据该服务器组的虚拟地址,从索引列表中获取该服务器组的第二索引组,从该第二索引组中获取该服务器组中除第二服务器之外的其他服务器的索引,在索引列表中查询包括第二服务器的索引的记录,将查询的记录中保存的第二服务器的索引为替换为该服务器组中的其他服务器的索引。在替换后,第一索引组或第二索引组中的任意两个服务器的索引所占的比例相等,或者,该任意两个服务器的索引所占的比例相差的差值小于差值阈值。
其中,查询的记录中包括两个索引,如果该两个索引均为第二服务器的索引,则使用该服务器组中的同一个其他服务器的索引来替换该查询的记录中保存的该两个索引。
例如,参见图5,当从服务器组B中移走服务器6或服务器6无法继续提供服务时,技术人员向管理设备输入服务器6的地址6以及服务器组B的虚拟地址VIP2。管理设备向负载均衡设备发送减少指令,该减少指令包括服务器6的地址6和服务器组B的虚拟地址VIP2。负载均衡设备根据服务器6的地址6从上述表3所示的地址列表中,获取服务器6的索引为6。然后根据服务器组B的虚拟地址VIP2,从上述表5所示的索引列表中获取服务器组B的第二索引组,该第二索引组为(4、5、6、5、4、6),从第二索引组中获取服务器组B中除服务器6之外的其他服务器的索引4和5。从上述表4所述的索引列表中查询包括索引6的两条记录;查询出的第一条记录中包括两个索引6,将该两个索引6均替换为服务器组B的服务器4的索引4;查询出的第二条记录中也包括两个索引6,将该两个索引6均替换为服务器组B中的服务器5的索引5,得到如表7所示的索引列表。参见表7所示的索引列表,在服务器B对应的第一索引组和第二索引组中服务器4对应的索引4所占的比例和服务器5对应的索引5所占的比例均为1/2。
表7
在本申请实施例中,在该服务器组发生变化时,对负载均衡设备的地址列表进行变更,以将地址列表中保存的变化前该服务器组中的各服务器地址,更新为变化后该服务器组中的各服务器地址,且在负载均衡设备中只保存一份地址列表,从而减小了占用的存储空间。另外,还对负载均衡设备中的该服务器组对应的第二索引组进行变更,以将第二索引组中的索引更新为变化后该服务器组中的各服务器的索引。这样在负载均衡设备接收到发送给变化后的该服务器组的报文时,负载均衡设备可以基于变更后的索引列表和地址列表,向变化后的该服务器组中的服务器转发该报文。
本申请实施例提供了一种通信方法,该方法可以应用于上述图1或图2所示的网络架构。该通信方法的流程与图3所示的方法流程是两个并行的方法流程,如果负载均衡设备接收到报文,则开始执行该通信方法的流程,如果在某个服务器组中增减服务器时,开始执行图3所示的方法流程。对于该通信方法,参见图6,包括:
步骤301:负载均衡设备接收源端设备发送的报文,该报文包括虚拟地址和该报文所属数据流的标识信息,为了便于说明称该虚拟地址为目标虚拟地址,称该数据流为目标数据流,以及称目标虚拟地址对应的服务器组为目标服务器组。
该报文所属的目标数据流的标识信息可以是该报文的五元组信息或四元组信息等。
源端设备向目标服务器组发送目标数据流时,往往会在一段时间内向目标服务器组发送属于目标数据流的报文。目标数据流中的每个报文包括相同的四元组信息或五元组信息,以及目标数据流中的每个报文包括相同的虚拟地址,且该虚拟地址为目标服务器组的目标虚拟地址。
步骤302:负载均衡设备根据该标识信息,查询数据流表,如果查询出对应的服务器的索引,根据该服务器的索引,从该地址列表中获取服务器的地址,执行步骤305。
对于任一个发生变化的服务器组,数据流表可以用于保存第一数据流的标识信息与第一服务器的索引的对应关系,第一数据流可以是在该服务器组发生变化前已向该服务器组发送的数据流,第一服务器是该服务器组中的用于处理第一数据流的服务器。
所以在根据该标识信息从数据流表中查询出对应的服务器的索引时,表示目标服务器组发生变化。在目标服务器组发生变化前,终端就已向目标服务器组发送目标数据流的报文,且在目标服务器组发生变化前,查询的索引对应的服务器已处理目标数据流。因此,在本步骤中,根据查询的服务器的索引,从该地址列表中获取服务器的地址,这样可以保证在目标服务器组变化前后为目标数据流获取的服务器的地址相同,从而实现在目标服务器组变化前后将属于目标数据流的报文发送到同一服务器,保证目标数据流不被中断。
在本步骤中,目标服务器组发生变化是指在目标服务器组中增加服务器或在目标服务器组中减少服务器。在从目标服务器组中减少服务器的情况下,负载均衡设备感知到的减少服务器的时间早于技术人员实际从目标服务器组中减少服务器的时间。
在根据该标识信息从数据流表中没有查询出对应的服务器的索引时,目标服务器组可能发生变化,也可能没有发生变化。如果目标服务器组发生变化,目标数据流可能是在目标服务器组发生变化前就已存在的数据流,也可能是目标服务器组发生变化后新产生的数据流。
可选的,负载均衡设备还可以对数据流表实施老化机制,所谓老化机制是指对于数据流表中保存的任一数据流的标识信息,在没接收到该数据流的时长达到第一时长时,从数据流表中删除包括该数据流的标识信息的记录。
可选的,老化机制的实现方式有多种,在本步骤中列举了一种老化机制的实现方式,该实现方式为:对于数据流表中的任一个数据流,负载均衡设备还保存有该数据流的标识信息和该数据流的报文数目之间的对应关系。因此在本步骤中,如果查询出对应的服务器的索引,则在数据流的标识信息与报文数目的对应关系中增加目标数据流的标识信息对应的报文数目。负载均衡设备还可以周期性地减小数据流的标识信息与报文数目的对应关系中的每个数据流对应的报文数目,在某个数据流的报文数目减小为0时,从该数据流表中删除包括该某个数据流的标识信息的记录。
其中,在本步骤中列举了上述一种老化机制的实现方式,对于其他的实现方式在此不再一一列举。
步骤303:如果没有查询出对应的服务器的索引,负载均衡设备根据该标识信息,在目标虚拟地址对应的第一索引组中获取第一索引以及在目标虚拟地址对应的第二索引组中获取第二索引。
在本步骤中,负载均衡设备从索引列表中获取目标虚拟地址对应的第一索引组和第二索引组。然后,对该标识信息进行哈希运算,得到哈希值。根据第一索引组包括的索引总数目对该哈希值进行取模,得到偏移,根据该偏移从第一索引组中读取第一索引,以及从第二索引组中读取第二索引。
在该目标服务器组发生变化的情况下,该索引列表中的包括第一索引和第二索引的记录中可能保存有目标服务器组发生变化的变化时间。
在包括第一索引和第二索引的记录中保存有变化时间的情况下且在该变化时间与当前时间之间的时间差未超过第一时间阈值的情况下,开始执行如下步骤304的操作。
在包括第一索引和第二索引的记录中保存有变化时间且在该变化时间与当前时间之间的时间差超过第一时间阈值的情况下,或者,在包括第一索引和第二索引的记录中没有保存变化时间的情况下,该记录中保存的第一索引和第二索引相等,负载均衡设备根据第一索引或第二索引,直接从地址列表中获取服务器的地址,然后执行步骤305。
可选的,负载均衡设备还可以包括历史记录表,对于任一个服务器组,在该服务器组发生变化的情况下,历史记录表可以用于记录在发生变化前向该服务器组发送的数据流的标识信息。历史记录表中还保存有目标时间,对于最近一次发生变化的任一服务器组,目标时间是最近一次发生变化的该服务器组对应的变化时间。
可选的,对于任一个服务器组,当在该服务器组中增加或减少服务器时,负载均衡设备会接收到管理设备发送的增加指令或减少指令,此时负载均衡设备可以当前时间作为在该服务器组中增加或减少服务器的变化时间,并同时将历史记录表中保存的目标时间更新为该变化时间。
可选的,在包括第一索引和第二索引的记录中保存有变化时间且在该变化时间与当前时间之间的时间差超过第一时间阈值的情况下,或者,在包括第一索引和第二索引的记录中没有保存变化时间的情况下,在历史记录表中记录目标数据流的标识信息。实现过程可以包括如下两种方式:
在第一种方式中,获取历史记录表中保存的目标时间与当前时间之间的时间差,在该时间差超过第二时间阈值时,直接将目标数据流的标识信息保存在历史记录表中。
在第二种方式中,历史记录表可以包括n个位图以及每个位图对应的哈希算法,每个位图对应的哈希算法不同,每个位图包括m个比特位,m,n均为大于1的整数值,位图中的每个比特位的初始值可以均为第一比特值。
这样,在该历史记录表中记录目标数据流的标识信息的操作可以为:获取历史记录表中保存的目标时间与当前时间之间的时间差,在该时间差超过第二时间阈值时,对于任一个位图,使用该位图对应的哈希算法对该目标数据流的标识信息进行哈希运算,得到该位图对应的哈希值,根据m,对该位图对应的哈希值进行取模,得到比特位偏移,根据该比特位偏移,从该位图中查找出对应的比特位,将该比特位的值设置为第二比特值。对于其他每个位图,重复执行上述操作,以实现在历史记录表中记录该标识信息。
在第一种方式或第二种方式中,在该时间差超过第二时间阈值才在历史记录表中记录目标数据流的标识信息,这样可以避免将在目标服务器组中发生变化后新产生的数据流的标识信息记录在历史记录表中。
可选的,可以周期性地将该历史记录表中的每个比特位的值设置为第一比特征值。第一比特值可以为0,第二比特值可以为1;或者,第一比特值可以为1,第二比特值可以为0。
可选的,该周期的长度等于、大于或小于第一时间阈值。可选的,第一时间阈值可以等于、大于或小于第二时间阈值。
例如,假设该报文包括服务器组A的虚拟地址VIP1,根据虚拟地址VIP1,查询上述表4所示的索引列表,并从表4所示的索引列表中获取服务器组A的第一索引组(1、2、3、3、2、1)、以及服务器组A的第二索引组(1、2、7、3、2、1)。对该标识信息进行哈希运算,得到哈希值,假设该哈希值为8。根据第一索引组包括的索引数目6,对该哈希值8取模,得到偏移2,根据偏移2从第一索引组中获取第一索引为3,从第二索引组中获取第二索引为7。在表4所示的索引列表中包括第一索引3和第二索引7的记录中保存有服务组A的变化时间t1,获取当前时间与变化时间t1之间的时间差,且该时间差未超过第一时间阈值,执行如下步骤304的操作。
步骤304:负载均衡设备根据第一索引、第二索引和该地址列表,获取服务器的地址。
在本步骤中可以通过如下两种方式,获取服务器的地址。该两种方式分别为:
方式一,根据第一索引从地址列表中获取服务器的地址。
在方式一中,负载均衡设备不用保存历史记录表。
在方式一中,在第一索引与第二索引不同时,将目标数据流的标识信息和第一索引对应保存在数据流表。
在第一索引与第二索引不同时,该数据流可能是在目标服务器组发生变化前已存在的数据流,也可能是在目标服务器组发生变化后新出现的数据流。将目标数据流的标识信息和第一索引对应保存在数据流表后,这样再次接收到目标数据流的报文,就可以从该数据流表中获取到该服务器的地址,保证之后接收到目标数据流的报文均能被发送到该服务器,保证目标数据流不被中断。
例如,在步骤303中获取的第一索引3和第二索引7不同,则根据第一索引3,从表5所示的地址列表中获取服务器3的地址3。然后,将该标识信息和第一索引3对应保存到数据流表。
方式二,在第一索引和第二索引不同时,根据该标识信息和历史记录表确定在目标服务器组变化前是否已接收到目标数据流,如果确定出在目标服务器组变化前接收到目标数据流,根据第一索引从地址列表中获取服务器的地址。如果确定出在目标服务器组变化前没有接收到目标数据流时,根据第二索引从地址列表中获取服务器的地址。
可选的,在该历史记录表保存数据流的标识信息的情况下,判断历史记录表中是否保存有目标数据流的标识信息,如果保存,确定出在目标服务器组变化前接收到目标数据流,如果没有保存,则确定出在目标服务器组变化前没有接收到目标数据流。或者,
在历史记录表包括n个位图的情况下,对于任一个位图,使用该位图对应的哈希算法对该标识信息进行哈希运算,得到该位图对应的哈希值,根据m,对该位图对应的哈希值进行取模,得到比特位偏移,根据该比特位偏移,从该位图查找出对应的比特位。对于其他每个位图,按上述方式分别从其他每个位图中查找出比特位,如此查找出n个比特位。如果查找的n个比特位的值全为第二比特值,确定出在目标服务器组变化前接收到目标数据流,如果该n个比特位的值不全为第一比特值,确定出在目标服务器组变化前没有接收到目标数据流。
可选的,在第一索引和第二索引相同时,根据第一索引或第二索引从地址列表中获取服务器的地址。
步骤305:负载均衡设备根据该服务器地址,向该服务器发送该报文。
可选的,可以在负载均衡设备中设置专用芯片,负载均衡设备通过该专用芯片执行该通信方法。在通过专用芯片执行该通信方法时,可以提高发送报文的吞吐率、降低发送报文时延以及降低成本。
在本申请实施例中,接收报文,该报文包括目标服务器的目标虚拟地址和目标数据流的标识信息,根据该标识信息,查询数据流表,如果查询出服务器的索引,则根据该服务器的索引获取服务器的地址。由于数据流表用于保存向变化前的服务器组发送的数据流的标识信息和用于处理该数据流的服务器的索引,这样可以保证在目标服务器组变化前后为目标数据流获取的服务器的地址是同一服务器的地址,保证目标数据流不被中断。如果没有查询出服务器的索引,根据该标识信息在目标虚拟地址对应的第一索引组中获取第一索引以及在目标虚拟地址对应的第二索引组中获取第二索引,其中在目标服务器组发生变化的情况下第一索引组包括变化前的目标服务器组中的各服务器的索引,第二索引组包括变化后的目标服务器组中的各服务器的索引;在第一索引和第二索引不同时,根据历史记录表确定目标数据流是否为在目标服务器组变化前已存在的数据流,如果是,根据第一索引从地址列表中获取服务器的地址,可以保证在目标服务器组变化前后为目标数据流获取的服务器的地址是同一服务器的地址,保证目标数据流不被中断。所以本申请实施例的方法可以应用于不断变化的服务器组,可以处理向该服务器组发送的报文。另外,在本申请实施例中只保存一份地址列表,这样也节省了内存空间。
参见图7,本申请实施例提供了一种通信装置400,所述装置400可部署在上述实施例所述的负载均衡设备中,包括:
接收单元401,用于接收报文,该报文包括虚拟地址和该报文所属数据流的标识信息;
处理单元402,用于根据该标识信息,在该虚拟地址对应的第一索引组中获取第一索引以及在该虚拟地址对应的第二索引组中获取第二索引,其中在该虚拟地址对应的服务器组已发生变化的情况下第一索引组包括变化前的服务器组中的各服务器的索引,第二索引组包括变化后的服务器组中的各服务器的索引,服务器的索引用于标识服务器的地址在地址列表中的存储位置;
处理单元402,还用于根据第一索引、第二索引和地址列表,获取服务器的地址;
发送单元403,用于向获取的地址对应的服务器发送该报文。
可选的,处理单元402获取第一索引和第二索引的详细实现过程,可以参见图6所示实施例的步骤303中的相关内容,以及处理单元402获取服务器的地址的详细实现过程,可以参见图6所示实施例的步骤304中的相关内容,在此不做具体说明。
可选的,处理单元402,用于:
在第一索引和第二索引不同时,根据该标识信息和历史记录表确定在服务器组变化前是否已接收该数据流,历史记录表用于记录向变化前的服务器组发送的数据流的标识信息;
在确定出在服务器组变化前接收到该数据流,根据第一索引从地址列表中获取服务器的地址。
可选的,处理单元402确定在服务器组变化前是否已接收该数据流的详细实现过程,可以参见图6所示实施例的步骤304中的相关内容,在此不做具体说明。
可选的,处理单元402,还用于:
在确定出在服务器组变化前接收单元401没有接收到该数据流时,根据第二索引从地址列表中获取服务器的地址。
可选的,处理单元402,用于:
根据该标识信息,查询数据流表,数据流表用于保存第一数据流的标识信息与第一服务器的索引的对应关系,第一数据流是向变化前的服务器组发送的数据流,第一服务器是用于处理第一数据流的服务器;
如果没有查询出对应的服务器的索引,则根据该标识信息,在该虚拟地址对应的第一索引组中获取第一索引以及在该虚拟地址对应的第二索引组中获取第二索引。
可选的,处理单元402,还用于:
如果查询出对应的服务器的索引,根据该服务器的索引,从地址列表中获取服务器的地址;根据服务器的地址向服务器发送该报文。
可选的,处理单元402,还用于:
将该标识信息和第一索引之间的对应关系保存在数据流表中。
可选的,处理单元402,还用于:
在接收单元401没接收到该数据流的时长达到第一时长时,从数据流表中删除包括该标识信息的记录。
可选的,处理单元402删除包括该标识信息的记录的详细实现过程,可以参见图6所示实施例中的步骤302中的相关内容,在此不再详细说明。
可选的,处理单元401,还用于:
在距离第一时间的时间差超过时间阈值时,根据第二索引组更新第一索引组,更新后的第一索引组包括变化后的服务器组中的各服务器的索引,第一时间是服务器组发生变化的时间。
可选的,处理单元402更新第二索引组的详细实现过程,可以参见图3所示实施例中的步骤202和步骤204中的相关内容,在此不再详细说明。
在本申请实施例中,接收单元接收报文,该报文包括服务器的虚拟地址和数据流的标识信息,处理单元根据该标识信息,查询数据流表,如果查询出服务器的索引,则根据该服务器的索引获取服务器的地址。由于数据流表用于保存向变化前的服务器组发送的数据流的标识信息和用于处理该数据流的服务器的索引,这样可以保证在服务器组变化前后处理单元为该数据流获取的服务器的地址是同一服务器的地址,保证数据流不被中断。如果没有查询出服务器的索引,根据该标识信息在该虚拟地址对应的第一索引组中获取第一索引以及在该虚拟地址对应的第二索引组中获取第二索引,其中在该服务器组发生变化的情况下第一索引组包括变化前的该服务器组中的各服务器的索引,第二索引组包括变化后的该服务器组中的各服务器的索引;在第一索引和第二索引不同时,处理单元根据历史记录表确定该数据流是否为在服务器组变化前已存在的数据流,如果是,根据第一索引从地址列表中获取服务器的地址,可以保证在该服务器组变化前后处理单元为该数据流获取的服务器的地址是同一服务器的地址,保证数据流不被中断。所以本申请实施例的通信装置可以应用于不断变化的服务器组,可以处理向该服务器组发送的报文。
参见图8,图8所示为本申请实施例提供的一种通信装置500示意图。该装置500包括至少一个处理器501,总线系统502,存储器503以及至少一个收发器504。
该装置500是一种硬件结构的装置,可以用于实现图7所述的装置400中的功能模块。例如,本领域技术人员可以想到图7所示的装置400中的处理单元402可以通过该至少一个处理器501调用存储器503中的代码来实现,图7所示的装置400中的接收单元401和发送单元403可以通过该收发器504来实现。
可选的,该装置500还可用于实现上述任一实施例中采集分析设备的功能。
可选的,上述处理器501可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
上述总线系统502可包括一通路,在上述组件之间传送信息。
上述收发器504,用于与其他设备或通信网络通信。
上述存储器503可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器503用于存储执行本申请方案的应用程序代码,并由处理器501来控制执行。处理器501用于执行存储器503中存储的应用程序代码,从而实现本专利方法中的功能。
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,例如图8中的CPU0和CPU1。
在具体实现中,作为一种实施例,该装置500可以包括多个处理器,例如图8中的处理器501和处理器507。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,该装置500还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。例如,输出设备505可以是液晶显示器(liquid crystal display,LCD)等。输入设备506和处理器501通信,可以以多种方式接受用户的输入。例如,输入设备506可以是触摸屏设备或传感设备等。
以上所述仅为本申请一个实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (18)
1.一种通信方法,其特征在于,所述方法包括:
接收报文,所述报文包括虚拟地址和所述报文所属数据流的标识信息;
根据所述标识信息,在所述虚拟地址对应的第一索引组中获取第一索引以及在所述虚拟地址对应的第二索引组中获取第二索引,其中在所述虚拟地址对应的服务器组已发生变化的情况下所述第一索引组包括变化前的所述服务器组中的各服务器的索引,所述第二索引组包括变化后的所述服务器组中的各服务器的索引,服务器的索引用于标识所述服务器的地址在地址列表中的存储位置,已发生变化的所述服务器组是基于接收的指令确定的,所述指令包括指示向所述服务器组添加服务器的添加指令或指示从所述服务器组减少服务器的减少指令;
根据所述第一索引、所述第二索引和所述地址列表,获取服务器的地址;
向所述获取的地址对应的服务器发送所述报文。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一索引、所述第二索引和所述地址列表,获取服务器的地址,包括:
在所述第一索引和所述第二索引不同时,根据所述标识信息和历史记录表确定在所述服务器组变化前是否已接收所述数据流,所述历史记录表用于记录向变化前的所述服务器组发送的数据流的标识信息;
在确定出在所述服务器组变化前接收到所述数据流,根据所述第一索引从所述地址列表中获取服务器的地址。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在确定出在所述服务器组变化前没有接收到所述数据流时,根据所述第二索引从所述地址列表中获取服务器的地址。
4.如权利要求1至3任一项所述的方法,其特征在于,所述根据所述标识信息,在所述虚拟地址对应的第一索引组中获取第一索引以及在所述虚拟地址对应的第二索引组中获取第二索引,包括:
根据所述标识信息,查询数据流表,所述数据流表用于保存第一数据流的标识信息与第一服务器的索引的对应关系,所述第一数据流是向变化前的所述服务器组发送的数据流,所述第一服务器是用于处理所述第一数据流的服务器;
如果没有查询出对应的服务器的索引,则根据所述标识信息,在所述虚拟地址对应的第一索引组中获取第一索引以及在所述虚拟地址对应的第二索引组中获取第二索引。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
如果查询出对应的服务器的索引,根据所述服务器的索引,从所述地址列表中获取所述服务器的地址;根据所述服务器的地址向所述服务器发送所述报文。
6.如权利要求4所述的方法,其特征在于,所述根据所述第一索引从所述地址列表中获取服务器的地址之后,还包括:
将所述标识信息和所述第一索引之间的对应关系保存在所述数据流表中。
7.如权利要求4所述的方法,其特征在于,所述方法还包括:
在没接收到所述数据流的时长达到第一时长时,从所述数据流表中删除包括所述标识信息的记录。
8.如权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
在距离第一时间的时间差超过时间阈值时,根据所述第二索引组更新所述第一索引组,更新后的所述第一索引组包括变化后的所述服务器组中的各服务器的索引,所述第一时间是所述服务器组发生变化的时间。
9.一种通信装置,其特征在于,所述装置包括:
接收单元,用于接收报文,所述报文包括虚拟地址和所述报文所属数据流的标识信息;
处理单元,用于根据所述标识信息,在所述虚拟地址对应的第一索引组中获取第一索引以及在所述虚拟地址对应的第二索引组中获取第二索引,其中在所述虚拟地址对应的服务器组已发生变化的情况下所述第一索引组包括变化前的所述服务器组中的各服务器的索引,所述第二索引组包括变化后的所述服务器组中的各服务器的索引,服务器的索引用于标识所述服务器的地址在地址列表中的存储位置,已发生变化的所述服务器组是基于接收的指令确定的,所述指令包括指示向所述服务器组添加服务器的添加指令或指示从所述服务器组减少服务器的减少指令;
所述处理单元,还用于根据所述第一索引、所述第二索引和所述地址列表,获取服务器的地址;
发送单元,用于向所述获取的地址对应的服务器发送所述报文。
10.如权利要求9所述的装置,其特征在于,所述处理单元,用于:
在所述第一索引和所述第二索引不同时,根据所述标识信息和历史记录表确定在所述服务器组变化前是否已接收所述数据流,所述历史记录表用于记录向变化前的所述服务器组发送的数据流的标识信息;
在确定出在所述服务器组变化前接收到所述数据流,根据所述第一索引从所述地址列表中获取服务器的地址。
11.如权利要求10所述的装置,其特征在于,所述处理单元,还用于:
在确定出在所述服务器组变化前所述接收单元没有接收到所述数据流时,根据所述第二索引从所述地址列表中获取服务器的地址。
12.如权利要求9至11任一项所述的装置,其特征在于,所述处理单元,用于:
根据所述标识信息,查询数据流表,所述数据流表用于保存第一数据流的标识信息与第一服务器的索引的对应关系,所述第一数据流是向变化前的所述服务器组发送的数据流,所述第一服务器是用于处理所述第一数据流的服务器;
如果没有查询出对应的服务器的索引,则根据所述标识信息,在所述虚拟地址对应的第一索引组中获取第一索引以及在所述虚拟地址对应的第二索引组中获取第二索引。
13.如权利要求12所述的装置,其特征在于,所述处理单元,还用于:
如果查询出对应的服务器的索引,根据所述服务器的索引,从所述地址列表中获取所述服务器的地址;根据所述服务器的地址向所述服务器发送所述报文。
14.如权利要求12所述的装置,其特征在于,所述处理单元,还用于:
将所述标识信息和所述第一索引之间的对应关系保存在所述数据流表中。
15.如权利要求12所述的装置,其特征在于,所述处理单元,还用于:
在所述接收单元没接收到所述数据流的时长达到第一时长时,从所述数据流表中删除包括所述标识信息的记录。
16.如权利要求9至11任一项所述的装置,其特征在于,所述处理单元,还用于:
在距离第一时间的时间差超过时间阈值时,根据所述第二索引组更新所述第一索引组,更新后的所述第一索引组包括变化后的所述服务器组中的各服务器的索引,所述第一时间是所述服务器组发生变化的时间。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令被处理器运行时,使得所述处理器执行如权利要求1-8任一项所述的方法。
18.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被计算机执行时,实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910996355.3A CN112688985B (zh) | 2019-10-18 | 2019-10-18 | 通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910996355.3A CN112688985B (zh) | 2019-10-18 | 2019-10-18 | 通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112688985A CN112688985A (zh) | 2021-04-20 |
CN112688985B true CN112688985B (zh) | 2022-07-12 |
Family
ID=75445200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910996355.3A Active CN112688985B (zh) | 2019-10-18 | 2019-10-18 | 通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112688985B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105900407A (zh) * | 2014-01-08 | 2016-08-24 | 微软技术许可有限责任公司 | 在虚拟网络之间路由消息 |
CN110198345A (zh) * | 2019-05-06 | 2019-09-03 | 视联动力信息技术股份有限公司 | 一种数据请求方法、系统及装置和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10157390B2 (en) * | 2013-03-15 | 2018-12-18 | Commerce Signals, Inc. | Methods and systems for a virtual marketplace or exchange for distributed signals |
-
2019
- 2019-10-18 CN CN201910996355.3A patent/CN112688985B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105900407A (zh) * | 2014-01-08 | 2016-08-24 | 微软技术许可有限责任公司 | 在虚拟网络之间路由消息 |
CN110198345A (zh) * | 2019-05-06 | 2019-09-03 | 视联动力信息技术股份有限公司 | 一种数据请求方法、系统及装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112688985A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166570B (zh) | 业务会话管理方法、装置、电子设备 | |
CN108259347B (zh) | 一种报文传输方法和装置 | |
JP5157472B2 (ja) | 帯域制御機能を有する負荷分散装置およびその設定方法 | |
CN112311674B (zh) | 报文发送方法、装置及存储介质 | |
CN104468401A (zh) | 一种报文处理方法和装置 | |
CN108390954B (zh) | 一种报文传输方法和设备 | |
CN114024915B (zh) | 一种流量迁移方法、装置、系统、电子设备及存储介质 | |
CN112787922B (zh) | 一种报文处理的方法、网络节点和系统 | |
CN108566344B (zh) | 一种报文处理方法和装置 | |
CN110609746A (zh) | 管理网络系统的方法、设备和计算机程序产品 | |
US6973503B2 (en) | Preventing at least in part control processors from being overloaded | |
JP2019016042A (ja) | データ取得プログラム、装置、及び方法 | |
US20050195834A1 (en) | Load distribution system | |
CN109067744B (zh) | Acl规则处理方法、装置及通信设备 | |
EP2938028B1 (en) | Communication node, control device, method for managing control information entries, and program | |
US20150026333A1 (en) | Network system, network management apparatus and application management apparatus | |
KR20150054758A (ko) | 1차 접속 테이블 및 2차 접속 테이블의 사용 | |
CN112688985B (zh) | 通信方法及装置 | |
CN113595919A (zh) | 一种负载分担的方法及装置 | |
CN114827159B (zh) | 网络请求路径优化方法、装置、设备和存储介质 | |
CN115883316A (zh) | 生成基于应用的代理自动配置 | |
CN113132273B (zh) | 一种数据转发方法及装置 | |
CN108965261B (zh) | 信息处理方法及装置、存储介质、电子装置 | |
CN108989239B (zh) | 过载保护方法及装置、控制器及存储介质 | |
CN107113244B (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 |