云平台下数据交互和存储的优化设计与实现
发布时间:2021-11-07 00:11
云计算的应用成为一种不可避免的趋势,平台的作用转变为向终端用户提供数据交互服务。从纵向来看,服务集群是一个分层系统架构,分别通过不同服务层处理对应的服务请求和数据处理。从横向来看,集群节点的协同作用保证了降低单一应用的压力,同时对服务处理的异常情况做出及时处理。在实际应用场景中,用户的请求状态是不可预测的。系统处于正常访问状态时,服务架构能够提供较为稳定的数据支持,但是当出现大量的服务请求或异常请求时,需要系统架构针对服务架构、搭建成本、性能提高等多个方面进行改进。部分服务组件有较为成形的组件设计和提升性能的解决方案,但不适合现有的平台体系结构。在不断地比较相应的优化方案来提升系统的吞吐量和响应时间的同时,也考虑一些成熟的中间件是否能在集群中作为中间协调者。最后结合服务端请求服务的特点,提出了一些优化的方案和系统结构改进处理思路。本文从负载应用场景出发,介绍了不同应用负载的处理策略。针对服务节点对代理请求的处理,将应用层分为两个处理核心:请求流量处理和请求分发处理。针对不同处理层不同的处理重点,设计了相应核心业务处理算法和突发流量的令牌请求策略,保证高优先级请求可以迅速得到处理;对限流...
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:92 页
【学位级别】:硕士
【部分图文】:
反向代理用户请求在某些现有PaaS的体系结构中,例如Heroku,SinaAppEngine等,最外层称为反向代理层
电子科技大学硕士学位论文图3-7负载限流算法协同流程图是否存在令牌且可获取令牌,若成功则通过请求,若失败则拒绝请求。该算法的步骤如下:(1)Nginx限流层获取所有连接的用户信息,从请求数据中获取用户的Uid,调用函数判断当前的流量控制策略是否正常打开。若未打开则按照非拦截请求不需要限流层过滤请求。(2)若开启拦截策略,并需要将当前用户信息绑定到请求中,同时获取用户的请求资源权重sum_weight,并判断请求的优先范围以及对应的令牌token。(3)调用令牌桶的令牌获取函数获取对应的令牌,若当前请求能够获取对应优先级的令牌则通过请求。(4)如果当前请求失败,则按照拒绝策略进行处理。2.基于访问时间优先级服务策略在windows_time时间窗格记录用户访问接口的频率,针对不同访问接口有不同的访问优先级,用户请求策略时根据访问时间和处理消耗获取优先级。在windows_time时间窗口中对应可通过访问的次数remain_times,同时用expire_time来标记窗口的到期时间,超过时间下次请求将等待一段时间间隔。该策略的算法步骤如下:(1)获取当前请求的Url和用户Uid,判断当前当前服务策略的地址与请求地址是否匹配。若匹配失败则采用其他拦截策略,若成功则采用当前策略。22
器处理查询数据过程中需要的数据往往分配到多个不同的Redis实例中,不同Redis实例存储仅存储需要查询的数据,即存储的是一个数据子集。即在单台数据缓存服务出现问题的情况下,仍能保证整个分布式集群的完整性。Redis为解决此类问题设计了多种集群方案:客户端分区、服务器集群分区、代理中间件分区。1)RedisSharding(客户端分区)是基于客户端设置分配规则,由分配客户端来决定实际分配。通常我们需要对key进行hash散列,将数据分配到相应的Redis节点上,RedisSharding为了保证所有请求能均匀落在不同的Redis节点上在如下图3-8所示的不同节点,可以通过节点和端口进行访问。图3-8客户端分区这样分配方式十分简单且计算并不复杂,但在云平台环境中存在更换或者增删数据节点时需要重新配置和重启,对于已经发布的应用来说是不可行的。2)基于中间件代理分区是增加一个代理服务来处理来自客户端的请求,客户端直接与代理中间件交互,而不直接与服务端进行交互,然后分配到后端处理。目前有基于Twemproxy和基于Codis代理缓存框架,其大致的框架如图3-9。Redis直接连接到Redis代理,保证了代理的无状态性,同时增加了一个config配置去保证redis节点增删情况下,支持Redis平滑的迁移数据,可以手动去调整数据,或者通过槽机制来自动分配保证其高可用性。由于需要代理转发而导致服务使用性能下降,同时扩展服务时需要再修改代理层的逻辑进行处理。3)基于Redis服务集群分区采用去中心化的设计[45],客户端请求数据会发送给其中的一台服务器由该服务器判断是否能被该服务器处理,若不能被该服务26
【参考文献】:
期刊论文
[1]动态与静态相结合的Flash负载均衡策略[J]. 曾林,王慧,唐晓柯,李德建,于宝东. 单片机与嵌入式系统应用. 2020(01)
[2]LVS资源负载策略应用研究[J]. 李姗姗,高岑,王美吉,李冬梅,焦艳菲. 计算机系统应用. 2019(06)
[3]基于Web2.0思维模式的MOOC平台建设趋势[J]. 周琼,陈越,江艳霞. 中国信息技术教育. 2019(11)
[4]基于Kafka的分布式能效管理平台的设计与实现[J]. 朱幼普,卢军. 计算机与数字工程. 2018(12)
[5]基于Nginx的Web服务器性能优化研究[J]. 黄静,李炳. 浙江理工大学学报(自然科学版). 2016(04)
[6]基于多管理节点的乐观锁协议[J]. 郝娉婷,胡亮,姜婧妍,车喜龙. 吉林大学学报(工学版). 2017(01)
[7]分布式数据库协调技术—Zookeeper[J]. 李东辉,吴小志,朱广新,郑磊,胡俊军. 科技展望. 2016(01)
[8]分布式同步系统Zookeeper的优化[J]. 唐海东,武延军. 计算机工程. 2014(04)
[9]Memcached和Redis在高速缓存方面的应用[J]. 王心妍. 无线互联科技. 2012(09)
[10]面向移动终端的云监控研究[J]. 徐海浪,袁家斌. 计算机科学. 2012(08)
博士论文
[1]云计算基础软件平台的研究和实践[D]. 代栋.中国科学技术大学 2013
硕士论文
[1]蜂窝网络下的内容缓存技术研究[D]. 徐蓬.南京邮电大学 2019
[2]基于Redis分布式存储的负载平衡及性能优化研究[D]. 周旭东.南京邮电大学 2019
[3]面向云服务的服务协同与负载均衡策略的设计与实现[D]. 杨贾冰.北京邮电大学 2019
[4]基于应用感知的多出口流量调度系统的设计与实现[D]. 吴振宇.北京邮电大学 2019
[5]基于Nginx负载均衡的动态分配技术研究[D]. 张娜.哈尔滨工程大学 2019
[6]大规模虚拟网络镜像分发优化策略研究[D]. 胡尧.哈尔滨工业大学 2018
[7]基于移动应用App的高并发性能研究与应用[D]. 汪佳文.浙江理工大学 2018
[8]混合型分布式存储系统中的存储策略研究与实现[D]. 吴程熙.东南大学 2017
[9]基于Nginx服务器集群负载均衡技术的研究与改进[D]. 王利萍.山东大学 2015
[10]基于动态反馈的加权最小连接数服务器负载均衡算法研究[D]. 张慧芳.华东理工大学 2013
本文编号:3480782
【文章来源】:电子科技大学四川省 211工程院校 985工程院校 教育部直属院校
【文章页数】:92 页
【学位级别】:硕士
【部分图文】:
反向代理用户请求在某些现有PaaS的体系结构中,例如Heroku,SinaAppEngine等,最外层称为反向代理层
电子科技大学硕士学位论文图3-7负载限流算法协同流程图是否存在令牌且可获取令牌,若成功则通过请求,若失败则拒绝请求。该算法的步骤如下:(1)Nginx限流层获取所有连接的用户信息,从请求数据中获取用户的Uid,调用函数判断当前的流量控制策略是否正常打开。若未打开则按照非拦截请求不需要限流层过滤请求。(2)若开启拦截策略,并需要将当前用户信息绑定到请求中,同时获取用户的请求资源权重sum_weight,并判断请求的优先范围以及对应的令牌token。(3)调用令牌桶的令牌获取函数获取对应的令牌,若当前请求能够获取对应优先级的令牌则通过请求。(4)如果当前请求失败,则按照拒绝策略进行处理。2.基于访问时间优先级服务策略在windows_time时间窗格记录用户访问接口的频率,针对不同访问接口有不同的访问优先级,用户请求策略时根据访问时间和处理消耗获取优先级。在windows_time时间窗口中对应可通过访问的次数remain_times,同时用expire_time来标记窗口的到期时间,超过时间下次请求将等待一段时间间隔。该策略的算法步骤如下:(1)获取当前请求的Url和用户Uid,判断当前当前服务策略的地址与请求地址是否匹配。若匹配失败则采用其他拦截策略,若成功则采用当前策略。22
器处理查询数据过程中需要的数据往往分配到多个不同的Redis实例中,不同Redis实例存储仅存储需要查询的数据,即存储的是一个数据子集。即在单台数据缓存服务出现问题的情况下,仍能保证整个分布式集群的完整性。Redis为解决此类问题设计了多种集群方案:客户端分区、服务器集群分区、代理中间件分区。1)RedisSharding(客户端分区)是基于客户端设置分配规则,由分配客户端来决定实际分配。通常我们需要对key进行hash散列,将数据分配到相应的Redis节点上,RedisSharding为了保证所有请求能均匀落在不同的Redis节点上在如下图3-8所示的不同节点,可以通过节点和端口进行访问。图3-8客户端分区这样分配方式十分简单且计算并不复杂,但在云平台环境中存在更换或者增删数据节点时需要重新配置和重启,对于已经发布的应用来说是不可行的。2)基于中间件代理分区是增加一个代理服务来处理来自客户端的请求,客户端直接与代理中间件交互,而不直接与服务端进行交互,然后分配到后端处理。目前有基于Twemproxy和基于Codis代理缓存框架,其大致的框架如图3-9。Redis直接连接到Redis代理,保证了代理的无状态性,同时增加了一个config配置去保证redis节点增删情况下,支持Redis平滑的迁移数据,可以手动去调整数据,或者通过槽机制来自动分配保证其高可用性。由于需要代理转发而导致服务使用性能下降,同时扩展服务时需要再修改代理层的逻辑进行处理。3)基于Redis服务集群分区采用去中心化的设计[45],客户端请求数据会发送给其中的一台服务器由该服务器判断是否能被该服务器处理,若不能被该服务26
【参考文献】:
期刊论文
[1]动态与静态相结合的Flash负载均衡策略[J]. 曾林,王慧,唐晓柯,李德建,于宝东. 单片机与嵌入式系统应用. 2020(01)
[2]LVS资源负载策略应用研究[J]. 李姗姗,高岑,王美吉,李冬梅,焦艳菲. 计算机系统应用. 2019(06)
[3]基于Web2.0思维模式的MOOC平台建设趋势[J]. 周琼,陈越,江艳霞. 中国信息技术教育. 2019(11)
[4]基于Kafka的分布式能效管理平台的设计与实现[J]. 朱幼普,卢军. 计算机与数字工程. 2018(12)
[5]基于Nginx的Web服务器性能优化研究[J]. 黄静,李炳. 浙江理工大学学报(自然科学版). 2016(04)
[6]基于多管理节点的乐观锁协议[J]. 郝娉婷,胡亮,姜婧妍,车喜龙. 吉林大学学报(工学版). 2017(01)
[7]分布式数据库协调技术—Zookeeper[J]. 李东辉,吴小志,朱广新,郑磊,胡俊军. 科技展望. 2016(01)
[8]分布式同步系统Zookeeper的优化[J]. 唐海东,武延军. 计算机工程. 2014(04)
[9]Memcached和Redis在高速缓存方面的应用[J]. 王心妍. 无线互联科技. 2012(09)
[10]面向移动终端的云监控研究[J]. 徐海浪,袁家斌. 计算机科学. 2012(08)
博士论文
[1]云计算基础软件平台的研究和实践[D]. 代栋.中国科学技术大学 2013
硕士论文
[1]蜂窝网络下的内容缓存技术研究[D]. 徐蓬.南京邮电大学 2019
[2]基于Redis分布式存储的负载平衡及性能优化研究[D]. 周旭东.南京邮电大学 2019
[3]面向云服务的服务协同与负载均衡策略的设计与实现[D]. 杨贾冰.北京邮电大学 2019
[4]基于应用感知的多出口流量调度系统的设计与实现[D]. 吴振宇.北京邮电大学 2019
[5]基于Nginx负载均衡的动态分配技术研究[D]. 张娜.哈尔滨工程大学 2019
[6]大规模虚拟网络镜像分发优化策略研究[D]. 胡尧.哈尔滨工业大学 2018
[7]基于移动应用App的高并发性能研究与应用[D]. 汪佳文.浙江理工大学 2018
[8]混合型分布式存储系统中的存储策略研究与实现[D]. 吴程熙.东南大学 2017
[9]基于Nginx服务器集群负载均衡技术的研究与改进[D]. 王利萍.山东大学 2015
[10]基于动态反馈的加权最小连接数服务器负载均衡算法研究[D]. 张慧芳.华东理工大学 2013
本文编号:3480782
本文链接:https://www.wllwen.com/kejilunwen/shengwushengchang/3480782.html
最近更新
教材专著