CN111324462A - 一种具有Web负载均衡技术的系统及方法 - Google Patents
一种具有Web负载均衡技术的系统及方法 Download PDFInfo
- Publication number
- CN111324462A CN111324462A CN202010103695.1A CN202010103695A CN111324462A CN 111324462 A CN111324462 A CN 111324462A CN 202010103695 A CN202010103695 A CN 202010103695A CN 111324462 A CN111324462 A CN 111324462A
- Authority
- CN
- China
- Prior art keywords
- server
- nginx
- response time
- web
- cluster
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer And Data Communications (AREA)
Abstract
一种具有Web负载均衡技术的系统,包括Nginx服务器,Web服务器集群和数据库服务器;Nginx服务器通过一种负载均衡算法将客户端的请求发送给Web服务器集群中最适合的业务服务器;Web服务器集群由多个业务服务器组成,各个业务服务器之间紧密联系,共同处理客户端的请求;数据库服务器由Redis数据库和MySQL数据库组成,实现读写分离,将缓存记录存储于内存中,加快数据查询速度。以及提供一种具有Web负载均衡技术的方法。本发明能解决Web服务器中各业务服务器负载不均衡的问题,提高系统处理高并发事件的能力,保证系统在高压情况下的稳定性和可靠性。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种具有Web负载均衡技术的系统及方法。
背景技术
当今社会,无论是金融业务,O2O模式业务或是电子商务,都与蓬勃发展的互联网是紧密相关的,特别是人们的日常生活方式和生活水平,更是和互联网之间的联系变得日益紧密。但是,随着越来越多的人使用互联网,形成了庞大的网民数量和频繁的网络请求,这些爆炸式的并发Web请求给互联网带来了极其严峻的挑战,各种互联网应用承担着巨大的负载压力。
2019年天猫双11全天成交额为2684亿人民币,在零点过去1分36秒,成交额就已经突破100亿人民币,这种全民狂欢式购物对Web服务器来说无疑是一个巨大挑战,短时间的高并发会给数据接口带来巨大压力,当并发数超过一定临界点后,会造成Web服务器阻塞,难以准确及时地响应用户的访问请求,促使人们探索提升高并发Web服务器性能的方法。
大型企业一般通过大幅度提升服务器的硬件性能来处理Web服务器高并发这种问题。然而昂贵的硬件设备使得一些小型企业望而却步,小型企业从软件角度出发,通过优化应用系统的架构设计,采用集群系统来解决大量的Web访问请求,满足客户需求。
发明内容
为了解决以上问题,本发明提供了一种具有Web负载均衡技术的系统及方法,从数据库和集群系统入手,采用负载均衡技术将用户的并发请求平均分配给集群中的各个业务服务器,使得集群系统的平均响应时间少,吞吐量大,资源利用充分。
本发明的目的可以通过以下技术方案实现:
一种具有Web负载均衡技术的系统,包括数据库服务器,Nginx前端服务器和Web服务器集群;
所述的数据库服务器包括关系型数据库MySQL和缓存数据库Redis;
所述的关系型数据库MySQL主要用于存放持久化数据,将数据存储到硬盘中;
所述的缓存数据库Redis作为数据交换的缓冲区,用于存储使用频繁的数据。当客户端发起请求时,Nginx服务器收到请求后,首先会对存储于缓存中的数据进行查找,如果数据存在,则获取;否则就访问MySQL数据库;
所述的Nginx前端服务器用于处理用户发起的动态请求,通过预先配置的负载均衡算法,将请求分配到所述的Web服务器集群中的各个业务服务器;
所述的Web服务器集群由多个业务服务器组成;
进一步,所述的负载均衡算法是在Nginx加权轮询算法的研究基础上提出的一种动态自适应负载均衡算法。所述的动态自适应负载均衡算法通过分析Web服务器集群中各个业务服务器处理请求的响应时间参数并处理,将处理所得的负载因素添加到各个业务服务器权值的动态计算当中,选出最合适的业务服务器,从而实现将请求合理地分配给业务服务器,提高Web服务器的负载能力,增强系统的稳定性和可靠性;
在Nginx服务器的接收日志中可获取到N台服务器在近n次的响应请求所需的时间,将获取到的响应时间数据构成二维矩阵,记为其中通过计算各个业务服务器最后一次处理请求时响应时间得出它们的平均值作为所述的负载均衡算法中对Web服务器集群中各个业务服务器选择时的第一判断,将最后一次响应时间低于平均值的业务服务器划分为处于相对空闲的状态;反之则表示该业务服务器处于相对忙碌的状态。
进一步,所述的负载均衡算法会对处于相对空闲状态的业务服务器进行进一步的判断,若该业务服务器的权值大于已选择的最优服务器的当前权值,则更新最优服务器为当前选择的业务服务器;
过程如下:
假设在Web服务器集群中共有N台业务服务器,表示为S=[S1,S2,...,Si,...,SN],Si为第i个服务器节点。根据集群中各个业务服务器的CPU、内存、磁盘IO以及网络带宽性能为其设置初始权值Wi(代表第i个业务服务器的初始权值)。
则Rt表示上述N个业务服务器构成的Web服务器集群处理n次请求的响应时间构成的二维矩阵,公式如下:
上式即为改进的一种基于Nginx的动态自适应负载均衡算法。
所述的动态自适应负载均衡算法是以Nginx加权轮询算法为基础开发的,主要是对Nginx源代码的http文件夹下的ngx_http_upstream_round_robin.c文件进行修改,实现Nginx服务器读取Web服务器集群中各个业务服务器处理请求的响应时间信息,并将获取到的响应时间参数构成二维响应时间数组,计算集群中各个业务服务器最近n次响应时间的方差和最后一次响应的平均值。最后将上述获得到的数据运用到Nginx加权轮询算法中,作为衡量各业务服务器负载能力大小的标准。
一种具有Web负载均衡技术的方法,包括以下步骤:
S1、用户向服务器提交正向代理,Nginx服务器会对该请求进行处理,首先Nginx服务器会查询Redis服务器中的数据,若查询到结果则将数据信息返回给客户端;若无结果,则查询MySQL数据库中的数据;
S2、客户端发起动态请求时,Nginx服务器首先会读取接收日志中Web服务器集群最后一次响应时间参数和各业务服务器最近n次响应时间参数,计算得出Web服务器集群的平均响应时间和各业务服务器当前的响应时间;
S3、Nginx服务器会选取Web服务器集群中的一个业务服务器,若该服务器的响应时间小于集群的平均响应时间,则选中的服务器进行权值计算,和已选最优服务器的当前权值进行比较,若当前选择的服务器权值大于已选最优服务器的权值,则将当前服务器暂选为最优服务器;反之则选择下一个服务器重新进行响应时间的判断;
S4、当Nginx服务器对Web服务器集群中的所有服务器进行选择并判断后,则将客户端的请求发送给选取出来的最优服务器。
所述的步骤S3中,根据所述的步骤S2中平均响应时间计算出采用各个业务服务器响应时间的方差来衡量该业务服务器负载的稳定性,值越小则表示该业务服务器的负载状况越稳定,并将作为Web服务器集群中调节业务服务器权值的因素。
本发明的有益效果:
(1)加入Redis数据库作为MySQL数据库的缓存,将缓存记录放到内存中,实现了读写分离,减少了用户和数据库之间的交互,加快了查询速度。
(2)新的负载均衡算法通过读取Nginx接收日志获取Web服务器集群中各服务器的响应时间信息,计算出集群最后一次的平均响应时间和各个业务服务器最近n的响应时间,选出相对空闲的服务器进行下一步判断。
(3)所述的动态自适应负载均衡算法是在原有的Nginx加权轮询算法中加入了响应时间方差的概念,以此作为衡量Web服务器集群中各个业务服务器负载能力大小的依据,选择出最适合的业务服务器。
附图说明
图1是由本发明的数据库服务器、Nginx服务器以及Web服务器集群组成的系统框架图。
图2是基于Nginx加权轮询算法的动态自适应负载均衡算法。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1和图2,一种具有Web负载均衡技术的系统,包括Nginx服务器,Web服务器集群和数据库服务器;
所述的数据库服务器由关系型数据库MySQL和缓存数据库Redis构成;
所述的关系型数据库MySQL主要用于存放持久化数据,将数据存储到硬盘中;
所述的缓存数据库Redis作为数据交换的缓冲区,用于存储使用频繁的数据;
当用户向服务器提交正向代理时,Nginx服务器对客户端的请求进行处理,首先会查找存储在Redis数据库中的数据,如果数据存在,则返回获取到的资源;否则就访问MySQL数据库;
所述的Nginx服务器主要是处理客户端发起的请求,通过一种负载均衡算法,将客户端的请求发送给Web服务器集群中最合适的业务服务器,从而避免后端业务服务器出现过载现象;
所述的Web服务器集群由多个业务服务器构成,各个服务器节点之间紧密联系共同处理客户端的请求。
一种具有Web负载均衡技术的方法,步骤如下:
S1、用户向服务器提交正向代理,Nginx服务器会对该请求进行处理。首先Nginx服务器会查询Redis服务器中的数据,若查询到结果则将数据信息返回给客户端;若无结果,则查询MySQL数据库中的数据;
S2、客户端发起动态请求时,Nginx服务器首先会读取接收日志中Web服务器集群最后一次响应时间参数和各业务服务器最近n次响应时间参数,计算得出Web服务器集群的平均响应时间和各业务服务器当前的响应时间;
S3、Nginx服务器会选取Web服务器集群中的一个业务服务器,若该服务器的响应时间小于集群的平均响应时间,则选中的服务器进行权值计算,和已选最优服务器的当前权值进行比较,若当前选择的服务器权值大于已选最优服务器的权值,则将当前服务器暂选为最优服务器;反之则选择下一个服务器重新进行响应时间的判断;
S4、当Nginx服务器对Web服务器集群中的所有服务器进行选择并判断后,则将客户端的请求发送给选取出来的最优服务器。
所述的步骤S3中,根据所述的步骤S2中平均响应时间计算出采用各个业务服务器响应时间的方差来衡量该业务服务器负载的稳定性,值越小则表示该业务服务器的负载状况越稳定,并将作为Web服务器集群中调节业务服务器权值的因素。
算法的具体实施步骤为:
(1)初始化Nginx服务器,通过读取接收日志获取Web服务器集群中各个业务服务器最近n次的响应时间信息和该集群最后一次的响应时间信息,计算出每台服务器的响应时间和集群的平均响应时间;
(2)选取Web服务器集群中的其中一台服务器,判断该服务器的响应时间是否小于集群的平均响应时间。若该服务器的响应时间小于集群的响应时间,则表明该服务器处于相对空闲的状态,进行权值判断;
(3)若选中的服务器的权值大于已选最优服务器的当前权值,则更新已选最优服务器的权值为选中服务器的权值;
(4)当Nginx服务器对Web服务器集群中所有的业务服务器都进行了上述判断,则将客户端的请求发送给选择出的最优服务器。
Claims (10)
1.一种具有Web负载均衡技术的系统,其特征在于:所述系统包括Nginx服务器,Web服务器集群和数据库服务器;
所述的数据库服务器包括包括关系型数据库MySQL和缓存数据库Redis;
所述的关系型数据库MySQL主要用于存放持久化数据,将数据存储到硬盘中;
所述的缓存数据库Redis作为数据交换的缓冲区,用于存储使用频繁的数据,当客户端发起请求时,Nginx服务器收到请求后,首先会对存储于缓存中的数据进行查找,如果数据存在,则获取;否则就访问MySQL数据库;
所述的Nginx前端服务器用于处理用户发起的动态请求,通过预先配置的负载均衡算法,将请求分配到所述的Web服务器集群中的各个业务服务器;
所述的Web服务器集群由多个业务服务器组成。
2.如权利要求1所述的一种具有Web负载均衡技术的系统,其特征在于:所述的负载均衡算法是一种基于Nginx加权轮询算法的动态自适应负载均衡算法,所述的动态自适应负载均衡算法是在原有的Nginx加权轮询算法的基础上,通过读取接收Nginx服务器的接收日志,获取Web服务器集群中各个业务服务器最近n次的响应时间参数和集群最后一次的响应时间参数。
7.如权利要求6所述的一种基于Nginx加权轮询算法的动态自适应负载均衡算法,其特征在于:当Nginx服务器对Web服务器集群中的所有业务服务器进行选择并做出相应的判断,则最后将客户端的请求发送给选出的最优服务器。
8.如权利要求1所述的一种具有Web负载均衡技术的系统,其特征在于:所述的Web服务器集群由多个业务服务器组成,各个业务服务器之间紧密联系,共同处理客户端的请求;所述的多个业务服务器通过配置不同的端口构成集群。
9.一种如权利要求1所述的具有Web负载均衡技术的方法,其特征在于:所述方法包括以下步骤:
S1、用户向服务器提交正向代理,Nginx服务器会对该请求进行处理,首先Nginx服务器会查询Redis服务器中的数据,若查询到结果则将数据信息返回给客户端;若无结果,则查询MySQL数据库中的数据;
S2、客户端发起动态请求时,Nginx服务器首先会读取接收日志中Web服务器集群最后一次响应时间参数和各业务服务器最近n次响应时间参数,计算得出Web服务器集群的平均响应时间和各业务服务器当前的响应时间;
S3、Nginx服务器会选取Web服务器集群中的一个业务服务器,若该服务器的响应时间小于集群的平均响应时间,则选中的服务器进行权值计算,和已选最优服务器的当前权值进行比较,若当前选择的服务器权值大于已选最优服务器的权值,则将当前服务器暂选为最优服务器;反之则选择下一个服务器重新进行响应时间的判断;
S4、当Nginx服务器对Web服务器集群中的所有服务器进行选择并判断后,则将客户端的请求发送给选取出来的最优服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010103695.1A CN111324462A (zh) | 2020-02-20 | 2020-02-20 | 一种具有Web负载均衡技术的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010103695.1A CN111324462A (zh) | 2020-02-20 | 2020-02-20 | 一种具有Web负载均衡技术的系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111324462A true CN111324462A (zh) | 2020-06-23 |
Family
ID=71172808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010103695.1A Pending CN111324462A (zh) | 2020-02-20 | 2020-02-20 | 一种具有Web负载均衡技术的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324462A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935090A (zh) * | 2020-07-07 | 2020-11-13 | 上海微亿智造科技有限公司 | 工业智造物联网的大数据传输和持久化方法及系统 |
CN112579650A (zh) * | 2020-12-25 | 2021-03-30 | 恩亿科(北京)数据科技有限公司 | 基于Redis缓存的数据处理方法及系统 |
CN112596897A (zh) * | 2020-12-15 | 2021-04-02 | 中国建设银行股份有限公司 | 一种用于多租户隔离的方法及系统 |
CN113110933A (zh) * | 2021-03-11 | 2021-07-13 | 浙江工业大学 | 一种具有Nginx负载均衡技术的系统 |
CN113626463A (zh) * | 2021-07-31 | 2021-11-09 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 高并发访问下的Web性能优化方法 |
CN114048020A (zh) * | 2021-09-22 | 2022-02-15 | 北京中科金马科技股份有限公司 | 一种基于大数据客房管理系统 |
CN114173205A (zh) * | 2021-12-06 | 2022-03-11 | 倍智智能数据运营有限公司 | 一种在小程序上播放rtsp音视频流的方法 |
CN114268615A (zh) * | 2021-12-24 | 2022-04-01 | 成都知道创宇信息技术有限公司 | 基于tcp连接的业务处理方法和系统 |
CN115277708B (zh) * | 2022-07-18 | 2023-10-24 | 齐鲁工业大学 | 一种流媒体服务器负载动态分配方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111586A (zh) * | 2017-12-14 | 2018-06-01 | 重庆邮电大学 | 一种高并发支持的web集群系统及方法 |
CN110012098A (zh) * | 2019-04-04 | 2019-07-12 | 浙江工业大学 | 一种web高并发访问处理系统及方法 |
-
2020
- 2020-02-20 CN CN202010103695.1A patent/CN111324462A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111586A (zh) * | 2017-12-14 | 2018-06-01 | 重庆邮电大学 | 一种高并发支持的web集群系统及方法 |
CN110012098A (zh) * | 2019-04-04 | 2019-07-12 | 浙江工业大学 | 一种web高并发访问处理系统及方法 |
Non-Patent Citations (1)
Title |
---|
王利萍: "基于Nginx服务器集群负载均衡技术的研究与改进" * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935090A (zh) * | 2020-07-07 | 2020-11-13 | 上海微亿智造科技有限公司 | 工业智造物联网的大数据传输和持久化方法及系统 |
CN112596897A (zh) * | 2020-12-15 | 2021-04-02 | 中国建设银行股份有限公司 | 一种用于多租户隔离的方法及系统 |
CN112579650A (zh) * | 2020-12-25 | 2021-03-30 | 恩亿科(北京)数据科技有限公司 | 基于Redis缓存的数据处理方法及系统 |
CN113110933A (zh) * | 2021-03-11 | 2021-07-13 | 浙江工业大学 | 一种具有Nginx负载均衡技术的系统 |
CN113110933B (zh) * | 2021-03-11 | 2024-04-09 | 浙江工业大学 | 一种具有Nginx负载均衡技术的系统 |
CN113626463B (zh) * | 2021-07-31 | 2024-03-15 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 高并发访问下的Web性能优化方法 |
CN113626463A (zh) * | 2021-07-31 | 2021-11-09 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 高并发访问下的Web性能优化方法 |
CN114048020A (zh) * | 2021-09-22 | 2022-02-15 | 北京中科金马科技股份有限公司 | 一种基于大数据客房管理系统 |
CN114048020B (zh) * | 2021-09-22 | 2022-04-26 | 北京中科金马科技股份有限公司 | 一种基于大数据客房管理系统 |
CN114173205A (zh) * | 2021-12-06 | 2022-03-11 | 倍智智能数据运营有限公司 | 一种在小程序上播放rtsp音视频流的方法 |
CN114268615B (zh) * | 2021-12-24 | 2023-08-08 | 成都知道创宇信息技术有限公司 | 基于tcp连接的业务处理方法和系统 |
CN114268615A (zh) * | 2021-12-24 | 2022-04-01 | 成都知道创宇信息技术有限公司 | 基于tcp连接的业务处理方法和系统 |
CN115277708B (zh) * | 2022-07-18 | 2023-10-24 | 齐鲁工业大学 | 一种流媒体服务器负载动态分配方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324462A (zh) | 一种具有Web负载均衡技术的系统及方法 | |
US6493810B1 (en) | Method and system for allocating cache memory for a network database service | |
CN113110933B (zh) | 一种具有Nginx负载均衡技术的系统 | |
US9576024B2 (en) | Hierarchy of servers for query processing of column chunks in a distributed column chunk data store | |
US6938256B2 (en) | System for balance distribution of requests across multiple servers using dynamic metrics | |
US10922316B2 (en) | Using computing resources to perform database queries according to a dynamically determined query size | |
US7617181B2 (en) | Optimization of database network traffic based upon data-use analysis | |
CN110933139A (zh) | 一种解决Web服务器高并发的系统及方法 | |
AU2004266017B2 (en) | Hierarchical management of the dynamic allocation of resources in a multi-node system | |
CN112866136B (zh) | 业务数据处理方法和装置 | |
WO2022062184A1 (zh) | 高并发查询方法、智能终端及存储介质 | |
CN112835698A (zh) | 一种基于异构集群的请求分类处理的动态负载均衡方法 | |
US20050246441A1 (en) | Automatic assignment of services to servers in a multi-server system | |
US20220358106A1 (en) | Proxy-based database scaling | |
AU2004285241B2 (en) | Tracking space usage in a database | |
CN115718644A (zh) | 一种面向云数据中心的计算任务跨区迁移方法及系统 | |
CN110515555B (zh) | 基于多路对象存储服务的高可靠性企业级存储系统及读写方法 | |
Zhou et al. | Data placement in parallel database systems | |
US11455305B1 (en) | Selecting alternate portions of a query plan for processing partial results generated separate from a query engine | |
US20230195726A1 (en) | Selecting between hydration-based scanning and stateless scale-out scanning to improve query performance | |
CN110688097A (zh) | 高可靠高可用高性能融合型软件定义存储系统及方法 | |
CN114020218B (zh) | 混合重复数据删除调度方法及系统 | |
CN116108036A (zh) | 一种后端系统数据离线导出方法和装置 | |
CN113377544A (zh) | 一种基于负荷数据动态更新率的web集群负载均衡方法 | |
CN113377866A (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 |