动态负载均衡方法、装置、介质以及电子设备与流程
未命名
07-19
阅读:96
评论:0

1.本技术实施例涉及负载均衡技术领域,特别是涉及一种动态负载均衡方法、装置、介质以及电子设备。
背景技术:
2.代理服务器是将访问请求转发至后端服务器的一端,是网络信息的中转站,主要用于转发客户端的访问请求,进行负载均衡处理。动态负载均衡指的是根据服务器的实时负载状态信息分配任务,其可以有效提升服务器性能。nginx(engine x)作为一个高性能的http和代理服务器,广泛应用于负载均衡服务。
3.下面以nginx为例,说明相关技术中的动态负载均衡方法。相关技术中,当用户设备运行的客户端向nginx发起请求时,工作进程会接收到该请求,通过nginx的上游(upstream)配置信息,将该请求转发到后端真实的服务器进行处理。相关技术中,修改nginx的上游配置信息后,需要执行重加载操作,重新加载上游配置信息。而重加载操作会重启工作进程,一方面nginx使用一段时间后,nginx的工作进程数量会增加,均重启将导致系统资源的下降,而且重启时各个工作进程间的互斥锁竞争,将导致qps(queries per second是每秒查询率,也即最大吞吐能力)急速下降;另一方面旧的工作进程要把当前的请求的任务处理完成才会释放工作进程的资源,所以若旧的工作进程和后端的服务器有死连接的话,则在一段时间内旧的工作进程个数会随着重加载的次数成倍数增加,导致nginx性能的下降,增加nginx的处理负担。
技术实现要素:
4.为克服相关技术中存在的问题,本技术提供一种动态负载均衡方法、装置、介质以及电子设备,其可提高代理服务器性能,降低代理服务器的处理负担。
5.根据本技术实施例的第一方面,提供一种动态负载均衡方法,包括如下步骤:
6.在代理服务器配置解析完后,获取代理服务器的第一上游配置信息,将所述第一上游配置信息保存至动态负载均衡模块;所述第一上游配置信息包括代理服务器反向代理的若干个服务器信息;
7.在所述动态负载均衡模块启动工作进程时,为每个工作进程配置辅助插件,将所述第一上游配置信息存储至所述辅助插件,基于所述辅助插件构建工作进程集群;其中,每个所述工作进程基于各自辅助插件内的所述第一上游配置信息,将客户端发送的数据处理请求转发至反向代理的服务器;
8.接收上游配置信息变更请求,基于所述工作进程集群,更新所述工作进程的辅助插件内的第一上游配置信息,获得第二上游配置信息,将所述第二上游配置信息同步到所述动态负载均衡模块。
9.根据本技术实施例的第二方面,提供一种动态负载均衡装置,包括:
10.配置信息获取模块,用于在代理服务器配置解析完后,获取代理服务器的第一上
游配置信息,将所述第一上游配置信息保存至动态负载均衡模块;所述第一上游配置信息包括代理服务器反向代理的若干个服务器信息;
11.配置信息存储模块,用于在所述动态负载均衡模块启动工作进程时,为每个工作进程配置辅助插件,将所述第一上游配置信息存储至所述辅助插件,基于所述辅助插件构建工作进程集群;其中,每个所述工作进程基于各自辅助插件内的所述第一上游配置信息,将客户端发送的数据处理请求转发至反向代理的服务器;
12.配置信息更新模块,用于接收上游配置信息变更请求,基于所述工作进程集群,更新所述工作进程的辅助插件内的第一上游配置信息,获得第二上游配置信息,将所述第二上游配置信息同步到所述动态负载均衡模块。
13.根据本技术实施例的第三方面,提供一种电子设备,包括处理器和存储器;所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如上述所述的动态负载均衡方法。
14.根据本技术实施例的第四方面,提供一种计算机可读存储介质,其上储存有计算机程序,其特征在于,该计算机程序被处理器执行时实现如上述所述的动态负载均衡方法。
15.本技术实施例通过在代理服务器配置解析完后,获取代理服务器的第一上游配置信息,将所述第一上游配置信息保存至动态负载均衡模块;在所述动态负载均衡模块启动工作进程时,为每个工作进程配置辅助插件,将所述第一上游配置信息存储至所述辅助插件,基于所述辅助插件构建工作进程集群;接收上游配置信息变更请求,基于所述工作进程集群,更新所述工作进程的辅助插件内的第一上游配置信息,获得第二上游配置信息,将所述第二上游配置信息同步到所述动态负载均衡模块,从而在上游配置信息改变时,无需进行重加载操作,无需重启工作进程,基于动态负载均衡模块、辅助插件以及工作进程集群,对工作进程和代理服务器本地的上游配置信息的动态同步调整,提高代理服务器性能,降低代理服务器的处理负担。
16.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
17.为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
18.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为本技术实施例提供的动态负载均衡方法的应用环境的示意框图;
20.图2为本技术实施例提供的动态负载均衡方法的流程图;
21.图3为本技术实施例提供的动态负载均衡原理的示意图;
22.图4为本技术实施例提供的同步辅助插件和代理服务器本地的配置信息方法的流程图;
23.图5为本技术提供的动态负载均衡装置的示意框图;
24.图6为本技术提供的电子设备的结构示意框图。
具体实施方式
25.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例方式作进一步地详细描述。
26.应当明确,所描述的实施例仅仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术实施例保护的范围。
27.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。在本技术的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。在此所使用的词语“如果”/“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
28.此外,在本技术的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
29.本领域技术人员可以理解,本技术所使用的“客户端”、“终端”、“终端设备”既包括无线信号发射器的设备,其仅具备发射能力的无线信号发射器的设备,又包括无线信号接收射器的设备,其仅具备接收能力的无线信号接收器的设备,还可以包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;pcs(personalcommunications service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personal digital assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(global positioningsystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobile internet device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
30.本技术所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的计算机设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
31.需要指出的是,本技术所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划
分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本技术的网络部署方式的实施方式。
32.请参阅图1,图1为本技术实施例提供的动态负载均衡方法的应用场景示意图,该应用场景包括客户端10、代理服务器20和后端服务器30。
33.客户端10经由代理服务器20与后端服务器30进行交互。具体的,客户端10、代理服务器20以及后端服务器30均可以通过网络接入方式接入互联网,进而建立客户端10和代理服务器20之间、代理服务器20与后端服务器30之间的数据通信链路。其中,网络可以是能够在客户端10和代理服务器20之间、代理服务器20与后端服务器30之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路、无线通信链路或者光纤电缆等等,本技术在此不做限制。
34.客户端10是指发送对后端服务器30的访问请求的一端。客户端10所指向的硬件,本质上是指计算机设备,具体地,其可以是智能手机、智能交互平板和个人计算机等类型的计算机设备。
35.代理服务器20是指将访问请求转发至后端服务器30的一端。其中,代理服务器20是网络信息的中转站,主要用于转发客户端10的访问请求,进行负载均衡处理。代理服务器20所指向的硬件,本质上是指计算机设备,其可以是电脑等类型的计算机设备,在本技术实施例中,代理服务器20可以为nginx设备,或者其他的代理设备。
36.需要说明的是,对于一个后端服务器30,其可以存在一个或者一个以上的代理服务器20,客户端10向后端服务器30发送的访问请求可以经由其中一个代理服务器20转发至后端服务器30。
37.后端服务器30可以由多个服务器组成的一种用于数据处理的服务器集群系统,例如可作为一个业务服务器,其可以负责进一步连接起相关音频数据服务器、视频流服务器以及其他提供相关支持的服务器等,以此构成逻辑上相关联的服务机群,来为相关的终端设备,例如图1中所示的客户端10提供服务。
38.在实际应用中,后端服务器30通常是以集群的方式出现的,例如,部署5台计算机作为后端服务器30,这5台计算机提供相同的功能,组成一个后端服务器30集群。当客户端10向代理服务器20发起请求时,代理服务器20根据转发规则,将请求转发给这5台计算机的一台继续处理,从而将客户端10的请求分散到5台计算机上处理,提高了数据处理能力。
39.为更好的理解本技术的技术方案,下面介绍说明相关技术中负载均衡的技术方案。
40.代理服务器在实现负载均衡性能时,需要获取上游(upstream)配置信息。上游配置信息用于指示配置代理服务器反向代理的若干个后端服务器信息以及负载均衡算法。后端服务器信息可以包括但是不限于:后端服务器30的ip地址和服务监听的端口号等。负载均衡算法可以是相关技术的任一种或者多种算法,例如轮询法、加权随机法和最小连接法等。
41.为提高代理服务器的负载均衡性能,代理服务器通常还会配置工作进程(worker进程),以通过工作进程快速处理客户端10的请求。工作进程的数量可以根据需要进行配置,一般与cpu内核数量对应。
42.具体的,以直播应用场景为例,当主播客户端10或者观众客户端10向代理服务器发起直播数据处理请求时,工作进程会接收到该直播数据处理请求,根据代理服务器的上游配置信息,将该直播数据处理请求转发到后端真实的服务器进行处理。
43.在直播高峰期,主播客户端10或者观众客户端10发送的直播数据处理请求多时,后端服务器30的压力增加,需要扩展服务器端,或者与后端服务器30连接的运维平台检测到后端服务器30发生变化时,需要对应修改代理服务器的上游配置信息。
44.在相关技术中,修改代理服务器的上游配置信息后,需要执行重加载操作,重新加载上游配置信息,而重加载操作会重启工作进程,一方面代理服务器使用一段时间后,代理服务器的工作进程数量会增加,均重启将导致系统资源的下降,而且重启时各个工作进程间互斥锁竞争,将导致qps(queries per second是每秒查询率,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,即每秒的响应请求数,也即是最大吞吐能力)急速下降;另一方面旧的工作进程要把当前的请求的任务处理完成才会释放工作进程的资源,所以若旧的工作进程和后端的服务器有死连接的话,则在一段时间内旧的工作进程个数会随着重加载的次数成倍数增加,导致代理服务器性能的下降,增加代理服务器的处理负担。
45.基于上述问题,本技术实施例提供了一种动态负载均衡方法。请参阅图2,图2为本技术实施例提供的动态负载均衡方法的流程示意图。本技术实施例的动态负载均衡方法包括如下步骤:
46.步骤s101:在代理服务器配置解析完后,获取代理服务器的第一上游配置信息,将第一上游配置信息保存至动态负载均衡模块;第一上游配置信息包括代理服务器反向代理的若干个服务器信息。
47.在代理服务器中配置有动态负载均衡模块,其是第三方插件,用于接收用户对第一上游配置信息的变更请求,并将变更请求转发到辅助插件,且定时检测辅助插件的最新的第一上游配置信息,并完成自身第一上游配置信息的更新。
48.在本技术实施例中,动态负载均衡模块为dynups模块(nginx_yy_dynups_module,简称dynups模块),本技术的动态负载均衡方法可以由动态负载均衡模块执行。具体的,由动态负载均衡模块获取上游配置信息并保存。在实际方案中,代理服务器存储有第一上游配置信息,在代理服务器配置解析完后,启动动态负载均衡模块获取第一上游配置信息存储至动态负载均衡模块。
49.第一上游配置信息包括一个或者一个以上的上游配置文件;上游配置文件包括配置代理服务器反向代理的若干个后端服务器信息以及负载均衡算法。后端服务器信息可以包括但是不限于:后端服务器的ip地址和服务监听的端口号等。负载均衡算法可以是相关技术的任一种或者多种算法,例如轮询法、加权随机法和最小连接法等。
50.步骤s102:在动态负载均衡模块启动工作进程时,为每个工作进程配置辅助插件,将第一上游配置信息存储至辅助插件,基于辅助插件构建工作进程集群;其中,每个工作进程基于各自辅助插件内的第一上游配置信息,将客户端发送的数据处理请求转发至反向代理的服务器。
51.在动态负载均衡模块启动工作进程时,将触发启动辅助插件,进而为每个工作进程配置辅助插件,将上游配置信息存储至工作进程对应的辅助插件。
52.应当理解的是,工作进程对应配套有一个动态负载均衡模块以及辅助插件,其中,动态负载均衡模块存储的第一上游配置信息用于指示正在使用的配置,辅助插件存储的第一上游配置信息用于指示最新变更的配置。
53.辅助插件是数据交互和存储的辅助工具,其设置在每个工作进程内。辅助插件一方面用于提供接口给动态负载均衡模块调用,以实现辅助插件与动态负载均衡模块的上游配置信息的动态同步,另一方面用于建立各个工作进程的协同连接,构建工作进程集群,实现各个工作进程之间的上游配置信息的动态同步。
54.在本技术实施例中,动态负载均衡模块还设置有共享内存,在工作进程启动调用辅助插件的时候,在共享内存中将记录该工作进程是第几个进程,以记录进程的启动计数。在重加载操作时,新一批进程的第一个进程启动的时候,会从共享内存中获取当前进程的启动计数,再基于工作进程集群广播至其他进程。但是,应当说明的,本技术的共享内存并不是用来存上游配置信息,只是记录进程的启动计数,在工作进程启动后,将不再调用共享内存的数据。
55.步骤s103:接收上游配置信息变更请求,基于工作进程集群,更新工作进程的辅助插件内的第一上游配置信息,获得第二上游配置信息,将第二上游配置信息同步到动态负载均衡模块。
56.上游配置信息变更请求可以是客户端发送的,也可以是后端服务器发送的,也可以是与后端服务器连接的运维设备发送的,具体的,以直播应用场景为例,在直播高峰期,主播客户端或者观众客户端发送的直播数据处理请求多时,后端服务器的压力增加,满足扩展后端服务器的条件时,或者与后端服务器连接的运维平台检测到后端服务器发生变化时,则后端服务器集群或者运维平台将向代理服务器发送上游配置信息变更请求。
57.上游配置信息变更请求可以包括新增或者修改更新的上游配置文件标识以及更新的上游配置文件内容等。
58.可以理解的是,接收上游配置信息变更请求后,将基于工作进程集群,更新每个工作进程的辅助插件内的第一上游配置信息,获得第二上游配置信息,同时,各个工作进程基于各自的辅助插件配套的动态负载均衡模块,将更新后的第二上游配置信息同步到动态负载均衡模块,进而再通过动态负载均衡模块将代理服务器初始存储的第一上游配置信息更新为第二上游配置信息。
59.本技术实施例通过在代理服务器配置解析完后,获取代理服务器的第一上游配置信息,将第一上游配置信息保存至动态负载均衡模块;在动态负载均衡模块启动工作进程时,为每个工作进程配置辅助插件,将第一上游配置信息存储至辅助插件,基于辅助插件构建工作进程集群;接收上游配置信息变更请求,基于工作进程集群,更新工作进程的辅助插件内的第一上游配置信息,获得第二上游配置信息,将第二上游配置信息同步到动态负载均衡模块,从而在上游配置信息改变时,无需进行重加载操作,无需重启工作进程,基于动态负载均衡模块、辅助插件以及工作进程集群,对工作进程和动态负载均衡模块的上游配置信息的动态同步调整,提高代理服务器性能,降低代理服务器的处理负担。
60.在一个可选的实施例中,步骤s102中基于所述辅助插件构建工作进程集群的步骤之后,包括:
61.步骤s1021:基于所述辅助插件,按照预设的主进程确定方式,确定其中一个工作
进程为主进程,其他工作进程为从进程。
62.工作进程是工作进程,所有的业务逻辑都在该进程中进行,当reactor线程接收到来自客户端的数据后,会将数据打包通过管道发送给某个工作进程。
63.如图3所示,主进程(master进程)又称管理进程,是工作进程中特殊的进程,只有一个,用于负责接收外部信息,如接收上游配置信息变更请求;主进程还向其他从进程定时同步主进程的状态信息。
64.从进程(salve进程),可以有多个,一般而言,工作进程中除了主进程,剩余的就是从进程,从进程用于负责处理外部请求。
65.可以理解的是,由于各个工作进程在同一代理服务器主机内,因此可以快速便捷地确定主进程。在一个可选的实施例中,可以通过进程锁,例如文件锁等方式确定主进程,具体的,在各个辅助插件随工作进程运行的时候,会尝试锁本地的一个文件,哪个辅助插件锁住了该文件,则该辅助插件对应的工作进程就是主进程。
66.步骤s103中接收上游配置信息变更请求,基于工作进程集群,更新每个工作进程的辅助插件内的第一上游配置信息的步骤,包括:
67.步骤s1031:接收上游配置信息变更请求,更新主进程对应的辅助插件内的第一上游配置信息,获得第二上游配置信息;基于工作进程集群,将第二上游配置信息同步至所有的从进程。
68.主进程根据接收的上游配置信息变更请求,将更新自身的辅助插件的上游配置信息,获得第二上游配置信息,并提供更新后的第二上游配置信息给从进程查询。
69.从进程将其自身的上游配置信息与工作进程集群内主进程或者其他进程的上游配置信息进行比较,当存在进程的上游配置信息比自身新时,则更新自身的上游配置信息。
70.本技术实施例通过在接收到上游配置信息变更请求时,更新主进程的辅助插件的上游配置信息,获得第二上游配置信息;基于工作进程集群,将第二上游配置信息同步至所有的从进程的辅助插件,进而使得各个进程更新时互不干涉,避免存在资源竞争,避免等待排队完成更新带来的更新效率低下问题,可以实现上游配置信息的高效快捷更新。
71.在一个可选的实施例中,步骤s1021中基于所述辅助插件,按照预设的主进程确定方式,确定其中一个工作进程为主进程,其他工作进程为从进程的步骤,包括:
72.步骤s10211:各个所述工作进程基于辅助插件执行文件锁操作,将成功锁住文件的辅助插件对应的工作进程确定为主进程,其他工作进程确定为从进程。
73.本技术中由于各个所述工作进程位于同一个代理服务器主机内,且处于同一工作进程集群内,因此,可以通过执行文件锁方式,快捷同步确定出主进程以及从进程。
74.在一个可选的实施例中,步骤s10211中各个所述工作进程基于辅助插件执行文件锁操作,将成功锁住文件的辅助插件对应的工作进程确定为主进程,其他工作进程确定为从进程的步骤之后,包括:
75.步骤s10212:若检测到主进程退出工作进程集群或者工作进程集群内的至少一个工作进程状态发生变化,控制工作进程集群的各个工作进程基于辅助插件重新执行文件锁操作,重新确定主进程以及从进程。
76.主进程会定时广播自己的状态信息(包括地址,名称,角色等),这样工作进程集群内的其他从进程能及时知道主进程是谁,主进程发生了变更等,同时,主进程也会监控各个
从进程的状态信息,因此,若检测到主进程退出工作进程集群,例如重加载后原来的主进程退出了工作进程集群;或者工作进程集群内的至少一个工作进程状态发生变化,控制工作进程集群的各个工作进程基于辅助插件重新执行文件锁操作,重新确定主进程以及从进程,从而确保集群内主进程的稳定,进而实现信息更新的准确性,动态负载均衡稳定。
77.在一个可选的实施例中,步骤s1031中基于工作进程集群,将主进程的辅助插件更新后的第二上游配置信息,同步至所有的从进程的步骤,包括:
78.步骤s10311:基于工作进程集群,根据流行病协议,将第二上游配置信息同步至所有的从进程。
79.流行病协议(epidemic protocol,又称gossip协议)是一种p2p的分布式协议,它的核心是在去中心化结构下,通过将信息部分传递,达到全集群的状态信息一致,任意节点的宕机和重启都不会影响消息的传播。
80.应当理解的是,各个从进程基于工作进程集群,更新各自的辅助插件的上游配置信息时,既可以根据从主进程的辅助插件获取的第二上游配置信息进行更新,也可以根据从其他从进程获取的第二上游配置信息进行更新,只要其他进程更新的时间节点比自己新,则从进程就进行更新。
81.具体的,在工作进程集群中,各个从进程的辅助插件存储的第一上游配置信息包括第一上游配置信息对应的更新时间、至少一个上游配置文件以及上游配置文件对应的文件标识;各个从进程的辅助插件更新后的第二上游配置信息包括第二上游配置信息对应的更新时间、更新后的上游配置文件以及更新后的上游配置文件对应的文件标识,在进行gossip协议同步时,当前的从进程将比较其他从进程或者主进程中上游配置信息的更新时间,若更新时间的时间差值不在预设时间范围,将更新时间较新的辅助插件内各个上游配置文件标识对应的哈希值与更新时间较旧的各个上游配置文件标识对应的哈希值进行比较;针对哈希值不同的上游配置文件,将更新时间较新的辅助插件内对应的上游配置文件,同步到更新时间较旧,更新更新时间较旧的上游配置信息的更新时间为当前时间。
82.本技术实施例中,根据流行病协议,将主进程的辅助插件更新后的第二上游配置信息,同步至所有的从进程的辅助插件,可以确保各个进程的上游配置信息保持一致。
83.请同时参阅图3和图4,在一个可选的实施例中,第一上游配置信息包括第一上游配置信息对应的更新时间、至少一个上游配置文件以及上游配置文件对应的文件标识;第二上游配置信息包括第二上游配置信息对应的更新时间、更新后的上游配置文件以及更新后的上游配置文件对应的文件标识;步骤s103中将第二上游配置信息同步到代理服务器本地的步骤,包括:
84.步骤s10321:比较同一工作进程内动态负载均衡模块和辅助插件中上游配置信息的更新时间。
85.在本技术的实施例中,动态负载均衡模块和辅助插件的上游配置信息中均配置有更新时间字段updatetime字段,以标识各自的上游配置信息的更新时间,通过比较代理服务器本地和辅助插件的updatetime字段值,来确定是否需要更新代理服务器本地。
86.步骤s10322:若动态负载均衡模块中上游配置信息的更新时间小于辅助插件中上游配置信息的更新时间,将辅助插件内各个上游配置文件标识对应的哈希值与动态负载均衡模块各个上游配置文件标识对应的哈希值进行比较。
87.可以理解的是,若动态负载均衡模块中上游配置信息的更新时间小于辅助插件中上游配置信息的更新时间,则说明辅助插件的上游配置信息进行了更新,此时,可以根据上游配置文件标识对应的哈希值进一步确定哪个文件更新,从而只需要将对应文件进行更新即可,无需对整个上游配置信息进行更改,可以提高更新效率。若动态负载均衡模块中上游配置信息的更新时间小于辅助插件中上游配置信息的更新时间,则说明辅助插件的上游配置信息没有进行更新,保持动态负载均衡模块中上游配置信息不变。
88.步骤s10323:针对哈希值不同的上游配置文件,调用辅助插件,将辅助插件内对应的上游配置文件,同步到动态负载均衡模块,更新动态负载均衡模块的上游配置信息的更新时间为当前时间。
89.本技术实施例通过比较动态负载均衡模块和辅助插件的上游配置信息的更新时间,初步确定动态负载均衡模块和辅助插件的上游配置信息是否一致,在不一致时,通过上游配置文件标识对应的哈希值来快捷确定更新的上游配置文件,从而只需要对辅助插件更新的上游配置文件进行更新即可,提高数据更新匹配效率和数据更新效率。
90.在一个可选的实施例中,步骤s10321中比较动态负载均衡模块和辅助插件中上游配置信息的更新时间的步骤,包括:按照预设时间间隔,比较动态负载均衡模块和辅助插件中上游配置信息的更新时间。本技术实施例按照预设时间间隔,比较动态负载均衡模块和辅助插件的上游配置信息的更新时间判断辅助插件是否进行更新,从而确保动态负载均衡模块和辅助插件的上游配置信息的动态同步。
91.在一个可选的实施例中,负载均衡方法还包括如下步骤:当调用辅助插件时,还根据辅助插件中更新后的上游配置文件的文件标识对应的哈希值,将哈希值更新保存至辅助插件以及动态负载均衡模块。本技术实施例在调用辅助插件时,更新辅助插件以及动态负载均衡模块的上游配置文件标识对应的哈希值,从而快捷确定出辅助插件以及动态负载均衡模块中变更的上游配置文件,确保动态负载均衡模块和辅助插件的上游配置信息的动态同步。
92.请参阅图5,其为本技术实施例提供的动态负载均衡装置的结构示意图。该装置200包括:
93.配置信息获取模块201,用于在代理服务器配置解析完后,获取代理服务器的第一上游配置信息,将第一上游配置信息保存至动态负载均衡模块;第一上游配置信息包括代理服务器反向代理的若干个服务器信息;
94.配置信息存储模块202,用于在动态负载均衡模块启动工作进程时,为每个工作进程配置辅助插件,将第一上游配置信息存储至辅助插件,基于辅助插件构建工作进程集群;其中,每个工作进程基于各自辅助插件内的第一上游配置信息,将客户端发送的数据处理请求转发至反向代理的服务器;
95.配置信息更新模块203,用于接收上游配置信息变更请求,基于工作进程集群,更新工作进程的辅助插件内的第一上游配置信息,获得第二上游配置信息,将第二上游配置信息同步到动态负载均衡模块。
96.需要说明的是,本技术实施例提供的动态负载均衡装置在执行动态负载均衡方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分为不同的功能模块,以完成以上描述
的全部或者部分功能。另外,本技术实施例提供的动态负载均衡装置与本技术实施例提供的动态负载均衡方法属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
97.本技术实施例提供的动态负载均衡装置的实施例可以应用在电子设备上,例如代理服务器上,该装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,其所在的电子设备可以包括处理器、网络接口、内存以及非易失性存储器,通过数据总线或其他公知方式互相共联。
98.请参阅图6,为本技术提供的电子设备的结构示意图。如图6所示,该电子设备16可以包括:处理器160、存储器161以及存储在该存储器161并可以在该处理器160上运行的计算机程序162,例如:基于动态负载均衡的应用程序;该处理器160执行该计算机程序162时实现上述实施例动态负载均衡方法中的步骤。
99.其中,该处理器160可以包括一个或多个处理核心。处理器160利用各种接口和线路连接电子设备16内的各个部分,通过运行或执行存储在存储器161内的指令、程序、代码集或指令集,以及调用存储器161内的数据,执行电子设备16的各种功能和处理数据,可选的,处理器160可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programble logic array,pla)中的至少一个硬件形式来实现。处理器160可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责触摸显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器160中,单独通过一块芯片进行实现。
100.其中,存储器161可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器161包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器161可用于存储指令、程序、代码、代码集或指令集。存储器161可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控指令等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器161可选的还可以是至少一个位于远离前述处理器160的存储装置。
101.本技术实施例还提供了一种计算机存储介质,该计算机存储介质可以存储有多条指令,该指令适用于由处理器加载并执行上述实施例的方法步骤,具体执行过程可以参见上述实施例的具体说明,在此不进行赘述。
102.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单
元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
103.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
104.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
105.在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
106.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
107.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
108.集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
109.本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变形。
技术特征:
1.一种动态负载均衡方法,其特征在于,包括如下步骤:在代理服务器配置解析完后,获取代理服务器的第一上游配置信息,将所述第一上游配置信息保存至动态负载均衡模块;所述第一上游配置信息包括代理服务器反向代理的若干个服务器信息;在所述动态负载均衡模块启动工作进程时,为每个工作进程配置辅助插件,将所述第一上游配置信息存储至所述辅助插件,基于所述辅助插件构建工作进程集群;其中,每个所述工作进程基于各自辅助插件内的所述第一上游配置信息,将客户端发送的数据处理请求转发至反向代理的服务器;接收上游配置信息变更请求,基于所述工作进程集群,更新所述工作进程的辅助插件内的第一上游配置信息,获得第二上游配置信息,将所述第二上游配置信息同步到所述动态负载均衡模块。2.根据权利要求1所述的动态负载均衡方法,其特征在于:所述基于所述辅助插件构建工作进程集群的步骤之后,包括:基于所述辅助插件,按照预设的主进程确定方式,确定其中一个工作进程为主进程,其他工作进程为从进程;所述接收上游配置信息变更请求,基于所述工作进程集群,更新每个工作进程对应的所述辅助插件内的第一上游配置信息的步骤,包括:接收上游配置信息变更请求,更新所述主进程的辅助插件内的第一上游配置信息,获得第二上游配置信息;基于所述工作进程集群,将所述第二上游配置信息同步至所有的从进程。3.根据权利要求2所述的动态负载均衡方法,其特征在于:所述基于所述辅助插件,按照预设的主进程确定方式,确定其中一个工作进程为主进程,其他工作进程为从进程的步骤,包括:各个所述工作进程基于所述辅助插件执行文件锁操作,将成功锁住文件的辅助插件对应的工作进程确定为主进程,其他工作进程确定为从进程。4.根据权利要求3所述的动态负载均衡方法,其特征在于:所述各个所述工作进程基于所述辅助插件执行文件锁操作,将成功锁住文件的辅助插件对应的工作进程确定为主进程,其他工作进程确定为从进程的步骤之后,包括:若检测到所述主进程退出所述工作进程集群或者所述工作进程集群内的至少一个工作进程状态发生变化,控制所述工作进程集群的各个工作进程基于所述辅助插件重新执行文件锁操作,重新确定主进程以及从进程。5.根据权利要求2所述的动态负载均衡方法,其特征在于:所述基于所述工作进程集群,将所述第二上游配置信息同步至所有的从进程的步骤,包括:基于所述工作进程集群,根据流行病协议,将所述第二上游配置信息同步至所有的从进程。6.根据权利要求1至5中任一项权利要求所述的动态负载均衡方法,其特征在于:所述第一上游配置信息包括第一上游配置信息对应的更新时间、至少一个上游配置文件以及所述上游配置文件对应的文件标识;所述第二上游配置信息包括第二上游配置信息
对应的更新时间、更新后的上游配置文件以及更新后的上游配置文件对应的文件标识;所述将所述第二上游配置信息同步到动态负载均衡模块的步骤,包括:比较同一工作进程内所述动态负载均衡模块和所述辅助插件中上游配置信息的更新时间;若所述动态负载均衡模块中上游配置信息的更新时间小于所述辅助插件中上游配置信息的更新时间,将所述辅助插件内各个上游配置文件标识对应的哈希值与所述动态负载均衡模块各个上游配置文件标识对应的哈希值进行比较;针对哈希值不同的上游配置文件,调用所述辅助插件,将所述辅助插件内对应的上游配置文件,同步到所述动态负载均衡模块,获得第二上游配置信息,更新所述动态负载均衡模块的上游配置信息的更新时间为当前时间。7.根据权利要求6所述的动态负载均衡方法,其特征在于:所述比较同一工作进程内所述动态负载均衡模块和所述辅助插件中上游配置信息的更新时间的步骤,包括:按照预设时间间隔,比较同一工作进程内所述动态负载均衡模块和所述辅助插件中上游配置信息的更新时间。8.根据权利要求7所述的动态负载均衡方法,其特征在于:所述方法还包括如下步骤:当调用所述辅助插件时,还根据所述辅助插件中更新后的上游配置文件的文件标识生成对应的哈希值,将所述哈希值更新保存至所述辅助插件以及所述动态负载均衡模块。9.一种动态负载均衡装置,其特征在于,包括:配置信息获取模块,用于在代理服务器配置解析完后,获取代理服务器的第一上游配置信息,将所述第一上游配置信息保存至动态负载均衡模块;所述第一上游配置信息包括代理服务器反向代理的若干个服务器信息;配置信息存储模块,用于在所述动态负载均衡模块启动工作进程时,为每个工作进程配置辅助插件,将所述第一上游配置信息存储至所述辅助插件,基于所述辅助插件构建工作进程集群;其中,每个所述工作进程基于各自辅助插件内的所述第一上游配置信息,将客户端发送的数据处理请求转发至反向代理的服务器;配置信息更新模块,用于接收上游配置信息变更请求,基于所述工作进程集群,更新所述工作进程的辅助插件内的第一上游配置信息,获得第二上游配置信息,将所述第二上游配置信息同步到所述动态负载均衡模块。10.一种电子设备,包括处理器和存储器;其特征在于,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至8中任意一项所述的动态负载均衡方法。11.一种计算机可读存储介质,其上储存有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至8中任意一项所述的动态负载均衡方法。
技术总结
本申请实施例涉及负载均衡领域,提供一种动态负载均衡方法、装置、介质以及电子设备,方法包括:在代理服务器配置解析完后,获取代理服务器的第一上游配置信息,将第一上游配置信息保存至动态负载均衡模块;在动态负载均衡模块启动工作进程时,为每个工作进程配置辅助插件,将第一上游配置信息存储至辅助插件,基于辅助插件构建工作进程集群;接收上游配置信息变更请求,基于工作进程集群,更新工作进程的辅助插件内的第一上游配置信息,将更新后的第二上游配置信息同步到动态负载均衡模块,从而在上游配置信息改变时,无需进行重加载操作,无需重启工作进程,基于动态负载均衡模块、辅助插件以及工作进程集群,对工作进程和动态负载均衡模块的上游配置信息动态同步调整,提高代理服务器性能,降低代理服务器的处理负担。降低代理服务器的处理负担。降低代理服务器的处理负担。
技术研发人员:刘洋
受保护的技术使用者:广州方硅信息技术有限公司
技术研发日:2023.03.28
技术公布日:2023/7/18
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:弹性电连接装置及电子设备的制作方法 下一篇:一种适宜残障人居住的智能家居系统