高并发多线程竞争共享资源架构
发布时间:2021-08-11 09:48
针对目前高并发场景下多线程竞争共享资源出现的系统性能问题以及共享资源不一致性等问题,提出一种基于数据缓存、分布式锁、消息队列、负载均衡4种技术的高性能系统架构。采用Redis集群实现数据高速缓存和分布式锁操作,利用消息队列实现通信异步和流量削峰,LVS和Nginx实现高可用的负载均衡。实验结果表明,该架构能有效提升系统性能,保证共享资源的安全性和一致性。
【文章来源】:计算机工程与设计. 2020,41(11)北大核心
【文章页数】:7 页
【部分图文】:
系统架构
现代Web系统一般都会采用缓存策略对直接进行数据库读写的传统数据操作方式进行改进。缓存大致主要分为两种:页面缓存和数据缓存。架构基于Redis集群实现数据缓存,具有故障容错等功能。Redis完全基于内存,通过Key-Value存储能获得良好的性能,尤其表现在良好的并行读写性能[10]。由于投票容错机制要求超过半数节点认为某个节点出现故障才会确定该节点下线,因此Redis集群至少需要3个节点,为了保证集群的高可用性,每个主节点都有从节点。实现Redis集群拓扑结构如图2所示。Redis集群由6台服务器搭建,分别由3个主节点和3个从节点组成,数据都是以Key-Value形式存储,不同分区的数据存放在不同的节点上,类似于哈希表的结构。使用哈希算法将Key映射到0-16383范围的整数,一定范围内的整数对应的抽象存储称为槽,每个节点负责一定范围内的槽,槽范围如图3所示。
Redis集群由6台服务器搭建,分别由3个主节点和3个从节点组成,数据都是以Key-Value形式存储,不同分区的数据存放在不同的节点上,类似于哈希表的结构。使用哈希算法将Key映射到0-16383范围的整数,一定范围内的整数对应的抽象存储称为槽,每个节点负责一定范围内的槽,槽范围如图3所示。集群启动时,会先从数据库服务器读取高并发请求中频繁访问的数据,其中包括共享资源数据,将数据转换为JSON数据格式或对象序列化初始化到Redis服务器中,数据会根据哈希算法新增到对应的节点中。应用服务器接收到高并发请求进行数据查询、修改或删除时,会随机把命令发给某个节点,节点计算并查看这个key是否属于自己的,如果是自己的就进行处理,并将结果返回,如果是其它节点的,会把对应节点信息(IP+地址)转发给应用服务器,让应用服务器重定向访问。Redis返回结果后,应用服务器会将数据发送到消息队列服务器中,并立即将返回结果给客户端。
【参考文献】:
期刊论文
[1]高并发考勤系统的性能优化研究与实现[J]. 冯洋阳. 电子设计工程. 2019(18)
[2]高并发Web电商系统的设计与优化[J]. 黄芝龙,徐莉莎,瞿少成. 计算机与数字工程. 2019(07)
[3]Nginx负载均衡技术的研究[J]. 梁剑. 太原师范学院学报(自然科学版). 2019(02)
[4]WEB前端性能优化[J]. 孙光懿,贾英霞. 鄂州大学学报. 2019(03)
[5]Redis分布式缓存实现与解析[J]. 周智. 信息通信. 2018(06)
[6]基于Kafka消息队列的新一代分布式电量采集方法研究[J]. 金双喜,李永,吴骅,武文广,李俊臣,张新艳. 智慧电力. 2018(02)
[7]基于分布式消息队列的企业级全文检索模型研究[J]. 李政,武彤. 计算机应用与软件. 2017(06)
[8]基于Nginx和Redis高并发web服务负载均衡的研究[J]. 蒲晓阳. 内江科技. 2016(01)
[9]支持透明集成的数据缓存机制[J]. 王彦士,王伟,刘朝辉,魏峻,黄涛. 计算机研究与发展. 2015(04)
硕士论文
[1]基于关系型数据库中SQL语句优化规则的研究[D]. 龚成鹏.新疆大学 2019
[2]高并发电商评论系统的设计与实现[D]. 朱辉辉.南京大学 2019
[3]高并发银行代收费网关的设计与实现[D]. 王婷.西安电子科技大学 2018
[4]基于Zookeeper的分布式范围锁的设计与实现[D]. 赵玉京.华中科技大学 2015
本文编号:3335942
【文章来源】:计算机工程与设计. 2020,41(11)北大核心
【文章页数】:7 页
【部分图文】:
系统架构
现代Web系统一般都会采用缓存策略对直接进行数据库读写的传统数据操作方式进行改进。缓存大致主要分为两种:页面缓存和数据缓存。架构基于Redis集群实现数据缓存,具有故障容错等功能。Redis完全基于内存,通过Key-Value存储能获得良好的性能,尤其表现在良好的并行读写性能[10]。由于投票容错机制要求超过半数节点认为某个节点出现故障才会确定该节点下线,因此Redis集群至少需要3个节点,为了保证集群的高可用性,每个主节点都有从节点。实现Redis集群拓扑结构如图2所示。Redis集群由6台服务器搭建,分别由3个主节点和3个从节点组成,数据都是以Key-Value形式存储,不同分区的数据存放在不同的节点上,类似于哈希表的结构。使用哈希算法将Key映射到0-16383范围的整数,一定范围内的整数对应的抽象存储称为槽,每个节点负责一定范围内的槽,槽范围如图3所示。
Redis集群由6台服务器搭建,分别由3个主节点和3个从节点组成,数据都是以Key-Value形式存储,不同分区的数据存放在不同的节点上,类似于哈希表的结构。使用哈希算法将Key映射到0-16383范围的整数,一定范围内的整数对应的抽象存储称为槽,每个节点负责一定范围内的槽,槽范围如图3所示。集群启动时,会先从数据库服务器读取高并发请求中频繁访问的数据,其中包括共享资源数据,将数据转换为JSON数据格式或对象序列化初始化到Redis服务器中,数据会根据哈希算法新增到对应的节点中。应用服务器接收到高并发请求进行数据查询、修改或删除时,会随机把命令发给某个节点,节点计算并查看这个key是否属于自己的,如果是自己的就进行处理,并将结果返回,如果是其它节点的,会把对应节点信息(IP+地址)转发给应用服务器,让应用服务器重定向访问。Redis返回结果后,应用服务器会将数据发送到消息队列服务器中,并立即将返回结果给客户端。
【参考文献】:
期刊论文
[1]高并发考勤系统的性能优化研究与实现[J]. 冯洋阳. 电子设计工程. 2019(18)
[2]高并发Web电商系统的设计与优化[J]. 黄芝龙,徐莉莎,瞿少成. 计算机与数字工程. 2019(07)
[3]Nginx负载均衡技术的研究[J]. 梁剑. 太原师范学院学报(自然科学版). 2019(02)
[4]WEB前端性能优化[J]. 孙光懿,贾英霞. 鄂州大学学报. 2019(03)
[5]Redis分布式缓存实现与解析[J]. 周智. 信息通信. 2018(06)
[6]基于Kafka消息队列的新一代分布式电量采集方法研究[J]. 金双喜,李永,吴骅,武文广,李俊臣,张新艳. 智慧电力. 2018(02)
[7]基于分布式消息队列的企业级全文检索模型研究[J]. 李政,武彤. 计算机应用与软件. 2017(06)
[8]基于Nginx和Redis高并发web服务负载均衡的研究[J]. 蒲晓阳. 内江科技. 2016(01)
[9]支持透明集成的数据缓存机制[J]. 王彦士,王伟,刘朝辉,魏峻,黄涛. 计算机研究与发展. 2015(04)
硕士论文
[1]基于关系型数据库中SQL语句优化规则的研究[D]. 龚成鹏.新疆大学 2019
[2]高并发电商评论系统的设计与实现[D]. 朱辉辉.南京大学 2019
[3]高并发银行代收费网关的设计与实现[D]. 王婷.西安电子科技大学 2018
[4]基于Zookeeper的分布式范围锁的设计与实现[D]. 赵玉京.华中科技大学 2015
本文编号:3335942
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3335942.html