网络负载均衡器、请求消息分配方法、程序产品及系统与流程

文档序号:26759938发布日期:2021-09-25 05:31阅读:134来源:国知局
网络负载均衡器、请求消息分配方法、程序产品及系统与流程

1.本公开涉及计算机技术中的云计算技术,尤其涉及一种网络负载均衡器、请求消息分配方法、程序产品及系统。


背景技术:

2.网络负载均衡器是云计算数据中心的基础网络设施,负责把海量的网络请求平均分发到多台后端服务器上,从而提升后端服务器集群的整体处理能力。
3.在典型的互联网服务系统架构中,网络负载均衡器是网络服务流量的入口,所有的网络服务请求都会经过网络负载均衡器进行转发,这给网络负载均衡器的性能带来了很大的挑战。如果单台网络负载均衡器性能无法满足需求,就需要同时部署多台网络负载均衡器进行并行处理。
4.但是,部署多台网络负载均衡器会提高系统的成本,而且单台网络负载均衡器的处理性能较低,若其中单台网络负载均衡器的处理能力饱和,则很容易造成丢包的问题,进而影响网络服务质量。


技术实现要素:

5.本公开提供了一种网络负载均衡器、请求消息分配方法、程序产品及系统,以提高网络负载均衡器的处理性能。
6.根据本公开的第一方面,提供了一种网络负载均衡器,包括:网口、n个中间芯片;所述n个中间芯片依次连接;所述网口与所述n个中间芯片中的第一个中间芯片连接;n为大于等于1的正整数;
7.所述网口,用于接收请求消息,并将所述请求消息转发至所述第一个中间芯片;
8.每一所述中间芯片,用于若未查询到与所述请求消息匹配的连接信息,则将所述请求消息转发至与当前中间芯片连接的下一个中间芯片;若查询到与所述请求消息匹配的连接信息,则根据所述连接信息将所述请求消息发送至后台服务器。
9.根据本公开的第二方面,提供了一种请求消息的分配方法,所述方法应用于网络负载均衡器,所述网络负载均衡器包括:网口、n个中间芯片;所述n个中间芯片依次连接;所述网口与所述n个中间芯片中的第一个中间芯片连接;n为大于等于1的正整数;所述方法包括:
10.所述网口接收请求消息,并将所述请求消息转发至所述第一个中间芯片;
11.所述中间芯片若未查询到与所述请求消息匹配的连接信息,则将所述请求消息转发至与当前中间芯片连接的下一个中间芯片;所述中间芯片若查询到与所述请求消息匹配的连接信息,则根据所述连接信息将所述请求消息发送至后台服务器。
12.根据本公开的第三方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如第二方面所述的方法。
13.根据本公开的第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:
计算机程序,所述计算机程序存储在可读存储介质中,网络负载均衡器的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得网络负载均衡器执行第二方面所述的方法。
14.根据本公开的第五方面,提供了一种服务系统,包括:如第一方面所述的网络负载均衡器、集群服务器,所述集群服务器中包括后台服务器;
15.所述网络负载均衡器用于接收用户终端发送的请求消息,并在所述集群服务器中确定用于处理所述请求消息的目标后台服务器;
16.所述网络负载均衡器还用于向所述目标后台服务器发送所述请求消息。
17.本公开提供的网络负载均衡器、请求消息分配方法、程序产品及系统,包括:网口、n个中间芯片;n个中间芯片依次连接;网口与n个中间芯片中的第一个中间芯片连接;n为大于等于1的正整数;网口,用于接收请求消息,并将请求消息转发至第一个中间芯片;每一中间芯片,用于若未查询到与请求消息匹配的连接信息,则将请求消息转发至与当前中间芯片连接的下一个中间芯片;若查询到与请求消息匹配的连接信息,则根据连接信息将请求消息发送至后台服务器。本公开提供的方案中,将请求消息的处理过程转移到中间芯片处理,从而通过硬件直接处理请求消息,以提升整个网络负载均衡器的性能。
18.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
19.附图用于更好地理解本方案,不构成对本公开的限定。其中:
20.图1为本公开一示例性实施例示出的云服务系统架构图;
21.图2为本公开一示例性实施例示出的网络负载均衡器的结构示意图;
22.图3为本公开一示例性实施例示出的网络负载均衡器对请求消息进行处理的流程示意图;
23.图4为本公开一示例性实施例示出的中间芯片查询连接信息的流程示意图;
24.图5为本公开另一示例性实施例示出的网络负载均衡器对请求消息进行处理的流程示意图;
25.图6为本公开第一示例性实施例示出的对请求消息进行处理的示意图;
26.图7为本公开第二示例性实施例示出的对请求消息进行处理的示意图;
27.图8为本公开第三示例性实施例示出的对请求消息进行处理的示意图;
28.图9为本公开第四示例性实施例示出的网络负载均衡器对请求消息进行处理的示意图;
29.图10为本公开第五示例性实施例示出的网络负载均衡器对请求消息进行处理的示意图;
30.图11为本公开第六示例性实施例示出的网络负载均衡器对请求消息进行处理的示意图;
31.图12为本公开第七示例性实施例示出的网络负载均衡器对请求消息进行处理的示意图。
具体实施方式
32.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
33.图1为本公开一示例性实施例示出的云服务系统架构图。
34.如图1所示,在云服务系统架构中,可以设置有多台后台服务器11,这些后台服务器11能够对用户终端12发送的请求进行处理,并反馈处理结果,从而对外提供服务。
35.由于设置有多台服务器11对外提供服务,当用户终端12发送请求消息后,就需要通过网络负载均衡器13将请求消息分发至某一台后台服务器11中,从而均衡各后台服务器11所处理的请求消息。
36.目前云数据中心广泛采用基于普通服务器的软件负载均衡器,单台设备的性能为10g~100g,随着云计算业务的发展,云数据中心内、数据中心间服务访问带来的网络流量越来越大,流量带宽通常达到tbps(兆)级别。而单台网络负载均衡器显然无法满足带宽需求,因此,单个服务器集群需要部署数十台甚至数百台网络负载均衡器,如果部署有多个服务器集群,甚至会耗费数千台机器。
37.通过简单增加网络负载均衡器解决流量增大的问题,会引发较多的新问题。首先是成本问题,占用大量机器会带来高额的成本开销;其次是运维问题,部署的机器数量越多,运维难度越大。最后是服务质量问题,由于单台设备处理性能较低,网络中突发流量很容易将单台设备处理能力打满,造成丢包,影响网络服务质量。所以提升单台网络负载均衡器的性能对于解决负载均衡业务的成本、运维、服务质量等问题都有重要意义。
38.为了解决上述技术问题,本公开提供的方案中,在网络负载均衡器中设置有n个中间芯片,通过这些中间芯片先对请求消息进行处理,在中间芯片查询请求消息的连接信息失败时,再由处理器对请求消息进行处理,以降低处理器的处理压力,从而从整体上提高网络负载均衡器的处理性能。
39.图2为本公开一示例性实施例示出的网络负载均衡器的结构示意图。
40.如图2所示,本公开提供的网络负载均衡器中包括网口21、n个中间芯片221

