发明内容
有鉴于此,本发明的第一目的在于提供一种实现负载均衡的方法,本发明的第二目的在于提供一种实现负载均衡的系统,本发明的第三目的在于提供一种负载均衡设备,以便于实现由一个特定的服务器为特定的客户端提供服务。
为了达到上述目的,本发明的技术方案是这样实现的:
一种实现负载均衡的方法,设置转发设备的端口信息与服务器的第一对应关系,该方法还包括:
A、转发设备在当前端口上接收到客户端发来的访问请求,将当前端口信息插入该访问请求中发送至负载均衡设备;
B、负载均衡设备根据所设置的第一对应关系,选择与接收到访问请求中的当前端口信息对应的服务器,将访问请求发送至所选的服务器。
在步骤B中,所述将访问请求发送至所选的服务器的步骤包括:负载均衡设备直接将插入有当前端口信息的访问请求发送至所选的服务器。
在步骤B之后,进一步包括:所选的服务器将携带有当前端口信息的响应报文发送至负载均衡设备;负载均衡设备将该携带有当前端口信息的响应报文发送至转发设备;转发设备去除响应报文中的当前端口信息,然后将响应报文发送至所述客户端。
在步骤B中,所述将访问请求发送至所选的服务器的步骤包括:负载均衡设备建立访问请求中的客户端地址与当前端口信息之间的第三对应关系,并去除访问请求中的当前端口信息,然后将访问请求发送至所选的服务器。
在步骤B之后,进一步包括:所选的服务器将响应报文发送至负载均衡设备;负载均衡设备根据所建立的第三对应关系和响应报文中携带的客户端地址,将该客户端地址对应的当前端口信息插入响应报文中,然后将响应报文发送至转发设备;转发设备去除响应报文中的当前端口信息,然后将响应报文发送至所述客户端。
该方法进一步包括:设置虚拟局域网VLAN标签与该VLAN所连转发设备端口的第二对应关系;
所述设置第一对应关系的步骤包括:设置可标识转发设备端口的VLAN标签与服务器的第一对应关系;
在步骤A中,在转发设备接收到访问请求之后,并在将当前端口信息插入访问请求中之前,进一步包括:转发设备根据所设置的第二对应关系,确定与当前端口对应的VLAN标签;
所述当前端口信息为与当前端口对应的VLAN标签。
所述设置第一对应关系的步骤包括:设置转发设备的端口号与服务器的第一对应关系;
所述当前端口信息为当前端口的端口号。
所述转发设备端口的端口号为:所有转发设备的所有端口进行统一编号后,该转发设备端口的端口号;或者,所述转发设备的设备号加该端口在该转发设备上的编号。
一种实现负载均衡的系统,该系统包括:客户端、转发设备、负载均衡设备和多个服务器,其中,
转发设备,用于在当前的端口接收客户端发来的访问请求,将当前端口信息插入访问请求中发送至负载均衡设备;
负载均衡设备,用于保存转发设备的端口信息与服务器的第一对应关系,在接收到转发设备发来的访问请求后,根据所保存的第一对应关系,选择与接收到访问请求中的当前端口信息对应的服务器,将访问请求发送至所选的服务器。
所述转发设备,进一步用于保存VLAN标签与该VLAN所连转发设备端口的第二对应关系,在接收到访问请求时,根据所保存的第二对应关系,确定与当前端口对应的VLAN标签,将所确定的VLAN标签作为当前端口信息插入访问请求中;
所述负载均衡设备,用于保存可标识转发设备端口的VLAN标签与服务器的第一对应关系,根据该第一对应关系与访问请求中的VLAN标签,选择对应的服务器。
所述转发设备,在接收到访问请求时,将当前端口的端口号作为当前端口信息插入访问请求中;
所述负载均衡设备,用于保存端口号与服务器的第一对应关系,根据该第一对应关系与访问请求中的端口号,选择对应的服务器。
所述转发设备为路由器或交换机。
一种负载均衡设备,该负载均衡设备包括:控制单元、收发单元和存储单元,其中,
存储单元,用于保存转发设备的端口信息与服务器的第一对应关系;
收发单元,用于接收外部转发设备发来的携带当前端口信息的访问请求,将访问请求发送至所选的服务器;
控制单元,用于在收发单元接收到携带当前端口信息的访问请求后,从该访问请求中提取当前端口信息,根据存储单元中保存的第一对应关系,从多个服务器中选择与所提取的当前端口信息对应的服务器,控制收发单元将访问请求发送至所选的服务器。
所述控制单元进一步建立访问请求中的客户端地址与当前端口信息之间的第三对应关系,去除访问请求中的当前端口信息后,控制收发单元将访问请求发送至所选的服务器,在收发单元接收到所选服务器的响应报文后,根据所建立的第三对应关系,在响应报文中插入与响应报文中的客户端地址对应的当前端口信息,然后控制收发单元将响应报文发送至转发设备。
由此可见,本发明具有以下优点:
1、在本发明中,利用客户端所连接的转发设备的端口信息来限定为客户端提供服务的服务器,也就是说,可以实现由一个特定的服务器为特定的客户端提供服务,因此,大大增加了业务实现的灵活性,提高了业务服务质量。
2、在本发明中,由于是利用转发设备的端口信息与服务器的对应关系来实现特定服务器为特定客户端服务,因此,在客户端的地址或服务器的地址发生变化后,只需更新该对应关系即可,而无需对客户端和服务器的配置进行任何改动,因此,使得本发明简单且易于实现,增强了本发明的实用性。
具体实施方式
目前,由于客户端在接入网络时,其分配的IP地址往往是动态的,也就是说,同一个客户端在不同访问中使用的IP地址很可能是不相同的,这样,则无法通过客户端的IP地址来限定为客户端提供服务的服务器。然而,对客户端与服务器进行通信的过程进行分析可知,同一个客户端接入转发设备即路由器和交换机的端口是相同的,也就是说,同一个客户端不同访问中的所有报文都是通过转发设备上的同一个端口进行传输的,因此,可以利用客户端所连接的转发设备的端口信息来限定为客户端提供服务的服务器。
针对上述特点,本发明提出了一种实现负载均衡的方法,其核心思想是:设置转发设备的端口信息与服务器的第一对应关系;转发设备在当前端口上接收到客户端发来的访问请求,将当前端口信息插入该访问请求中发送至负载均衡设备;负载均衡设备根据所设置的第一对应关系,选择与接收到访问请求中的当前端口信息对应的服务器,将访问请求发送至所选的服务器。
相应的,本发明提出了一种实现负载均衡的系统。图1是在本发明中实现负载均衡的系统的结构示意图。参见图1,在本发明中,实现负载均衡的系统包括:客户端、转发设备、负载均衡设备和多个服务器,其中,
转发设备,用于在当前的端口接收客户端发来的访问请求,将当前端口信息插入访问请求中发送至负载均衡设备;
负载均衡设备,用于保存转发设备的端口信息与服务器的第一对应关系,在接收到转发设备发来的访问请求后,根据所保存的第一对应关系,选择与接收到访问请求中的当前端口信息对应的服务器,将访问请求发送至所选的服务器。
相应的,本发明还提出了一种负载均衡设备。图2是在本发明中负载均衡设备内部的结构示意图。参见图2,在本发明中,负载均衡设备内部的结构包括:控制单元、收发单元和存储单元,其中,
存储单元,用于保存转发设备的端口信息与服务器的第一对应关系;
收发单元,用于接收外部转发设备发来的携带当前端口信息的访问请求,将访问请求发送至所选的服务器;
控制单元,用于在收发单元接收到携带当前端口信息的访问请求后,从该访问请求中提取当前端口信息,根据存储单元中保存的第一对应关系,从多个服务器中选择与所提取的当前端口信息对应的服务器,控制收发单元将访问请求发送至所选的服务器。
在本发明中,所述的转发设备可以是客户端与负载均衡设备之间的路由器或交换机。
在本发明中,可以通过当前端口的端口号来表示当前端口的信息,或者,也可以通过当前端口对应的VLAN的标签来表示当前端口的信息。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
图3是在本发明实施例中实现负载均衡的流程图。参见图1、图2和图3,在本发明中,实现负载均衡的过程包括以下步骤:
步骤301:预先在负载均衡设备上设置转发设备的端口信息与服务器之间的第一对应关系。
通过本步骤的过程,可以实现将转发设备上的特定端口与特定服务器对应,相应的,也就实现了连接到转发设备上特定端口的客户端与特定服务器的对应。
另外,在本步骤中,可以采用包括但不限于以下两种方式来表示转发设备的端口信息,从而完成设置第一对应关系:
方式一、使用VLAN标签表示转发设备上的端口信息。
在实际的业务实现中,由于一个VLAN内客户端可使用的业务是相同的,并且一个VLAN内所有客户端连接的转发设备的端口是固定的,比如,VLAN1内的所有客户端均连接到转发设备的第一组端口上,VLAN2内的所有客户端均连接到转发设备的第二组端口上。因此,在本步骤301中,可以采用方式一来间接地表示转发设备上的端口信息。
当采用该方式一时,还需要在转发设备上设置VLAN标签与该VLAN所连转发设备端口的第二对应关系,即使用VLAN的标签表示端口信息。比如,VLAN1内的客户端连接到转发设备的第一组端口上,那么,则可以在转发设备上设置VLAN1与第一组端口之间的第二对应关系,即使用VLAN1表示第一组端口;并且,在本步骤中,在负载均衡设备上设置可标识转发设备端口的VLAN标签与服务器的第一对应关系,比如,转发设备第一组端口所连的VLAN1内的客户端需要访问特定的服务器1,那么,在本步骤中,则设置可标识第一组端口信息的VLAN1与服务器1之间的第一对应关系。所设置的第一对应关系和第二对应关系的形式可参见如下表1所示。
第一对应关系 |
第二对应关系 |
VLAN1~服务器1 |
第一组端口~VLAN1 |
表1
方式二、使用转发设备的端口号表示转发设备的端口信息。
在该方式二中,直接使用客户端所连的转发设备的端口号表示端口信息,并建立端口号与服务器之间的第一对应关系。
参见图2,当负载均衡设备内部的结构如图2所示时,在本步骤301中,是将所述的第一对应关系设置在负载均衡设备的存储单元中。
步骤302:客户端将访问请求发送至转发设备。
步骤303:转发设备在当前的一个端口上接收到客户端发来的访问请求,将当前端口信息插入该访问请求中。
当在上述步骤301中,采用方式一,即使用VLAN标签表示端口信息,并在转发设备中设置了端口与VLAN标签的第二对应关系,以及在负载均衡设备中设置了VLAN标签与服务器的第一对应关系,那么,在本步骤302中,在转发设备接收到访问请求之后,并在将当前端口信息插入访问请求之前,转发设备首先根据所设置的第二对应关系,确定与当前端口对应的VLAN标签,将所确定的与当前端口对应的VLAN标签作为当前端口信息,这样,所述的转发设备将当前端口信息插入访问请求中的具体实现为:转发设备将所确定的与当前端口对应的VLAN标签插入访问请求中。
当在上述步骤301中,采用方式二,即在负载均衡设备中设置了端口号与服务器的第一对应关系,那么,在本步骤302中,转发设备将当前端口信息插入该访问请求中的过程具体包括:转发设备直接将当前端口的端口号插入访问请求中。
在本步骤303中,转发设备可以将当前端口信息插入访问请求中的预留字段上,或插入访问请求中新增的字段上。
步骤304:转发设备将访问请求发送至负载均衡设备。
步骤305:负载均衡设备中的收发单元接收到访问请求。
步骤306:负载均衡设备中的控制单元从收发单元所接收到的访问请求中,提取当前端口信息。
当在上述步骤301中,采用方式一,则在本步骤中,负载均衡设备中的控制单元提取的是VLAN标签。
当在上述步骤301中,采用方式二,则在本步骤中,负载均衡设备中的控制单元提取的是端口号。
步骤307:负载均衡设备中的控制单元根据存储单元中保存的第一对应关系以及所提取的当前端口信息,从多个服务器中选择与当前端口信息对应的服务器。
当在上述步骤301中,采用方式一,则在本步骤中,负载均衡设备中的控制单元根据VLAN标签与服务器的对应关系,选择与所提取的VLAN标签对应的服务器。
当在上述步骤301中,采用方式二,则在本步骤中,负载均衡设备中的控制单元根据端口号与服务器的对应关系,选择与所提取的端口号对应的服务器。
步骤308:负载均衡设备中的控制单元控制收发单元将访问请求发送至所选的服务器。
在本步骤中,负载均衡设备可以直接将插入有当前端口信息的访问请求发送至所选的服务器;
或者,负载均衡设备中的控制单元也可以首先建立访问请求中的客户端地址与当前端口信息之间的第三对应关系,并去除访问请求中的当前端口信息,然后再控制收发单元将不携带当前端口信息的访问请求发送至所选的服务器。
步骤309:所选的服务器根据接收到的访问请求执行对应的业务处理,并将响应报文发送至负载均衡设备。
这里,如果在步骤308中,负载均衡设备将插入有当前端口信息的访问请求发送至所选的服务器,那么,在本步骤中,所选服务器返回的响应报文中携带有当前端口信息;
如果在步骤308中,负载均衡设备将未携带当前端口信息的访问请求发送至所选的服务器,那么,在本步骤中,所选服务器返回的响应报文中不携带当前端口信息。
步骤310:负载均衡设备中的收发单元接收到响应报文,将响应报文发送至转发设备。
这里,在负载均衡设备中的收发单元接收到响应报文时,如果响应报文中携带有当前端口信息,则收发单元可以直接将携带有当前端口信息的响应报文发送至转发设备;如果响应报文中不携带当前端口信息,那么,控制单元可以根据所建立的第三对应关系和响应报文中携带的客户端地址,将该客户端地址对应的当前端口信息插入响应报文中,然后控制收发单元将携带有当前端口信息的响应报文发送至转发设备。
步骤311:转发设备接收到响应报文后,将响应报文发送至对应的客户端。
这里,转发设备在接收到响应报文后,首先去除响应报文中的当前端口信息,然后再执行所述的将响应报文发送至对应的客户端。
需要说明的是,在上述步骤308至步骤311中,无论负载均衡设备在将访问请求发送至所选服务器前是否去除了当前端口信息,所选服务器在返回响应报文时,均可以不在响应报文中携带当前端口信息,并且,负载均衡设备也可以不在响应报文中插入当前端口信息,而直接将不携带当前端口信息的响应报文发送至转发设备,转发设备根据响应报文中的客户端地址将该响应报文发送至对应的客户端即可。
还需要说明的是,在上述图3所示的过程中,所述的转发设备可以是路由器或交换机。并且,所述转发设备端口的端口号可以是所有转发设备的所有端口进行统一编号后,该转发设备端口的端口号;或者,所述转发设备端口的端口号也可以是由该转发设备的设备号加该端口在该转发设备上的编号来构成。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。