面向高并发的分布式购物平台设计与实现
发布时间:2021-01-23 18:47
互联网的迅速发展,同时也带动了国内外电子商务的发展。越来越多的人选择通过电商平台实现商品交易。网络交易量越来越大,无疑给电商平台的体系架构带来了新的挑战。传统的基于SSM框架的集中式架构已经无法满足系统吞吐量和并发量的要求。在大数据量的访问下,如何应对复杂的业务逻辑和突发性的访问峰值,确保电商平台能够给用户提供可靠稳定的服务,就变成了技术上需要解决的问题。为了解决上述问题,本文引入了一款高性能的分布式服务框架Dubbo,通过将其与SSM框架集成来搭建新的电商平台体系架构,从而实现一个支持高并发的、负载均衡的、扩展性强的分布式购物平台。本文的主要研究内容如下:(1)使用分布式服务框架Dubbo集成Spring、SpringMVC,Mybatis框架作为购物平台的整体架构,同时使用Zookeeper、Redis、Solr、ActiveMQ、FastDFS、Nginx等技术完成一个支持高负载、高并发的分布式购物平台的设计与开发。(2)为了提高系统的并发性能,本文在使用Nginx做反向代理实现Web端负载均衡的基础上,采用了一种可以动态调节权重的负载均衡算法对Nginx的负载均衡性能进行优化,...
【文章来源】:浙江工商大学浙江省
【文章页数】:87 页
【学位级别】:硕士
【部分图文】:
Dubbo基础架构图
面向高并发的分布式购物平台设计与实现9图2.2Spring架构图其中,Core包是Spring的核心包,其主要作用是完成Bean实体对象的创建,WEB包主要用于和其他框架的对接,从而帮助Spring完成上下文操作,ORM包则提供了很多API接口方便其他框架的集成,比如JDO、iBatis等框架。Test包通过集成Junit可以实现对代码的单元测试功能。Context包是Spring的上下文管理包,其中包括了很多访问Bean的方式;AOP包的作用主要是提高项目开发中代码的复用率从而进一步提高开发效率。(2)SpringMVC框架:该框架能够接收来自用户端的HTTP请求,并从请求中获取到相关参数以方便后台使用,是一种表现层的框架[30]。其通过将模型(Model)、控制器(Controller)和视图(View)分离开来,通过彼此之间的配合来完成具体业务功能的实现,由于每个模块相对独立,因此可以很方便地实现功能模块的复用且易于扩展和维护,从而使系统更加灵活[31]。SpringMVC可以跟Spring框架完美对接,相比另一款表现层框架Struts2,其开发效率、和性能都要好很多,而且易于上手,是时下非常流行的表现层框架。(3)MyBatis框架:在2010年以前,该框架被称为iBatis,之后被改名为Mybatis[31],其支持高级映射和存储过程,是Apache旗下的一种轻量级的持久层框架。在此之前,业务层和持久层的对接通常需要使用JDBC来实现,过程比较繁琐且代码量大,而Mybatis采用注解和xml文件配置的方式省去了所有JDBC代码,让开发者通过使用简单的注解或配置相关的xml文件便可轻松实现java实体对象和数据库表对象的属性之间的一一映射,
面向高并发的分布式购物平台设计与实现10使用起来十分方便。图2.3是MyBatis的架构图[32]:图2.3Mybatis架构图其中,接口层提供了很多API给应用程序调用,外部操作通过调用具体的API来完成与数据处理层的交互工作,数据处理层则主要负责底层数据的处理工作,可以通过SQL语言对数据进行参数映射、SQL解析、SQL执行、结果集处理等操作。基础设施层位于最底层,该部分主要包括数据源、连接池、缓存管理、事务管理、日志等。2.3NginxNginx的设计者是俄罗斯的程序设计师IgorSysoev[33],Nginx由C语言开发,是一款性能优秀的Http服务器,还可以用作电子邮件代理和反向代理服务。其可以支撑的最大并发量高达五万,当然具体的并发性能取决于Nginx的部署环境和硬件配置,但从官方给出的测试报告中依然看出Nginx优秀的并发性能。由于Nginx不仅运行性能稳定,对CPU、内存等资源的消耗非常低,而且开源,因此被广泛应用于企业系统架构中。当系统的并发请求量比较大时,如果单台服务器无法快速的对请求进行处理和响应,则需要部署服务器集群来处理请求,通常会使用Nginx做反向代理,并通过执行合适的负载均衡策略将请求均匀分配给多个服务器节点,从而在最大程度上提高整个服务器集群的处理能力并避免某台服务器负载过高而宕机但仍有服务器闲置的情况。
【参考文献】:
期刊论文
[1]Nginx负载均衡技术的研究[J]. 梁剑. 太原师范学院学报(自然科学版). 2019(02)
[2]基于Nginx的负载均衡技术研究与优化[J]. 戴伟,马明栋,王得玉. 计算机技术与发展. 2019(03)
[3]基于权重轮询负载均衡算法的优化[J]. 汪佳文,王书培,徐立波,郭家军,俞成海. 计算机系统应用. 2018(04)
[4]基于JavaEE技术的网上商城管理系统的设计与实现[J]. 徐光耀,马佳琳. 办公自动化. 2017(22)
[5]基于Nginx服务器负载均衡技术的研究与改进[J]. 张云,许江淳,李玉惠,王志伟,史鹏坤. 软件. 2017(08)
[6]基于Solr的混合介质存储在淘宝系统中的研究与应用[J]. 汪洋,崔炜. 电子设计工程. 2017(15)
[7]基于Dubbo框架的视频分享系统分析[J]. 翟金亭,吴钦卿. 中国新通信. 2016(11)
[8]基于Dubbox的分布式服务架构设计与实现[J]. 谢璐俊,杨鹤彪. 软件导刊. 2016(05)
[9]An Efficient Load Balancing Approach for N-Hierarchical Web Server Cluster[J]. PAK Ilchol,QIAO Baiyou,SHEN Muchuan,ZHU Junhai,CHEN Donghai. Wuhan University Journal of Natural Sciences. 2015(06)
[10]基于负载权值的负载均衡算法[J]. 张玉芳,魏钦磊,赵膺. 计算机应用研究. 2012(12)
硕士论文
[1]基于Nginx负载均衡的动态分配技术研究[D]. 张娜.哈尔滨工程大学 2019
[2]基于Nginx的高并发访问服务器的研究与应用[D]. 陈大才.中国科学院大学(中国科学院沈阳计算技术研究所) 2018
[3]基于SSM框架的B2C网上商城系统的设计与实现[D]. 陈峰.湖南大学 2018
[4]“互联网+”背景下电商系统架构的优化研究与实现[D]. 李凡.河北工程大学 2017
[5]基于Nginx的Web服务器负载均衡策略改进与实现[D]. 覃川.西南交通大学 2017
[6]基于Nginx高并发Web服务器的改进与实现[D]. 张尧.吉林大学 2016
[7]Spring框架技术分析及应用研究[D]. 翟剑锟.中国科学院大学(工程管理与信息技术学院) 2013
[8]基于Nginx和Memcached的高并发WEB服务器设计[D]. 戴华.复旦大学 2013
[9]基于资源状况的流媒体传输网络负载均衡算法研究[D]. 李师尧.东北大学 2012
本文编号:2995739
【文章来源】:浙江工商大学浙江省
【文章页数】:87 页
【学位级别】:硕士
【部分图文】:
Dubbo基础架构图
面向高并发的分布式购物平台设计与实现9图2.2Spring架构图其中,Core包是Spring的核心包,其主要作用是完成Bean实体对象的创建,WEB包主要用于和其他框架的对接,从而帮助Spring完成上下文操作,ORM包则提供了很多API接口方便其他框架的集成,比如JDO、iBatis等框架。Test包通过集成Junit可以实现对代码的单元测试功能。Context包是Spring的上下文管理包,其中包括了很多访问Bean的方式;AOP包的作用主要是提高项目开发中代码的复用率从而进一步提高开发效率。(2)SpringMVC框架:该框架能够接收来自用户端的HTTP请求,并从请求中获取到相关参数以方便后台使用,是一种表现层的框架[30]。其通过将模型(Model)、控制器(Controller)和视图(View)分离开来,通过彼此之间的配合来完成具体业务功能的实现,由于每个模块相对独立,因此可以很方便地实现功能模块的复用且易于扩展和维护,从而使系统更加灵活[31]。SpringMVC可以跟Spring框架完美对接,相比另一款表现层框架Struts2,其开发效率、和性能都要好很多,而且易于上手,是时下非常流行的表现层框架。(3)MyBatis框架:在2010年以前,该框架被称为iBatis,之后被改名为Mybatis[31],其支持高级映射和存储过程,是Apache旗下的一种轻量级的持久层框架。在此之前,业务层和持久层的对接通常需要使用JDBC来实现,过程比较繁琐且代码量大,而Mybatis采用注解和xml文件配置的方式省去了所有JDBC代码,让开发者通过使用简单的注解或配置相关的xml文件便可轻松实现java实体对象和数据库表对象的属性之间的一一映射,
面向高并发的分布式购物平台设计与实现10使用起来十分方便。图2.3是MyBatis的架构图[32]:图2.3Mybatis架构图其中,接口层提供了很多API给应用程序调用,外部操作通过调用具体的API来完成与数据处理层的交互工作,数据处理层则主要负责底层数据的处理工作,可以通过SQL语言对数据进行参数映射、SQL解析、SQL执行、结果集处理等操作。基础设施层位于最底层,该部分主要包括数据源、连接池、缓存管理、事务管理、日志等。2.3NginxNginx的设计者是俄罗斯的程序设计师IgorSysoev[33],Nginx由C语言开发,是一款性能优秀的Http服务器,还可以用作电子邮件代理和反向代理服务。其可以支撑的最大并发量高达五万,当然具体的并发性能取决于Nginx的部署环境和硬件配置,但从官方给出的测试报告中依然看出Nginx优秀的并发性能。由于Nginx不仅运行性能稳定,对CPU、内存等资源的消耗非常低,而且开源,因此被广泛应用于企业系统架构中。当系统的并发请求量比较大时,如果单台服务器无法快速的对请求进行处理和响应,则需要部署服务器集群来处理请求,通常会使用Nginx做反向代理,并通过执行合适的负载均衡策略将请求均匀分配给多个服务器节点,从而在最大程度上提高整个服务器集群的处理能力并避免某台服务器负载过高而宕机但仍有服务器闲置的情况。
【参考文献】:
期刊论文
[1]Nginx负载均衡技术的研究[J]. 梁剑. 太原师范学院学报(自然科学版). 2019(02)
[2]基于Nginx的负载均衡技术研究与优化[J]. 戴伟,马明栋,王得玉. 计算机技术与发展. 2019(03)
[3]基于权重轮询负载均衡算法的优化[J]. 汪佳文,王书培,徐立波,郭家军,俞成海. 计算机系统应用. 2018(04)
[4]基于JavaEE技术的网上商城管理系统的设计与实现[J]. 徐光耀,马佳琳. 办公自动化. 2017(22)
[5]基于Nginx服务器负载均衡技术的研究与改进[J]. 张云,许江淳,李玉惠,王志伟,史鹏坤. 软件. 2017(08)
[6]基于Solr的混合介质存储在淘宝系统中的研究与应用[J]. 汪洋,崔炜. 电子设计工程. 2017(15)
[7]基于Dubbo框架的视频分享系统分析[J]. 翟金亭,吴钦卿. 中国新通信. 2016(11)
[8]基于Dubbox的分布式服务架构设计与实现[J]. 谢璐俊,杨鹤彪. 软件导刊. 2016(05)
[9]An Efficient Load Balancing Approach for N-Hierarchical Web Server Cluster[J]. PAK Ilchol,QIAO Baiyou,SHEN Muchuan,ZHU Junhai,CHEN Donghai. Wuhan University Journal of Natural Sciences. 2015(06)
[10]基于负载权值的负载均衡算法[J]. 张玉芳,魏钦磊,赵膺. 计算机应用研究. 2012(12)
硕士论文
[1]基于Nginx负载均衡的动态分配技术研究[D]. 张娜.哈尔滨工程大学 2019
[2]基于Nginx的高并发访问服务器的研究与应用[D]. 陈大才.中国科学院大学(中国科学院沈阳计算技术研究所) 2018
[3]基于SSM框架的B2C网上商城系统的设计与实现[D]. 陈峰.湖南大学 2018
[4]“互联网+”背景下电商系统架构的优化研究与实现[D]. 李凡.河北工程大学 2017
[5]基于Nginx的Web服务器负载均衡策略改进与实现[D]. 覃川.西南交通大学 2017
[6]基于Nginx高并发Web服务器的改进与实现[D]. 张尧.吉林大学 2016
[7]Spring框架技术分析及应用研究[D]. 翟剑锟.中国科学院大学(工程管理与信息技术学院) 2013
[8]基于Nginx和Memcached的高并发WEB服务器设计[D]. 戴华.复旦大学 2013
[9]基于资源状况的流媒体传输网络负载均衡算法研究[D]. 李师尧.东北大学 2012
本文编号:2995739
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2995739.html