22n。
41.其中,各中间芯片依次连接。网口21与n个中间芯片中的第一个中间芯片221连接。n为大于或等于1的整数。
42.当n为1时,第一个中间芯片与最后一个中间芯片为同一个中间芯片。
43.图3为本公开一示例性实施例示出的网络负载均衡器对请求消息进行处理的流程示意图。
44.如图3所示,基于本公开提供的网络负载均衡器对请求消息进行处理时,具体的流程包括:
45.步骤301,通过网口接收请求消息,并将请求消息转发至第一个中间芯片。
46.其中,网络负载均衡器中的网口用于接收请求消息。用户终端可以通过网络发送请求消息,该请求消息用于访问网络服务。提供该网络服务的服务系统中可以设置有本公开提供的网络负载均衡器,进而可以由该网络负载均衡器接收用户终端的请求消息,具体由网络负载均衡器的网口接收该请求消息。
47.具体的,网络负载均衡器的网口还用于将请求消息转发至n个中间芯片中的第一个中间芯片,从而由第一个中间芯片先对请求消息进行处理。
48.步骤302,中间芯片若未查询到与请求消息匹配的连接信息,则将请求消息转发至与当前中间芯片连接的下一个中间芯片;中间芯片若查询到与请求消息匹配的连接信息,则根据连接信息将请求消息发送至后台服务器。
49.每一中间芯片,用于若未查询到与请求消息匹配的连接信息,则将请求消息转发至与当前中间芯片连接的下一个中间芯片。
50.进一步的,第一个中间芯片接收到请求消息后,可以查询与该请求消息匹配的连接信息。若未查询到,则将请求消息转发至下一个中间芯片。
51.实际应用时,每个中间芯片中都可以设置连接信息,各中间芯片中的连接信息可以不同。连接信息中可以包括请求终端的地址信息,中间芯片可以根据这些信息在自身存储的匹配信息中查询与请求消息匹配的连接信息。
52.其中,中间芯片还用于若查询到与请求消息匹配的连接信息,则根据连接信息将请求消息发送至后台服务器。
53.因此,若中间芯片查询到与请求消息匹配的连接信息,则中间芯片可以根据该连接信息将请求消息发送至后台服务器。
54.具体的,网络负载均衡器可以和集群服务器连接。中间芯片确定的连接信息中可以包括后台服务器信息,比如包括后台服务器标识,进而使得中间芯片能够将请求消息发送到与该后台服务器标识对应的后台服务器中。
55.例如,中间芯片可以提取请求消息中包括的地址address1,则中间芯片可以根据address1在本地存储的连接信息中查询匹配的连接信息,比如可以查询到匹配的连接信息为信息1。则中间芯片可以获取信息1中包括的后台服务器标识1,并将请求消息发送至标识为1的后台服务器中,以使该后台服务器处理请求消息。
56.图4为本公开一示例性实施例示出的中间芯片查询连接信息的流程示意图。
57.如图4所示,第一个中间芯片221接收到请求消息后,可以查询与之匹配的连接信息,若查询失败,则可以将请求消息转发至下一个中间芯片222中,由中间芯片222继续对请求消息进行处理。
58.若中间芯片222在存储的连接信息中查询到与请求消息匹配的连接信息,则中间芯片222可以将请求消息转发到该连接信息指示的后台服务器23中。
59.在一种可选的实施方式中,网络负载均衡器还可以包括处理器,在各中间芯片中均没有查询到与请求消息匹配的连接信息时,n个中间芯片中的第一个中间芯片将请求消息转发至处理器,处理器用于将请求消息发送至后台服务器。
60.本公开提供的网络负载均衡器,包括:网口、n个中间芯片;n个中间芯片依次连接;网口与n个中间芯片中的第一个中间芯片连接;n为大于等于1的正整数;网口,用于接收请求消息,并将请求消息转发至第一个中间芯片;每一中间芯片,用于若未查询到与请求消息匹配的连接信息,则将请求消息转发至与当前中间芯片连接的下一个中间芯片;若查询到与请求消息匹配的连接信息,则根据连接信息将请求消息发送至后台服务器。本公开提供的网络负载均衡器,将请求消息的处理过程转移到中间芯片处理,从而通过硬件直接处理请求消息,以提升整个网络负载均衡器的性能。
61.图5为本公开另一示例性实施例示出的网络负载均衡器对请求消息进行处理的流程示意图。
62.一种可选的实施方式中,网络负载均衡器中还可以包括处理器。
63.如图5所示,基于本公开提供的网络负载均衡器对请求消息进行处理时,具体的流程包括:
64.步骤501,处理器获取全连接表中各连接信息的活跃度信息;处理器中设置有全连接表,全连接表中包括多个连接信息。
65.其中,本公开提供的方案中,网络负载均衡器中还可以设置处理器,设置的处理器中可以设置有全连接表,该全连接表中包括多个连接信息。
66.具体的,全连接表中可以存储全部的连接信息,其中包括各中间芯片中存储的连接信息。比如用户终端发送一个请求消息,处理器可以构建该请求消息对应的连接信息,并在连接结束后,处理器可以删除相应的连接信息。
67.进一步的,处理器可以获取全连接表中各连接信息的活跃度信息,一种实施方式中,针对特定已知业务类型的连接,处理器可以直接将其归类为某一类,比如归为活跃的连接,或者半活跃的连接。另一种实施方式中,连接刚开始的时候,处理器可以将其确定为不活跃连接,当处理器处理该连接的包数、字节数、持续时间等信息达到设定的半活跃连接阈值之后,将该连接确定为半活跃连接。若连接满足活跃连接的阈值,则处理器可以将其确定为活跃连接。
68.处理器可以获取每个连接信息的活跃度信息。
69.步骤502,处理器根据各连接信息的活跃度信息、各中间芯片的级别,将连接信息存储到中间芯片的连接表中。
70.实际应用时,各中间芯片的级别可以不同,不同级别的各中间芯片用于存储不同类型的连接信息。
71.相应的,处理器具体用于根据各连接信息的活跃度信息、各中间芯片的级别,将连接信息存储到中间芯片的连接表中。比如可以预先设置活跃度信息与芯片级别对应的关系,比如活跃度1与级别1对应,活跃度2与级别2对应,则处理器可以根据该对应关系,将连接信息存储到相应的中间芯片中。
72.实际应用时,若设置有两级中间芯片,则处理器可以将活跃度信息表征为活跃的连接信息,存储至第一级别的中间芯片的连接表中;将活跃度信息表征为半活跃的连接信息,存储至第二级别的中间芯片的连接表中。这种实施方式中,可以利用第一级别的中间芯片对活跃的连接进行处理,利用第二级别的中间芯片对不活跃的连接进行处理,从而使网络负载均衡器可以在第一级别的中间芯片就将活跃连接对应的请求消息处理掉,从而提高请求消息的处理速度。
73.第一级别的中间芯片可以n个中间芯片中的第一个中间芯片,其可以直接与网口连接,从而使请求消息能够从网口直接转发至第一级别的中间芯片,使得请求消息对应的连接为活跃连接时,该第一级别的中间芯片能够直接处理该请求消息。
74.第一级别的中间芯片可以用来存储活跃连接的连接信息,第二级别的中间芯片可以用来存储半活跃连接的连接信息,处理器可以存储全部的连接信息,其中包括不活跃的连接信息。
75.其中,若连接为活跃,则处理器可以将该连接的连接信息发送到第一级中间芯片,从而使第一级中间芯片将接收的连接信息存储在第一连接表中;若连接为半活跃,则处理器可以将该连接的连接信息发送到第二级中间芯片,从而使第二级中间芯片将接收的连接信息存储在第二连接表中。
76.这种实施方式中,可以基于连接的活跃度信息将各连接的信息分配到不同的中间芯片中,进而可以由不同的中间芯片对活跃度不同的请求消息进行处理,以提高处理速度。
77.这种实施方式中,处理器可以与各个中间芯片连接。
78.步骤503,通过网口接收请求消息,并将请求消息转发至第一个中间芯片。
79.步骤503与步骤301的实现方式和原理类似,不再赘述。
80.步骤504,中间芯片从请求消息中获取地址信息,并根据地址信息在当前中间芯片所存储的连接表中查询与请求消息匹配的连接信息。
81.其中,任一个中间芯片都可以对接收的请求消息进行处理,比如第一个中间芯片可以执行本步骤。
82.具体的,每个中间芯片中都可以存储连接信息,例如,每个中间芯片都可以设置连接表,通过连接表存储连接信息。
83.不同中间芯片中存储的连接信息也不同。每一中间芯片所存储的连接表与每一中间芯片一一对应,中间芯片所存储的连接表用于指示地址信息与连接信息之间的对应关系。
84.进一步的,中间芯片可以从请求消息中提取地址信息,进而根据地址信息在存储的连接表中查询与请求消息匹配的连接信息。
85.与所述请求消息匹配的连接信息用于指示接收请求消息的后台服务器,比如,连接信息中包括服务器标识信息,则中间芯片可以根据连接信息中的服务器标识信息,将请求消息转发至该服务器标识信息指示的服务器中。
86.通过设置连接信息,中间芯片和处理器能够根据连接信息确定用于处理请求消息的后台服务器,进而可以直接根据连接信息转发请求消息。
87.这种实施方式中,中间芯片能够通过请求消息中的地址在存储的连接表中确定匹配的连接信息,从而根据连接信息对请求消息进行处理,将其转发到后台服务器中,而无需将请求消息传送到处理器中,从而通过中间芯片分担处理器的处理压力,以提高网络负载均衡器的性能。
88.步骤505,中间芯片若未查询到与请求消息匹配的连接信息,则将请求消息转发至与当前中间芯片连接的下一个中间芯片。
89.步骤505与步骤302中转发请求消息的原理和实现方式类似,不再赘述。
90.步骤506,中间芯片若查询到与请求消息匹配的连接信息,则根据连接信息对请求消息进行转发处理,得到转发数据包。
91.其中,中间芯片若查询到匹配的连接信息,则中间芯片可以根据连接信息对请求消息进行转发处理。例如,将请求消息中的目的ip地址修改为后台服务器的地址,除此之外,中间芯片根据后台服务器的类型还可以做其他操作,比如有一些其他的数据包修改操作,例如如果后台服务器是虚拟机,则会对数据包进行vxlan(virtual extensible local area network,虚拟可扩展的局域网)封装的操作。
92.具体的,中间芯片对请求消息进行转发处理后,可以得到转发数据包。
93.步骤507,若中间芯片是n个中间芯片中的第一个中间芯片,则中间芯片通过网口将转发数据包发送至相应的后台服务器。
94.进一步的,若n个中间芯片中的第一个中间芯片确定出与请求消息匹配的连接信息,则该第一个中间芯片可以直接通过网口将转发数据包转发至后台服务器。
95.实际应用时,n个中间芯片中的第一个中间芯片可以与网口直接连接,因此,该第一个中间芯片能够直接通过网口发送转发数据包。其中,转发数据包中的目的地址可以是根据连接信息确定的后台服务器的地址,因此,该转发数据包能够被连接信息指示的后台服务器接收。
96.图6为本公开第一示例性实施例示出的对请求消息进行处理的示意图。
97.如图6所示,网络负载均衡器可以通过网口21接收用户终端61发送的请求消息,再将该请求消息转发到n个中间芯片中的第一个中间芯片221中,若第一个中间芯片221确定了与请求消息匹配的连接信息,则第一个中间芯片221可以生成转发数据包,并通过网口21将转发数据包发送给后台服务器23中。
98.步骤508,若中间芯片不是n个中间芯片中的第一个中间芯片,则中间芯片将转发数据包转发至与网口连接的中间芯片,再由与网口连接的中间芯片通过网口将转发数据包发送至后台服务器。
99.其中,若n个中间芯片中的非第一个中间芯片确定出与请求消息匹配的连接信息,则该中间芯片可以将转发数据包先发送到n个中间芯片中的第一个中间芯片中。由于该第一个中间芯片与网口直接连接,因此,可以由第一个中间芯片通过网口将转发数据包发送至后台服务器。
100.图7为本公开第二示例性实施例示出的对请求消息进行处理的示意图。
101.如图7所示,网络负载均衡器可以通过网口21接收用户终端61发送的请求消息,再将该请求消息转发到n个中间芯片中的第一个中间芯片221中,若第一个中间芯片221没有查询到与请求消息匹配的连接信息,则可以将请求消息转发给下一个中间芯片222,除了第一个中间芯片221外的任一中间芯片若查询出与请求消息匹配的连接信息,例如中间芯片222确定出匹配的连接信息,则中间芯片222可以生成转发数据包,并将转发数据包发送到第一个中间芯片221中,具体可以基于n个中间芯片的连接方式,逐级发送转发数据包,从而将转发数据包发送给第一个中间芯片221,使得第一个中间芯片221通过网口21将转发数据包发送给后台服务器23中。
102.这种实施方式中,由于网络负载均衡器通过网口与外界进行交互,而n个中间芯片中的第一个中间芯片与网口连接,因此,将转发数据包发送到第一个中间芯片,能够通过网口将该转发数据包转发到外部的后台服务器中。
103.在步骤505之后还可以执行步骤509。
104.步骤509,若n个中间芯片中的各中间芯片均未查询到与请求消息匹配的连接信息,则n个中间芯片中的第一个中间芯片将请求消息转发至处理器。
105.处理器用于将请求消息发送至后台服务器。
106.其中,随着中间芯片逐级的转发请求消息,若将请求消息转发至n个中间芯片中的最后一个中间芯片,则该最后一个中间芯片可以在存储的连接信息中查询与该请求消息匹
配的连接信息。
107.各中间芯片中的最后一个中间芯片还用于若未查询到与请求消息匹配的连接信息,则说明各中间芯片都没有查询到与请求消息匹配的连接信息,此时,该请求消息可以被返回到第一个中间芯片中,进而通过第一个中间芯片将请求消息转发至处理器,处理器用于将请求消息发送至后台服务器。
108.一种实施方式中,可以直接由最后的一个中间芯片向第一个中间芯片发送该请求消息,从而使第一个中间芯片向处理器发送请求消息。另一种实施方式中,可以基于n个中间芯片的连接关系,逐级的发送请求消息,使得请求消息被发送到n个中间芯片的第一个中间芯片中。
109.具体的,若中间芯片没有查询到与请求消息匹配的连接信息,则中间芯片会向下一个中间芯片转发请求消息,因此,请求消息有可能被转发至最后一个中间芯片中。
110.进一步的,若请求消息被转发至最后一个中间芯片中,则可以认为此前的其他中间芯片中均没有与请求消息匹配的连接信息。
111.实际应用时,若最后一个中间芯片中也没有存储与请求消息匹配的连接信息,则可以认为各中间芯片中都没有与请求消息匹配的连接信息。因此,可以由第一个中间芯片将请求消息转发至网络负载均衡器的处理器中。
112.因此,若最后一个中间芯片没有查询到匹配的连接信息,则该最后一个中间芯片可以将请求消息发送到第一个中间芯片,再由第一个中间芯片将该请求消息发送到网络负载均衡器的处理器中,从而由处理器对该请求消息进行处理。
113.例如,网络负载均衡器接收的是一个新的请求消息,则各中间芯片中都不会存储该请求消息的连接信息,因此,该请求消息最终会被转发到处理器中。
114.图8为本公开第三示例性实施例示出的对请求消息进行处理的示意图。
115.如图8所示,第一个中间芯片221接收到请求消息后,可以查询与之匹配的连接信息,若查询失败,则可以将请求消息转发至下一个中间芯片222中,由中间芯片222继续对请求消息进行处理。
116.若中间芯片222也没有在存储的连接信息中查询到与请求消息匹配的连接信息,则该中间芯片222会再次向下一个中间芯片转发请求消息,若各中间芯片221

