具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是本发明配置信息的同步方法所适用的网络架构图,如图1所示,该网络架构图中包括:客户端11、数据中心12、数据中心13以及链路16,其中,数据中心12包括交换机14、广域网负载均衡器15、服务器集群19、服务器集群20和服务器集群21等设备;数据中心13包括广域网负载均衡器17、交换机18、服务器集群22、服务器集群23和服务器集群24等设备。广域网负载均衡器15可视为本发明实施例中的第一负载均衡器,广域网负载均衡器17可视为本发明实施例中的第二负载均衡器。本领域技术人员可以理解的是,广域网负载均衡器15与交换机14以及广域网负载均衡器17与交换机18采用旁连的方式进行连接仅为示例性说明,其并不能形成对本发明的限制,广域网负载均衡器15与交换机14以及广域网负载均衡器17与交换机18的连接方式也可以为直连方式;数据中心12和数据中心13所包括的各个服务器集群可以为具有不同服务功能的服务器集群,例如:WEB服务器集群、FTP服务器集群和数据库服务器集群等。链路16为广域网负载均衡器15与广域网负载均衡器17之间的一条物理链路,广域网负载均衡器15与广域网负载均衡器17之间通过链路16中存在的至少一条通道进行配置信息的同步和负载信息的传输,其中,至少一条通道通过采用TCP协议建立连接。本发明实施例,可以解决广域网负载均衡器15与广域网负载均衡器17无法正常进行配置信息的同步,提高广域网负载均衡器15在进行配置信息同步时的可靠性和稳定性。本领域技术人员可以理解的是,广域网负载均衡器17的配置信息的同步和负载信息的传输的方式与广域网负载均衡器15的配置信息的同步和负载信息的传输的方式相同,因此不再赘述。
图2是本发明配置信息的同步方法中的第一负载均衡器和第二负载均衡器所形成系统的结构示意图,在此结合图1进行示例性说明,如图2所示,第一负载均衡器21可视为本发明实施例中的广域网负载均衡器15,第二负载均衡器22可视为本发明实施例中的广域网负载均衡器17。第一负载均衡器21包括第一配置单元211以及第一业务单元212;第二负载均衡器22包括第二配置单元221以及第二业务单元222。第一业务单元212包括至少一个第一业务子单元,例如,第一业务单元212包括第一业务子单元2121、第一业务子单元2122;第二业务单元222包括至少一个第二业务子单元,例如,第二业务单元222包括第二业务子单元2221、第二业务子单元2222。
其中,图1所示的链路16可以包括至少一条通道,该至少一条通道包括如图2所示的第一通道23、第二通道24以及第三通道,第三通道可包括至少一条子通道,图2以第三通道包括子通道25和子通道26为例进行示例性说明,第二业务子单元2221、第二业务子单元2222分别通过子通道25和子通道26与第一配置单元211建立TCP连接。其中,第一通道23用于第一配置单元211和第二配置单元221之间进行配置信息的同步;第二通道24用于第一配置单元211和第二配置单元221之间进行心跳报文的传输。第三通道包括的子通道25和子通道26用于第二负载信息的传输。本领域技术人员可以理解的是,第三通道包括子通道25和子通道26仅为示例性说明,第三通道包括的子通道的数量并不能形成对本发明的限制。此外,第一负载均衡器21还包括内部通道(图2中未示出),内部通道可以用于第一配置单元211与第一业务单元212之间的配置信息表、负载信息表和第一负载信息的传输,此处内部通道的建立过程为现有技术,故不作详述。
通过本发明实施例,第一配置单元211通过独立的第一通道23与第二配置单元221进行配置信息的同步,提高了第一负载均衡器21在进行配置信息同步时的可靠性和稳定性;且当网络压力增加时,第一业务单元212可以扩展第一业务子单元,同时第二业务单元222可以扩展第二业务子单元,从而提高了第一负载均衡器21和第二负载均衡器22的可扩展性。本领域技术人员可以理解的是,第二负载均衡器22对配置信息的同步和负载信息的传输的方式与第一负载均衡器21对配置信息的同步和负载信息的传输的方式相同,且产生的有益效果也相同,因此不再详述。
为对本发明进行进一步说明,提供下列实施例:
图3是本发明配置信息的同步方法的一个实施例流程图,本发明实施例应用在上述图2所示的第一负载均衡器21上,本发明实施例结合图1、图2进行示例性说明,如图3所示,包括步骤如下:
步骤301:通过第一配置单元建立与通信对端的第二负载均衡器中的第二配置单元之间的第一通道的连接。
步骤302:通过第一配置单元接收经由第一通道传输的来自第二配置单元中记录的第一配置信息。
步骤303:通过第一配置单元根据第一配置信息和第二配置信息建立配置信息表,第二配置信息为第一配置单元中记录的配置信息。
步骤304:通过第一配置单元向第一业务单元发送配置信息表。
在步骤301中,如图2所示,第一配置单元211和第二配置单元221通过第一通道23进行配置信息的同步。第一通道23通过TCP协议建立第一配置单元211与第二配置单元221之间的连接,第一通道23位于第一负载均衡器21与第二负载均衡器22之间的链路16中。
在步骤302中,在一实施例中,第一配置信息为第二配置单元221中记录的客户端11对第二负载均衡器22设置的配置信息,第一配置信息可以包括针对DNS报文分配的第一组服务器的IP地址和端口、负载分担算法、触发周期等。
在步骤303中,在一实施例中,第二配置信息为第一配置单元211中记录的客户端11对第一负载均衡器21设置的配置信息,第二配置信息可以包括针对DNS报文分配的第二组服务器的IP地址和端口、负载分担算法、触发周期等。配置信息表为第一配置单元211根据第一配置信息与第二配置信息建立的配置信息表,配置信息表记录在列表中,列表可以例如为链表、数组或队列等数据结构。
在步骤304中,在一实施例中,第一业务单元212用于业务处理以及服务器负载信息的记录,业务处理包括DNA报文处理、流量分配等,第一业务单元212可包括至少一个第一业务子单元,其中,至少一个第一业务子单元可具有相同的物理结构及业务功能。第一配置单元211向第一业务单元212中的至少一个第一业务子单元同时发送配置信息表。例如,第一配置单元211建立配置信息表后,将配置信息表同时发送到第一业务单元212中的第一业务子单元2121和第一业务子单元2122。
本发明实施例通过上述步骤301-步骤304,可以实现第一负载均衡器与第二负载均衡器之间配置信息的同步。由于第一配置单元通过独立的第一通道与第二配置单元进行配置信息的同步,可以降低负载信息或心跳报文等信息传输时对配置信息同步产生的干扰,因此可提高第一负载均衡器进行配置信息同步时的可靠性和稳定性。
本领域技术人员可以理解的是,通过第二配置单元进行配置信息的同步方法与通过第一配置单元进行配置信息的同步方法相同,在此不作详述。
图4是本发明配置信息的同步方法的另一个实施例流程图,本发明实施例结合图2进行示例性说明,如图4所示,包括如下步骤:
步骤401:建立第一负载均衡器中第一配置单元与第二负载均衡器中第二配置单元的第一通道的连接。
步骤402:建立第一负载均衡器中第一配置单元与第二负载均衡器中第二配置单元的第二通道的连接。
步骤403:第一配置单元确定触发周期并记录时间点。
步骤404:第一配置单元检测时间点是否到达触发周期。
步骤405:当时间点到达触发周期时,第一配置单元接收第一配置信息。
步骤406:第一配置单元根据第一配置信息和第二配置信息建立配置信息表。
步骤407:第一配置单元向第一业务单元发送配置信息表。
在步骤401中,如图2所示,第一负载均衡器21中的第一配置单元211通过TCP协议与第二负载均衡器22中的第二配置单元221建立第一通道23的连接,第一通道23用于配置信息的同步。
在步骤402中,在一实施例中,第一负载均衡器21中的第一配置单元211通过TCP协议与第二负载均衡器22中的第二配置单元221建立第二通道24的连接,第二通道24用于心跳报文的传输,第二通道24还对应有一条或者多条备用通道,当第一通道23或第二通道24出现故障时,可启动备用通道,通过备用通道进行配置信息的同步,从而提高系统的容灾性能,确保了通道异常时数据中心12与数据中心13之间的无缝切换;本领域技术人员可以理解的是,第二通道24也可以作为备用通道。
本领域技术人员可以理解的是,步骤401和步骤402并无时序上的先后关系,也可以先执行步骤402再执行步骤401,还可以同时执行步骤402和步骤401。
在步骤403中,在一实施例中,第一配置单元211根据客户端11对第一负载均衡器21设置的第二配置信息,确定第二配置信息包含的触发周期并记录时间点。例如,第一配置单元211根据第二配置信息,确定触发周期为3秒,并记录时间点为11:08:00。
在步骤404中,在一实施例中,第一配置单元211检测时间点是否到达触发周期。例如,第一配置单元211检测时间点为11:08:30,到达触发周期3秒。
在步骤405中,在一实施例中,当时间点到达触发周期时,第一配置单元211接收第一配置信息,例如,步骤404中,第一配置单元211检测时间点为11:08:30,到达触发周期3秒,第一配置单元211接收第一配置信息。
在步骤406,在一实施例中,参考图3所示的步骤302和步骤303,第一配置单元211根据第一配置信息和第二配置信息建立配置信息表,例如,配置信息表可以包括第一配置单元211根据第一配置信息中记录的第一组服务器的IP地址和端口以及第二配置信息中记录的第二组服务器的IP地址和端口建立的服务器列表,其中,第一组服务器与第二组服务器为客户端11分别对第二负载均衡器22和第一负载均衡器21针对DNS报文分配的服务器,且第一组服务器与第二组服务器为具有相同功能的服务器。本发明实施例以服务器集群19和服务器集群22中的服务器同为数据库服务器进行示例性说明,例如:第一配置信息记录客户端11对第二配置单元221从数据中心13的服务器集群22中分配的第一组服务器的IP地址和端口,第一组服务器包含10台数据库服务器;第二配置信息记录客户端11对第一配置单元211从数据中心12的服务器集群19中分配的第二组服务器的IP地址和端口,第二组服务器包含10台数据库服务器,第一配置单元211根据第一组服务器的IP地址和端口和第二组服务器的IP地址和端口建立共20台数据库服务器的IP地址和端口的服务器列表,并将该服务器列表记录在配置信息表中。
在步骤407,在一实施例中,第一配置单元211向第一业务单元212发送配置信息表,第一业务单元212根据配置信息表实现第一负载均衡器21对来自客户端11的DNS报文负载均衡。如图2所示,以第一业务单元212包括第一业务子单元2121和第一业务子单元2122两个子单元为例,第一配置单元211向第一业务单元212中的第一业务子单元2121、第一业务子单元2122发送步骤406建立的配置信息表,当第一负载均衡器21接收到来自客户端11的DNS报文时,第一配置单元211基于目的IP或源IP的算法将DNS报文分配到第一业务单元212中的第一业务子单元2121,以使第一业务子单元2121根据配置信息表记录的20台数据库服务器的IP地址和端口,基于轮询的算法对DNS报文在该20台数据库服务器中进行分配。
本发明实施例中,第一负载均衡器21与第二负载均衡器22之间通过建立第一通道23和第二通道24的连接,使得配置信息可以通过第一通道23进行可靠稳定的配置信息的同步;通过第二通道24实时监控第二负载均衡器22的状态,提高数据中心12和数据中心13系统的容灾性能。
图5是本发明配置信息的同步方法的另一个实施例流程图,本发明实施例结合图2进行示例性说明,如图5所示,包括如下步骤:
步骤501:建立第一负载均衡器中第一配置单元与第二负载均衡器中第二业务单元的第三通道的连接。
步骤502:基于配置信息表中记录的服务器列表,接收来自第一业务单元的第一负载信息并通过第三通道接收第二负载信息,第一负载信息为第一业务单元记录的与服务器列表中记录的服务器相匹配的服务器的负载信息,第二负载信息为第二业务单元记录的与服务器列表中记录的服务器相匹配的服务器的负载信息。
步骤503:第一配置单元将第一负载信息和第二负载信息建立负载信息表。
在步骤501中,在一实施例中,第一配置单元211与第二业务单元222建立第三通道的连接。第三通道包括至少一条子通道,如图2所示,以第三通道包括子通道25和子通道26为例进行示例性说明。第二业务单元222每扩展一个第二业务子单元,均与第一配置单元211建立一条子通道。例如,第二业务单元222扩展第二业务子单元2223(图中未示出)时,第二业务子单元2223与第一配置单元211建立子通道27(图中未示出),具体的建立过程可以参见现有技术的相关描述,在此不进行详述。
本领域技术人员可以理解的是,步骤501与图4所示的步骤401和步骤402并无时序上的先后关系。
在步骤502中,参考图4步骤406,第一配置单元211根据配置信息表中的服务器列表,通过第一负载均衡器21的内部通道接收第一业务单元212中的至少一个第一业务子单元记录的第一负载信息,同时第一配置单元211根据配置信息表中的服务器列表,通过第三通道接收第二业务单元222中至少一个第二业务子单元记录的第二负载信息。第一负载信息为第一业务单元211在服务器列表所记录的服务器中查找与第一业务单元中记录的服务器匹配成功的服务器的负载信息。第二负载信息为第二业务单元222在服务器列表所记录的服务器中查找与第二业务单元中记录的服务器匹配成功的服务器的负载信息。第一负载信息和第二负载信息可以包括服务器连接数、流量状态、会话保持等。结合步骤406,例如:第一业务单元212记录数据中心12的服务器集群19的服务器负载信息;第二业务单元222记录数据中心13的服务器集群22的服务器负载信息;第一配置单元211根据配置信息表记录的20台数据库服务器的IP地址和端口,在第一业务单元212中记录的服务器集群19中查找到10台数据服务器的IP地址和端口与之匹配成功,其中10台数据服务器即第一组服务器,第一配置单元211接收第一业务单元212记录的第一组服务器的第一负载信息;同时第一配置单元211根据配置信息表记录的20台数据库服务器的IP地址和端口,在第二业务单元222中记录的服务器集群22中查找到10台数据服务器的IP地址和端口与之匹配成功,其中10台数据服务器即第二组服务器,第一配置单元211接收第二业务单元222记录的第二组服务器的第二负载信息。此外,第一配置单元211可以在生成配置信息表时自动触发接收第一负载信息以及第二负载信息。
在步骤503中,在一实施例中,第一配置单元211根据第一负载信息和第二负载信息建立负载信息表。客户端11可以通过获取负载信息表掌握第一负载均衡器21和第二负载均衡器22的负载情况。当配置信息中设定负载均衡算法为最小链接数算法时,第一配置单元211可以通过向第一业务单元212下发负载信息表,实现对DNS报文的负载分担。例如,第一配置单元211将负载信息表下发到第一业务单元212中的第一业务子单元2121和第一业务子单元2122,当第一业务子单元2121接收到第一配置单元211基于源IP和目的IP分配的DNS报文时,第一业务子单元2121根据负载信息表基于最小链接数算法对DNS报文进行负载分担。
本发明实施例中,第一配置单元211与第二业务单元222建立第三通道的连接,当网络压力增加时,第一业务单元212可以扩展第一业务子单元,第一配置单元211通过第一负载均衡器21的内部通道与该扩展的第一业务子单元建立连接,同时第二业务单元222可以扩展第二子单元,并在第三通道中建立该扩展第二子单元与第一配置单元211之间的新的子通道的连接,提高了第一负载均衡器21和第二负载均衡器22的扩展性;第一配置单元211根据配置信息表,接收第一负载信息和第二负载信息并建立负载信息表,使客户端11可以直接通过获取负载信息表,对第一负载均衡器21和第二负载均衡器22的负载情况进行监控,便于统一管理。
本领域技术人员可以理解的是,上述图2所示的第二负载均衡器22同样可以执行上述方法流程,产生与上述相同的有益技术效果,此处不再赘述。
对应于上述配置信息的同步方法,本发明还提出了图6所示的广域网负载均衡器的硬件结构图。请参考图6,在硬件层面,该广域网负载均衡器包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成配置信息的同步装置。当然,除了软件实现方式之外,本发明并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图7是本发明提供的一个配置信息的同步的装置的实施例框图,如图7所示,该配置信息的同步装置可以包括:第一通道建立模块、配置信息接收模块、配置信息表建立模块、配置信息表发送模块,其中:
第一通道建立模块71,用于建立与通信对端的第二负载均衡器中的第二配置单元之间的第一通道的连接;
配置信息接收模块72,用于接收经由所述第一通道建立模块71中建立的所述第一通道传输的来自所述第二配置单元中记录的第一配置信息;
配置信息表建立模块73,用于根据所述配置信息接收模块72中接收的所述第一配置信息以及所述第一配置单元中记录的第二配置信息建立配置信息表;
配置信息表发送模块74,用于向所述第一业务单元发送所述配置信息表建立模块73中建立的所述配置信息表。
图8是本发明提供的另一个配置信息的同步的装置的实施例框图,如图8所示,在上述图7所示实施例的基础上,配置信息接收模块72可包括:
触发周期确定子模块721,用于确定触发周期并记录时间点;
触发周期检测子模块722,用于检测所述触发周期确定子模块721中记录的所述时间点是否到达所述触发周期确定子模块721中确定的所述触发周期;
配置信息接收子模块723,用于当所述触发周期检测子模块722中检测到所述时间点达到所述触发周期时,接收经由所述第一通道建立模块71中建立的所述第一通道传输的来自所述第二配置单元中记录的第一配置信息。
在一实施例中,配置信息的同步装置还包括:
第二通道建立模块75,用于建立与所述第二配置单元之间的第二通道的连接;
心跳报文接收模块76,用于通过所述第二通道建立模块75中建立的所述第二通道接收所述第二配置单元发送的心跳报文,所述第一配置单元通过所述心跳报文监测所述第二负载均衡器是否处于正常的连接状态。
在一实施例中,配置信息的同步装置还包括:
第三通道建立模块77,用于建立与所述第二负载均衡器中的第二业务单元之间的第三通道的连接;
负载信息接收模块78,用于基于所述配置信息表建立模块73建立的所述配置信息表中记录的服务器列表,接收来自所述第一业务单元的第一负载信息并通过所述第三通道建立模块77建立的所述第三通道接收第二负载信息,所述第一负载信息为所述第一业务单元记录的与所述服务器列表中记录的服务器相匹配的服务器的负载信息,所述第二负载信息为所述第二业务单元记录的与所述服务器列表中记录的服务器相匹配的服务器的负载信息;
负载信息表建立模块79,用于将所述负载信息接收模块78接收的所述第一负载信息和所述第二负载信息建立负载信息表。
在一实施例中,所述第一业务单元包括至少一个第一业务子单元;
所述配置信息表发送模块74,还用于向所述至少一个第一业务子单元发送所述配置信息表建立模块73建立的所述配置信息表。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,第一负载均衡器的第一配置单元通过独立的第一通道与第二负载均衡器的第二配置单元之间进行配置信息的同步,从而降低负载信息或心跳报文等信息传输时对配置信息同步产生的干扰,因此可提高第一负载均衡器进行配置信息同步时的可靠性和稳定性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。