交易平台中请求负载均衡策略的设计与实现

 2022-01-29 06:01

论文总字数:15843字

摘 要

随着Web应用不断地普及,B/S架构已经成功成为企业首选的架构。当Web应用并发数超过原有服务器所能承受的最大数量时,最简单暴力的方式是采取服务器硬件升级的方式来应付不断增加的并发量,但是这种方式代价太大,成本太高,如果淘汰原有的服务器硬件又会造成资源浪费。所以集群技术就应运而生了,集群技术能够有效地解决淘汰原有服务器硬件造成的资源浪费问题,同时还能够应对指数级增长的用户并发量。作为一个基于Web的交易平台,随着用户数量的不断增长,单一的服务器肯定不能承受住随之而来的压力,也不能保证用户服务得到完整的提供。所以建立一个集群系统能够有效的改善这种情况,同时使用负载均衡技术支持整个系统的可扩展性。

本论文首先基于Nginx负载均衡器搭建了一个支持十万量级并发度的集群系统,考虑到后端服务器性能的多样性及对系统用户并发数的要求,提出一种优化调整Nginx服务器加权轮询策略的负载均衡算法。该算法分析服务器访问日志,得出服务器性能状况,从而调整服务器权值,为提高集群整体的性能和稳定度提供了一种良好的解决方法。本论文进一步针对Nginx原有轮询算法与改进后的算法进行了实验分析。对比实验结果表明合理的调整有效权值能够提高上游服务器的响应能力和稳定性。

关键词:集群,负载均衡,Nginx

Abstract

With the continuous popularity of Web applications, B/S architecture has successfully become the preferred architecture between enterprises. When the increasing concurrency beyond which the server can take, the simplest way is hardware upgrading. But this way is too expensive to be accepted by enterprises. So the clustering technology was born. The cluster is an effective solution for the exponential growth of concurrency in Web applications. And at same time the load balancing technology can support the whole system more flexible and intelligent.

In this paper, a server cluster based on Nginx was set up according to the actual situation, and the Nginx revers proxy function modules was configured to realize the load balancing of this server cluster system. Thinking about the diversity of cluster system, the algorithm realized the recalculation of the servers' weights according to analyzing the ‘access.log’ file in Nginx. Furthermore, this paper compares the original Weighted Round Robin (WRR) algorithm with the optimal algorithm, which proves that reasonable adjusting the effective weight can improve the responsiveness and stability of the upstream servers.

KEY WORDS:Cluster; Load balancing; Nginx

目录

摘 要 I

Abstract II

第一章 绪 论 1

1.1 引言 1

1.2 国内外研究现状 1

1.3本文的研究目的和主要研究内容 2

1.4 本章小结 3

第二章 相关技术研究 4

2.1 集群中负载均衡技术的运用 4

2.2 Nginx服务器 7

2.2.1 Nginx架构 7

2.2.2 Nginx的负载均衡算法 9

2.3 本章小结 12

第三章 一种基于Nginx的负载均衡算法设计与实现 13

3.1 加权轮询算法的问题 13

3.2 基于Nginx的负载均衡算法设计思路 14

3.3 算法实现 16

3.4 本章小结 19

第四章 基于Nginx的负载均衡算法集群的测试 20

4.1 测试环境搭建 20

4.1.1 环境部署方案 20

4.1.2 软硬件配置 21

4.1.3 Nginx配置 22

4.2 测试用例设计 24

4.3 负载模拟 24

4.4 测试结果分析 25

4.5 本章小结 27

第五章 总结与展望 28

5.1 工作总结 28

5.2 进一步工作展望 29

致 谢 30

参考文献 31

图目录

图 1 典型的负载均衡集群系统体系结构 5

图 2 Nginx架构图 8

图 3 Nginx模块结构图 8

图 4 加权轮询算法流程图 10

图 5 IP_hash算法流程图 12

图 6 加权轮询算法下并发请求量与每秒平均响应请求量关系图 13

图 7 访问日志的基本格式 14

图 8 访问日志格式 15

图 9 访问日志分析流程图 17

图 10 算法流程图 19

图 11 环境部署网络逻辑图 20

图 12 模拟测试界面 24

图 13 访问日志格式 25

图 14 权值调整前后主机C并发请求量与每秒平均响应请求量的关系对比图 26

图 15 权值调整前后主机D并发请求量与每秒平均响应请求量的关系对比图 26

图 16 权值调整前后主机E并发请求量与每秒平均响应请求量的关系对比图 27

表目录

表 1 访问日志所支持的变量 14

表 2 客户端主机A软硬件配置 21

表 3 Nginx服务器主机B软硬件配置 21

表 4 后台服务器主机C软硬件配置 21

表 5 后台服务器主机D软硬件配置 21

表 6 后台服务器主机E软硬件配置 21

第一章 绪 论

1.1 引言

近年来互联网的不断发展,Web应用已经深入了人们的生活当中,人们的生活方式也得到巨大的改变。现如今大部分的日常活动都能够在互联网上进行,比如网上购物、股票交易等等。对于这种交易性质的网站随着网站不断地发展壮大,用户的数量的不断增长,如果仍然采用传统的C/S架构,当某一时刻的并发访问量超过了单台服务器的承受能力时,极大可能会造成整个系统的崩溃,所以解决这种爆炸式增长的并发量对交易频繁的Web应用来说至关重要。为了提高网络中服务器的工作能力,目前所采用的最常用解决方案就是基于集群技术和负载均衡技术的多服务器策略,即利用多台服务器组成一个集群系统,对用户提供统一的网络服务,结合利用负载均衡技术使得集群系统具备更好的扩展性和可用性,而集群服务器的数量也可根据业务量的需求大小进行调整[[1]]。

而负载均衡技术则能够大大提高集群服务器的整体性能,负载均衡也称之为负载平衡,主要作用就是将前端服务器高并发的请求均匀合理地分发到后台的服务器集群中。负载均衡技术中的核心就是负载均衡算法,一个好的算法能够达到负载均衡的要求,并且能够大大提高服务器集群的响应能力和容错能力,充分发挥集群的优势和特点。由此可见,负载均衡技术在集群中有着举足轻重的作用。

1.2 国内外研究现状

在二十世纪90年代出现了服务器集群的概念,随后国外许多厂商推出了专用于集群系统的负载均衡器,英特尔公司的网擎7170网络应用负载均衡器根据实时响应时间进行判断,将任务交由负载最轻的服务器来处理,来实现真正智能通信管理和有效地提高了服务器集群性能;Cisco Local Director是基于NAT技术的负载均衡器;IBM的Network Dispatcher采用报文转发策略。在国内,清华大学、国防科学技术大学、浙江大学等也有在研究集群系统负载均衡,其中清华大学实现了可扩展并行的Web服务器集群系统。清华大学的章文嵩博士在1998年5月主持开发了Linux虚拟服务器(LVS)项目,该项目在Linux内核中实现了三种基于IP层负载平衡调度的方法,能灵活高效地将一组服务器组成一个高可伸缩的、高可用的网络服务。通过在服务器集群中透明地加入和删除结点实现系统的伸缩性,通过检测结点或服务进程故障和正确地重置系统达到高可用性[[2]]。

剩余内容已隐藏,请支付后下载全文,论文总字数:15843字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;