(22n

1)都没有存储与请求消息匹配的连接信息,则该请求消息会被转发到各中间芯片中的最后一个中间芯片22n中。
117.其中,最后一个中间芯片22n可以继续执行查询连接信息的步骤,若该最后一个中间芯片22n中也没有存储与请求消息匹配的连接信息,则中间芯片22n可以将请求消息发送回第一个中间芯片221,再由第一个中间芯片221将请求消息转发到处理器24中,从而使处理器24对求消息进行处理,将其发送至后台服务器23。
118.通过这种实施方式中,若中间芯片中存储有请求消息的连接信息,则中间芯片可以根据连接信息将请求消息发送至后台服务器,因此可以降低处理器对请求消息的处理数量,进而可以降低处理器对请求消息的处理压力,从整体提高网络负载均衡器的处理性能。
119.步骤510,处理器在存储的全连接表中查询与请求消息匹配的连接信息。
120.其中,处理器中可以存储全连接表,全连接表中包括多个连接信息,因此,处理器可以在全连接表中查询与请求消息匹配的连接信息。具体可以从请求消息中获取地址信
息,并根据地址信息在处理器所存储的全连接表中查询与请求消息匹配的连接信息。
121.步骤511,处理器根据查询到的与请求消息匹配的连接信息,将请求消息发送至后台服务器。
122.具体的,处理器在将请求消息发送至后台服务器时,具体可以根据连接信息对请求消息进行转发处理,得到转发数据包;将转发数据包发送给与网口连接的中间芯片,再由与网口连接的中间芯片通过网口将转发数据包发送至后台服务器。
123.若处理器查询到与请求消息匹配的连接信息,则该处理器可以根据连接信息将请求消息转发到后台服务器,从而使后台服务器能够对该请求消息进行处理。
124.这种实施方式中,若各中间芯片中都没有存储与请求消息匹配的连接信息,则可以由处理器在全连接表中查询请求消息匹配的连接信息,这种实施方式中,能够降低处理器处理请求消息的数量,进而提高处理器的处理性能。
125.进一步的,由于网络负载均衡器通过网口与外界进行交互,而n个中间芯片中的第一个中间芯片与网口连接,因此,将转发数据包发送到第一个中间芯片,能够通过网口将该转发数据包转发到外部的后台服务器中。步骤512,若处理器未查询到与请求消息匹配的连接信息,则根据请求消息创建连接信息,并基于预设均衡调度规则确定连接信息中包括的后台服务器信息。
126.一种可选的实施方式中,若处理器在全连接表中也没有查询到与请求消息匹配的连接信息,则说明网络负载均衡器中没有存储请求消息对应的连接信息,因此,处理器可以创建与该请求消息对应的连接信息。从而在网络负载均衡器再次接收到相应的请求消息时,能够基于与其对应的连接信息将该请求消息转发到后台服务器,以提高请求消息的处理速度。
127.其中,处理器还可以基于预先设置的均衡调度规则,确定该请求消息对应的后台服务器的信息,从而在该请求消息的连接信息中存储确定的后台服务器信息,后台服务器信息例如可以是后台服务器的标识。比如,可以根据各后台服务器中处理的请求消息的数量,为当前的请求消息分配后台服务器。
128.步骤513,将新创建的连接信息存储到全连接表中。
129.进一步的,处理器还可以将新建的连接信息存储到全连接表中。
130.在一种可选的实施方式中,网络负载均衡器中可以设置有两个中间芯片,第一级中间芯片与网口连接,第一级中间芯片为可编程交换芯片,第二级中间芯片为现场可编程门阵列fpga芯片。
131.在这种系统架构中,把连接信息存储到可编程交换芯片和fpga的连接表中,使数据包在硬件中完成连接匹配之后直接转发,从而减轻网络负载均衡器的压力,提升系统的整体性能。这种方式能够利用可编程交换芯片和fpga芯片组成的两级连接表进行快速的数据包处理,提升网络负载均衡器的处理性能。
132.一种可选的实施方式中,在创建了新的连接后,处理器还可以继续监控该新连接的活跃度信息,进而可以在新连接的活跃度信息变更时,根据新连接的活跃度信息将其分配到中间芯片中。
133.下面以一详细实施例说明本方案,具体以网络负载均衡器中设置有可编程交换芯片、fpga芯片进行举例说明。
134.图9为本公开第四示例性实施例示出的网络负载均衡器对请求消息进行处理的示意图。
135.如图9所示,在网络负载均衡器中没有存储请求消息对应的连接信息时,请求消息从网口进入可编程交换芯片后,由于可编程交换芯片中不存在与该请求消息匹配的连接信息,则可编程交换芯片将请求消息发送到fpga芯片中,由于fpga芯片中也不存在与该请求消息匹配的连接信息,则fpga芯片可以将请求消息返回到可编程交换芯片中,通过可编程交换芯片向处理器cpu发送请求消息,由于cpu中也不存在与该请求消息匹配的连接信息,则cpu可以生成与该请求消息匹配的连接信息,并确定与该连接信息对应的后台服务器,并由可编程交换芯片将该请求消息通过网口发送至后台服务器。
136.图10为本公开第五示例性实施例示出的网络负载均衡器对请求消息进行处理的示意图。
137.如图10所示,cpu可以根据各个连接信息的活跃度信息,将连接信息卸载到可编程交换芯片和fpga芯片中。具体可以将活跃连接卸载至可编程交换芯片,将半活跃连接卸载至fpga芯片。对于不活跃的连接,cpu不对其进行卸载。
138.图11为本公开第三示例性实施例示出的网络负载均衡器对请求消息进行处理的示意图。
139.如图11所示,假设网络负载均衡器接收的请求消息对应的连接信息存储在可编程交换芯片中。网络负载均衡器接收的请求消息可以从网口转发至可编程交换芯片,再由可编程交换芯片根据该请求消息匹配的连接信息将请求消息转发至后台服务器。
140.图12为本公开第七示例性实施例示出的网络负载均衡器对请求消息进行处理的示意图。
141.如图12所示,假设网络负载均衡器接收的请求消息对应的连接信息存储在fpga芯片中。网络负载均衡器接收的请求消息可以从网口转发至可编程交换芯片,再由可编程交换芯片转发至fpga芯片,由fpga芯片根据该请求消息匹配的连接信息将请求消息转发至后台服务器。具体可以通过可编程交换芯片以及网口,将请求消息转发到后台服务器中。
142.本公开一实施例中,还提供一种请求消息的分配方法,所述方法应用于网络负载均衡器,所述网络负载均衡器包括:网口、n个中间芯片;所述n个中间芯片依次连接;所述网口与所述n个中间芯片中的第一个中间芯片连接;n为大于等于1的正整数;所述方法包括:
143.所述网口接收请求消息,并将所述请求消息转发至所述第一个中间芯片;
144.所述中间芯片若未查询到与所述请求消息匹配的连接信息,则将所述请求消息转发至与当前中间芯片连接的下一个中间芯片;所述中间芯片若查询到与所述请求消息匹配的连接信息,则根据所述连接信息将所述请求消息发送至后台服务器。
145.本公开另一实施例中,所述网络负载均衡器中还包括处理器,所述方法还包括:
146.若各中间芯片均未查询到与所述请求消息匹配的连接信息,则所述n个中间芯片中的第一个中间芯片,将所述请求消息转发至所述处理器,所述处理器将所述请求消息发送至后台服务器。
147.本公开另一实施例中,所述处理器将所述请求消息发送至后台服务器,包括:
148.在存储的全连接表中查询与所述请求消息匹配的连接信息;
149.根据查询到的与所述请求消息匹配的连接信息,将所述请求消息发送至后台服务
器。
150.本公开另一实施例中,请求消息的分配方法还包括:
151.所述中间芯片从所述请求消息中获取地址信息,并根据所述地址信息在当前中间芯片所存储的连接表中查询与所述请求消息匹配的连接信息;
152.其中,每一所述中间芯片所存储的连接表与每一所述中间芯片一一对应,所述中间芯片所存储的连接表用于指示地址信息与连接信息之间的对应关系。
153.其中,所述网络负载均衡器中还包括处理器,所述处理器中设置有全连接表,所述全连接表中包括多个连接信息;所述方法还包括:
154.所述处理器获取所述全连接表中各连接信息的活跃度信息;
155.所述处理器根据各连接信息的活跃度信息、各所述中间芯片的级别,将连接信息存储到所述中间芯片的连接表中。
156.其中,所述处理器根据各连接信息的活跃度信息、各所述中间芯片的级别,将连接信息存储到所述中间芯片的连接表中,包括:
157.所述处理器将活跃度信息表征为活跃的连接信息,存储至第一级别的中间芯片的连接表中;
158.所述处理器将活跃度信息表征为半活跃的连接信息,存储至第二级别的中间芯片的连接表中。
159.其中,与所述请求消息匹配的连接信息用于指示接收请求消息的后台服务器。
160.其中,所述方法还包括:
161.若所述处理器未查询到与所述请求消息匹配的连接信息,则根据所述请求消息创建连接信息,并基于预设均衡调度规则确定所述连接信息中包括的后台服务器信息;
162.所述处理器将新创建的连接信息存储到全连接表中。
163.其中,所述中间芯片根据所述连接信息将所述请求消息发送至后台服务器,包括:
164.所述中间芯片根据所述连接信息对所述请求消息进行转发处理,得到转发数据包;
165.若所述中间芯片是n个中间芯片中的第一个中间芯片,则所述中间芯片通过所述网口将所述转发数据包发送至后台服务器;
166.若所述中间芯片不是n个中间芯片中的第一个中间芯片,则所述中间芯片将所述转发数据包转发至n个中间芯片中的第一个中间芯片,再由第一个中间芯片通过所述网口将所述转发数据包发送至后台服务器。
167.其中,所述将所述请求消息发送至后台服务器,包括:
168.根据所述连接信息对所述请求消息进行转发处理,得到转发数据包;
169.将所述转发数据包发送给与所述网口连接的中间芯片,再由与所述网口连接的中间芯片通过所述网口将所述转发数据包发送至后台服务器。
170.本公开还提供一种服务系统,包括:如上任一项网络负载均衡器、集群服务器,所述集群服务器中包括后台服务器;
171.所述网络负载均衡器用于接收用户终端发送的请求消息,并在所述集群服务器中确定用于处理所述请求消息的目标后台服务器;
172.所述网络负载均衡器还用于向所述目标后台服务器发送所述请求消息。
173.本公开提供一种网络负载均衡器、请求消息分配方法、程序产品及系统,应用于计算机技术中的云计算技术。
174.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
175.根据本公开的实施例,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上所述的任一种方法。
176.根据本公开的实施例,本公开还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,网络负载均衡器的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得网络负载均衡器执行上述任一实施例提供的方案。
177.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
178.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
179.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
180.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
181.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
182.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtual private server",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
183.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
184.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1