一种web集群缓存的利用系统及优化方法与流程

文档序号:17441570发布日期:2019-04-17 04:50阅读:131来源:国知局
一种web集群缓存的利用系统及优化方法与流程

本发明涉及计算机网络技术领域,特别涉及一种web集群缓存的利用系统及优化方法。



背景技术:

随着云计算与web2.0的进一步发展,许多企业或组织时常会面对更多的需求:大量的并发用户访问、每秒数以千计的并发事务处理、灵活的弹性与可伸缩性、低延时等,传统事务型应用开始向极限事务处理型应用转变。集群式缓存作为一种关键的极限事务处理技术,可为事务型应用提供高吞吐率、低延时的技术解决方案。其延迟写机制可提供更短的响应时间,同时极大地降低数据库的事务处理负载,分阶段事件驱动架构,可以支持大规模、高并发的事务处理请求。此外,集群式缓存在内存中管理事务并提供数据的一致性保障,采用数据复制技术实现高可用性,具有较优的扩展性与性能组合。



技术实现要素:

本发明的目的是基于背景技术,提供一种web集群缓存的利用系统及优化方法,解决现有技术中,随着系统业务的变化和增加,用户请求的热点数据存在发生变化的可能,当某一时间段热点数据的请求列表产生变化,根据数据分析服务器当下一次的分析来指导web服务器进行数据库表缓存,会导致web服务器缓存的内容频繁更新、缓存命中率降低、系统产生波动的技术问题。

为了达到上述的技术效果,本发明采取以下技术方案:

一种web集群缓存的利用系统,由负载均衡服务器、数据分析服务器和web集群服务器组成,所述web集群服务器由多个目标web服务器构成;

所述数据分析服务器用于记录和统计用户请求的日志信息,根据历史热点记录和节点概率链表得到包含需访问的数据库表和目标服务器链表两个字段的分类标准;负载均衡服务器用于根据数据分析服务器确定的分类标准确定用户请求的目标web服务器,并将用户请求转发到对应的目标web服务器,并通过移动指针遍历备选目标web服务器的链表集合,实现负载的均衡;目标web服务器用于接收负载均衡服务器转发的用户请求,并将具有较高用户请求量的数据库表缓存到内存中,在接收到相应的用户请求时则直接从内存中读取数据库表中对应的数据生成结果并返回。

同时,本发明还公开了一种web集群缓存的优化方法,通过上述的一种web集群缓存的利用系统实现,所述web集群缓存的优化方法具体包括数据预处理流程及请求转发处理流程,所述数据预处理流程包括完成用户请求的记录、统计和分析,在用户请求对应的目标web服务器上提前加载需要访问的数据库表,所述请求转发处理流程包括通过负载均衡服务器对比接收的用户请求与分类标准,确定请求对应转发的目标web服务器并完成请求的转发,再由目标web服务器接收用户请求并处理,最后将结果返回。

进一步地,所述数据预处理流程具体包括以下步骤:

s1:根据系统的业务变化快慢的特性设定节点概率的衰减过程:

s1.1根据系统特点确定初始值ninit:ninit=n0e-al

其中,ninit为衰减概率初始值,代表当前时间段的节点在整个历史记录中的重要程度,n0=1,l决定初始值的偏移量,a为衰减系数,表示随着时间变化历史对于未来预测的影响的大小变化,a和l的值根据系统的业务变化快慢的特性自行定义;

s1.2根据完成值nfinish的定义公式:nfinish=nkf=n0e-a(m+l),根据定义的参数a和l,依次增加k值,计算每个节点的完成值nfinish,nfinish为衰减概率完成值,代表了节点对预测具有指导意义的最小概率,当nfinish=nkf=n0e-a((k+1)t+l)<nmin时,停止计算,此时,k的值即为概率链表和历史热点数据集合链表的长度;其中,nmin是nfinish的一个参考值,用来表示历史节点对预测的概率权重的下限,m表示时间间隔单位为秒,若预设的时间间隔为t,则m=kt,k为整数。

s1.3根据步骤s1.2确定的k值,分别计算1~k范围内整数节点对应的节点概率,计算公式为:nkf=n0e-a(kt+l),将节点概率按照从小到大的顺序存储到节点概率链表中;

s2.数据分析服务器保存预设时间段内用户请求数据库的日志记录,每条请求日志均需记录用户请求需访问的数据库表信息;根据历史日志记录确定用户请求的分类,将访问相同数据库表的用户请求划分为一类,根据二八原则得到初始热点数据表的集合;

s3.遍历k次热点数据的链表记录,结合步骤s1得到的节点概率链表,构造key-value的键值对:如果key值不存在,取节点概率链表对应节点的值赋值给value;如果key值已经存在,使用在value值得基础上加上节点的概率值,将map按照value值进行降序排序,按照排序选择value值之和不超过value值总和80%的数据库表作为热点集合。

进一步地,所述步骤s1.2中,nmin=0.2。

进一步地,所述请求转发处理流程具体包括以下步骤:

s4.根据步骤s3得到的热点数据表集合和历史的分类标准,对比热点数据表集合和历史的分类标准中的数据表,筛选出需要更新的分类标准和新增的热点数据表,将更新的分类标准中对应的目标web服务器标号放回未分配的集合,对新增的热点数据表根据单位时间内请求量和目标web服务器的传输容量计算需要的目标web服务器数量,从未分配列表选择对应数量的目标web服务器构造新的分类标准;

s5:目标web服务器接收数据分析服务器转发的分类请求,确定需要加载的数据库表的名称,从数据库加载表的内容到内存中;

s6:负载均衡服务器接收用户请求,对比数据分析服务器的分类标准确定用户请求所属的分类,负载均衡服务器从分类标准的目标服务器集合中通过指针指向的节点确定目标服务器的编号;

s7:目标web服务器接收负载均衡服务器转发的用户请求,并对请求的内容进行处理,从内存中获取对应的数据作为结果返回。

进一步地,所述步骤s2具体包括以下步骤:

s2.1数据分析服务器保存预设时间段内用户请求数据库的日志记录,每条请求日志均需记录用户请求需访问的数据库表信息;

s2.2将访问相同数据库表的用户请求划分为一类,统计各个分类的用户请求量,按照请求量从大到小的顺序进行排序,对排序在前20%的分类进行定义,生成包含编号以及数据库表的分类标准即热点数据库表集合;

s2.3将步骤s2.2得到的热点数据库表集合加入到热点数据历史记录的双向循环链表,检查双向循环链表的长度,如果链表长度不大于k,不再进行操作;如果链表的长度大于k,则删除热点数据历史记录的双向循环链表的下一个节点。

进一步地,所述步骤s3具体包括以下步骤:

s3.1获取热点数据表历史记录的指针指向的当前节点的数组集合,将指针移动的次数记录到变量i,i初始值为1,从数组集合中取出第一个数据库表的名字,将数据库表名作为key值;同时,取节点概率链表中下标为k-1的节点概率作为value值,将key-value键值对存储到map集合中,按此依次取出数组集合中剩下的数据库表名字,将对应的key-value存储到map集合中;

s3.2在继续移动指针之前,先判断节点概率链表的下一个热点数据集合是否为空,如果下一个热点数据集合不为空,移动热点数据表历史记录的指针,否则,集合遍历完毕;

s3.3从热点数据库表和概率链表中分别取出任意i阶段的数据库表明和对应的概率值,在进行map集合的赋值操作时,先获取当前数据库表名在map集合中是否已经存在值,如果已经存在,则将value值与节点概率值的和作为新的value保存到map集合中,如果不存在,则将节点概率值作为value存储到map集合中;

s3.4热点数据库表和概率链表遍历完毕后,将map集合按照value值进行降序排序,最后,选择value值之和最接近但不超过value值总和的80%的数据表集合作为缓存的热点数据表集合。

进一步地,所述步骤s4具体包括以下步骤:

s4.1从历史的分类标准中取出数据库表名,查询取出的数据库表名在热点数据表集合中是否存在,如果存在,移除map集合中对应key-value键值对;如果不存在,删除对应的分类标准,并将目标web服务器的集合放回到未分配的服务器列表中;

s4.2从map集合中取出数据库表名,根据记录的数据库表对应的请求量,为分类请求指定足够数量的目标web服务器,根据目标web服务器的服务能力和单位时间内该分类的用户请求量计算出目标web服务器的数量,即服务器的服务能力大于用户请求的服务,其中,目标web服务器的服务能力包括服务器的处理能力和传输流量,将服务器的编号作为集合以循环链表的形式写入分类标准的目标服务器字段;

s4.3根据目标web服务器字段的定义,将各个分类标准发送到对应的单个或者多个目标web服务器上,以缓存分类对应的数据库表,然后将所有的分类标准发送到负载均衡服务器。

进一步地,所述步骤s6具体包括以下步骤:

s6.1负载均衡服务器接收并存储数据分析服务器发送的所有分类标准,在每个分类的目标web服务器字段的循环链表中任意选择一个节点,使指针指向这个节点;

s6.2在接收用户请求时,对比分类标准以确定用户请求所属的分类,并执行如下转发策略:

s6.2.1获取指针指向节点的编号,将用户请求转发到编号所代表的目标web服务器上,之后,移动指针到下一个节点位置;

s6.2.2在分类标准中新增一个字段,用于存放cpu占用率超过预设占用率阈值的目标web服务器编号的集合,

s6.2.3监控目标web服务器字段中目标web服务器的cpu占用率,一旦目标web服务器的cpu占用率达到预设占用率阈值,将此目标web服务器的编号存储到步骤s6.2.2新增的字段中;

s6.2.4监控步骤s6.2.2字段中目标web服务器的cpu占用率,当目标web服务器的cpu占用率降至不超过预设占用率阈值的二分之一时,将此目标web服务器对应的编号再次插入到目标web服务器的循环链表中。

进一步地,所述步骤s7具体包括以下步骤:

s7.1目标web服务器接收数据分析服务器发送的分类请求,确定分类请求对应的数据库表,从数据库中加载表内容到内存中;

s7.2目标web服务器接收负载均衡服务器转发的用户请求,确定用户请求的分类需访问的数据库表与内存中的缓存内容相一致,从内存中加载数据信息并返回用户请求。

本发明与现有技术相比,具有以下的有益效果:

通过本发明的web集群缓存的利用系统及优化方法,可有效解决现有的web集群缓存的系统存在的当某一时间段热点数据的请求列表产生变化,根据数据分析服务器当下一次的分析来指导web服务器进行数据库表缓存,会导致web服务器缓存的内容频繁更新,缓存命中率降低,系统产生波动的问题。

附图说明

图1是本发明的web集群缓存的利用系统的示意图。

图2是本发明的web集群缓存的优化方法的示意图。

具体实施方式

下面结合本发明的实施例对本发明作进一步的阐述和说明。

实施例:

实施例一:

如图1所示,一种web集群缓存的利用系统,该系统由数据分析服务器、负载均衡服务器和web集群服务器组成。数据分析服务器负责记录和统计用户请求的日志信息,根据历史热点记录和节点概率链表得到包含需访问的数据库表和目标服务器链表两个字段的分类标准;负载均衡服务器根据数据分析服务器发送的分类标准进行用户请求分类的确定和转发处理,通过移动指针遍历备选服务器的链表集合,实现负载的均衡;web集群服务器负责缓存具有较高用户请求量的数据库表到内存中,之后,在接收到此分类的用户请求后,从内存中获取结果并返回。

其中,数据分析服务器的工作主要包括以下方面:

保存节点概率到概率链表,即根据系统的设定定义概率衰减过程,包括衰减初始值、衰减时间长度以及衰减完成值,计算每个节点对应的概率,存储到节点概率链表中。同时,定义历史热点数据库表记录的长度为k。保存当前时间段内用户请求数据库的历史日志记录,每条请求日志均需记录用户请求的类型和请求对应的数据库表信息;保存前k-1次热点数据表的历史分析记录,其中,此热点数据表分析记录与web服务器缓存的热点数据表历史记录存在差异,是数据分析服务器根据当前时间段内用户请求的历史日志得到的web服务器缓存的热点数据表集合记录,称为初始热点数据表集合,而使用历史记录预测得到的热点数据表集合,称为缓存热点数据表集合。保存上一次的分类标准,包括数据库表名和对应的目标服务器。具体包括:

第一,根据系统的业务变化快慢的特性设定节点概率的衰减过程:

具体的,衰减概率初始值ninit的公式为:ninit=n0e-al,衰减概率初始值ninit代表当前时间段的节点在整个历史记录中的重要程度,n0=1,l决定初始值的偏移量。控制l,能够改变初始值的大小。在业务变化较快,新业务较多的系统中,可以将衰减的初始值可以设定高些,补偿新业务数据在基于历史预测中的占比;在业务变化较少的系统中,衰减的初始值可以设定低些,减少新业务数据的概率占比。a表示衰减系数,表示随着时间变化,历史对于未来预测的影响的大小变化。

a和l的确定方法具体为:根据数据分析服务器的记录和分析,可以得到初始热点数据表集合,假设长度为k。使用任意连续三个热点数据表集合进行分析,分别对应i-1、i和i+1三个预设时间长度为t的阶段(i为不小于2的整数)。对比i阶段和i+1阶段的初始热点数据集合,得到i阶段在i+1阶段初始热点数据集合中出现的概率,即影响权重。假设,i阶段的初始热点数据表集合为{student,user,order,product},i+1阶段的初始热点数据表集合为{student,user,order,picture},则概率pi=3/4=0.75。按照同样的方式,对比i-1阶段和i+1阶段的初始热点数据,可以得到第i-1阶段相对于i+1阶段的影响权重pi-1。预设时间间隔为t,在n倍kt时间长度重复计算得到n*k-2个pi和pi-1,n的取值为整数,建议取值范围为(10,50)。如果n的取值太小,影响概率的准确性;但是取值太大,会增加不必要的计算。对(n*k-2)次概率分别取平均,得到i阶段和i-1阶段对于i+1阶段热点数据集合的平均权重

在第i个阶段:

根据联合求解,得到a和l的值。

进行衰减概率完成值nfinish的定义:

衰减概率完成值nfinish的定义公式为:nfinish=nkf=n0e-a(m+l),衰减概率完成值nfinish代表节点对预测具有指导意义的最小概率。其中,m表示时间间隔,单位为秒。在本系统中,预设的时间间隔为t,则m=kt,k为整数。nfinish需要预设一个参考值nmin用来表示历史节点对预测的概率权重的下限。设nmin=0.2,根据定义的参数a和l,依次增加k值,当nfinish=nkf=n0e-a((k+1)t+l)<0.2时,停止计算。此时,k的值即为概率链表和历史热点数据集合链表的长度。

根据确定的k值,分别计算1~k范围内整数节点对应的概率,按照概率从小到大的顺序存储到概率链表中。

其中,1~k范围内整数节点对应的概率的计算公式为:nkf=n0e-a(kt+l),具体的,以上概率分析任务,理论上只需要在系统初始化或者存在较大调整时进行。

第二,根据当前时间段内历史日志记录确定初始热点数据库表集合:

首先,根据记录的数据库历史日志,按照分类标准确定用户请求的分类以及需要访问的数据库表。确定分类标准:用户请求需访问的数据库表为同一数据库表。

然后,根据记录的数据库历史日志,按照分类标准确定用户请求的分类以及需要访问的数据库表。具体包括:统计每个类型的用户请求量,即请求次数;统计各个分类的用户请求量,按照请求量从大到小的顺序进行排序。如果用户请求量相同,计算请求的数据量作为排序依据,即按照请求数据量的从大到小进行排序从而得到热点数据库表集合。考虑在大部分的业务场景下,80%的访问量都集中在20%的热数据上(二八原则),对排序在前20%的分类进行定义(注:(k1,k2…k10)列表,取(k1,k2)),生成包含编号以及数据库表的分类标准。选取的分类占比之和可以小于20%,但是不能超过20%。

然后,将上述步骤得到的热点数据库表集合加入到热点数据历史记录的双向循环链表:移动尾部指针,加入数组集合到链表尾部。之后,检查链表的长度。如果链表长度不小于k,不再进行操作;如果链表的长度大于k,移动指针删除热点数据历史记录的双向循环链表的下一个节点。

第三,根据k次热点数据的链表记录预测下一时间段的历史记录中每一个数据表成为热点的概率:

首先,获取指针指向的当前节点的数组集合,将指针移动的次数记录到变量i,i初始值为1。从数组集合中取出第一个数据库表的名字,将数据库表名作为key值;同时,取链表中下标为k-1的概率作为value值,将key-value键值对存储到map集合中。依次取出数组集合中剩下的数据库表名字,将对应的key-value存储到map中。

然后,在继续移动存储热点数据表名集合的链表的指针之前,需要先判断概率链表的next是否为空,next表示指向下一个热点数据集合。如果i<1,next不为空,移动热点数据表历史记录的指针。否则,next为空,集合遍历完毕。

然后,从热点数据库表和概率链表两个表中分别取出任意i阶段的数据库表名和对应的概率值。此时,在进行map的赋值操作时,需要先获取当前数据库表名在map中是否已经存在值。如果已经存在,需要将value值与节点对应的概率值的和作为新的value保存到map中。如果不存在,将概率值作为value存储到map中。

最后,热点数据库表和概率链表遍历完毕后,将map集合按照value值进行降序排序。选择value值之和最接近但不超过value值总和的80%的数据表集合作为缓存的热点数据表集合。

第四,根据热点数据表集合和历史分类标准生成新的分类标准:

首先,从分类标准中取出数据库表名,查询取出的数据库表名在热点集合中是否存在。如果存在,移除map中对应key-value键值对;如果不存在,删除对应的分类标准,将web服务器的集合放回到未分配的服务器列表中。

然后,从map中取出数据库表名,根据记录的数据库表对应的请求量,为分类请求指定足够数量的web服务器。根据服务器的服务能力如单位时间内传输容量和单位时间内该分类的用户请求量计算出目标web服务器的数量,使得服务器的服务能力大于用户请求的服务,其中,web服务器的服务能力包括服务器的处理能力和传输流量两个方面。将服务器的编号作为集合以循环链表的形式写入分类标准的目标服务器字段。

最后,根据分类标准中目标服务器字段的定义,将各个分类标准发送到对应的单个或者多个web服务器上,以缓存分类对应的数据库表。之后,将所有的分类标准发送到负载均衡服务器。

负载均衡服务器的工作主要包括以下方面:

第一,接收并存储数据分析服务器发送的所有分类标准,在每个分类的目标服务器字段的循环链表中任意选择一个节点,使指针指向这个节点。

第二,在接收用户请求时,对比分类标准以确定用户请求所属的分类。执行如下转发策略:

步骤一,获取指针指向节点的编号,将用户请求转发到编号所代表的web服务器上。之后,移动指针到下一个节点位置。

步骤二,在分类标准中新增一个字段,用于存放cpu占用率超过预设值的服务器编号的集合。

步骤三,监控目标服务器字段中web服务器的cpu占用率,一旦web服务器的cpu占用率达到设定的值,将此web服务器的编号存储到上一步新增的字段中。

步骤四,监控步骤二字段中web服务器的cpu占用率,当web服务器的cpu占用率降到预设值的二分之一以下时,被此服务器对应的编号再次插入到目标服务器的链表中。

web集群服务器的工作主要包括以下方面:

第一,目标web服务器接收数据分析服务器发送的分类请求,确定分类请求对应的数据库表,从数据库中加载表内容到内存中。

第二,目标web服务器接收负载均衡服务器转发的用户请求,确定用户请求的分类需访问的数据库表与内存中的缓存内容相一致,从内存中加载数据信息并返回用户请求。

实施例二

如图2所示,一种web集群缓存的优化方法,通过上述的web集群缓存的利用系统实现,具体包括数据预处理流程及请求转发处理流程,所述数据预处理流程包括完成用户请求的记录、统计和分析,在用户请求对应的目标web服务器上提前加载需要访问的数据库表,所述请求转发处理流程包括通过负载均衡服务器对比接收的用户请求与分类标准,确定请求对应转发的目标web服务器并完成请求的转发,再由目标web服务器接收用户请求并处理,最后将结果返回。

具体包括以下步骤:

s1.根据系统的业务变化快慢的特性设定节点概率的衰减过程:

s1.1根据系统特点确定初始值ninit:ninit=n0e-al

其中,ninit为衰减概率初始值,代表当前时间段的节点在整个历史记录中的重要程度,n0=1,l决定初始值的偏移量,a为衰减系数,表示随着时间变化历史对于未来预测的影响的大小变化,a和l的值根据系统的业务变化快慢的特性自行定义;

具体的,a和l的确定方法:根据数据分析服务器的记录和分析,可以得到初始热点数据表集合,假设长度为k。现在使用任意连续三个热点数据表集合进行分析,分别对应i-1、i和i+1三个预设时间长度为t的阶段。对比i阶段和i+1阶段的初始热点数据集合,得到i阶段在i+1阶段初始热点数据集合中出现的概率,即影响权重。假设,i阶段的初始热点数据表集合为{student,user,order,product},i+1阶段的初始热点数据表集合为{student,user,order,picture},则概率pi=3/4=0.75。按照同样的方式,对比i-1阶段和i+1阶段的初始热点数据,可以得到第i-1阶段相对于i+1阶段的影响权重pi-1。预设时间间隔为t,在n倍kt时间长度重复计算得到n*k-2个pi和pi-1,n的取值为整数,建议取值范围为(10,50)。如果n的取值太小,影响概率的准确性;但是取值太大,会增加不必要的计算。对(n*k-2)次概率分别取平均,得到i阶段和i-1阶段对于i+1阶段热点数据集合的平均权重

在第i个阶段:

即可根据联合求解,得到a和l的值

s1.2根据完成值nfinish的定义公式:nfinish=nkf=n0e-a(m+l),根据定义的参数a和l,依次增加k值,计算每个节点的完成值nfinish,nfinish为衰减概率完成值,代表了节点对预测具有指导意义的最小概率,当nfinish=nkf=n0e-a((k+1)t+l)<nmin时,停止计算,此时,k的值即为概率链表和历史热点数据集合链表的长度;其中,nmin是nfinish的一个参考值,用来表示历史节点对预测的概率权重的下限,m表示时间间隔,若预设的时间间隔为t,则m=kt,k为整数,m单位为秒。

s1.3根据步骤s1.2确定的k值,分别计算1~k范围内整数节点对应的节点概率,计算公式为:nkf=n0e-a(kt+l),将节点概率按照从小到大的顺序存储到节点概率链表中。

以上概率分析任务,理论上只需要在系统初始化或者存在较大调整时进行。

s2.根据当前时间段内历史日志记录确定初始热点数据库表集合:

s2.1根据记录的数据库历史日志,按照分类标准确定用户请求的分类以及需要访问的数据库表。确定分类标准:用户请求需访问的数据库表为同一数据库表;

s2.2根据记录的数据库历史日志,按照分类标准确定用户请求的分类以及需要访问的数据库表。根据记录的数据库历史日志,按照分类标准确定用户请求的分类以及需要访问的数据库表。统计每个类型的用户请求量,即请求次数。统计各个分类的用户请求量,按照请求量从大到小的顺序进行排序。如果用户请求量相同,计算请求的数据量作为排序依据,即按照请求数据量的从大到小进行排序。考虑在大部分的业务场景下,80%的访问量都集中在20%的热数据上(二八原则),对排序在前20%的分类进行定义(如:(k1,k2…k10)列表,取(k1,k2)),生成包含编号以及数据库表的分类标准即热点数据库表集合。选取的分类占比之和可以小于20%,但是不能超过20%;

s2.3将步骤s2.2得到的热点数据库表集合加入到热点数据历史记录的双向循环链表:移动尾部指针,加入数组集合到链表尾部。之后,检查链表的长度。如果链表长度不小于k,不再进行操作;如果链表的长度大于k,移动指针删除热点数据历史记录的双向循环链表的下一个节点。

s3.根据k次热点数据的链表记录预测下一时间段的历史记录中每一个数据表成为热点的概率:

s3.1获取指针指向的当前节点的数组集合,将指针移动的次数记录到变量i,i初始值为1。从数组集合中取出第一个数据库表的名字,将数据库表名作为key值;同时,取链表中下标为k-1的概率作为value值,将key-value键值对存储到map集合中。依次取出数组集合中剩下的数据库表名字,将对应的key-value存储到map中。

s3.2在继续移动存储热点数据表名集合的链表的指针之前,先判断概率链表的next是否为空,next指向下一个热点数据集合。如果i<1,next不为空,移动热点数据表历史记录的指针。否则,next为空,集合遍历完毕。

s3.3从热点数据库表和概率链表两个表中分别取任意i阶段的数据库表名和对应的概率值。此时,在进行map的赋值操作时,需要先获取当前数据库表名在map中是否已经存在值。如果已经存在,需要将value值与节点对应的概率值的和作为新的value保存到map中。如果不存在,将概率值作为value存储到map中。

s3.4链表遍历完毕后,将map按照value值进行降序排序,选择value值之和最接近但不超过value值总和的80%的数据表集合作为缓存的热点数据表集合。

s4.根据步骤s3得到的热点数据表集合和历史的分类标准,对比热点数据表集合和历史的分类标准中的数据表,筛选出需要更新的分类标准和新增的热点数据表,将更新的分类标准中对应的目标web服务器标号放回未分配的集合,对新增的热点数据表根据单位时间内请求量和目标web服务器的传输容量计算需要的目标web服务器数量(至少使得总的目标web服务器的单位时间内传输容量不小于单位时间内请求量),从未分配列表选择对应数量的目标web服务器构造新的分类标准;

s4.1从分类标准中取出数据库表名,查询取出的数据库表名在热点集合中是否存在。如果存在,移除map中对应key-value键值对;如果不存在,删除对应的分类标准,将web服务器的集合放回到未分配的服务器列表中。

s4.2从map中取出数据库表名,根据记录的数据库表对应的请求量,为分类请求指定足够数量的web服务器。根据服务器的服务能力和单位时间内该分类的用户请求量计算出目标web服务器的数量,即服务器的服务能力需大于用户请求的服务,其中,web服务器的服务能力包括服务器的处理能力和传输流量两个方面。将服务器的编号作为集合以循环链表的形式写入分类标准的目标服务器字段。

s4.3根据分类标准中目标服务器字段的定义,将各个分类标准发送到对应的单个或者多个web服务器上,以缓存分类对应的数据库表。之后,将所有的分类标准发送到负载均衡服务器。

s5:目标web服务器接收数据分析服务器转发的分类请求,确定需要加载的数据库表的名称,从数据库加载表的内容到内存中;

s6:负载均衡服务器接收用户请求,对比数据分析服务器的分类标准确定用户请求所属的分类,负载均衡服务器从分类标准的目标服务器集合中通过指针指向的节点确定目标服务器的编号;

s6.1负载均衡服务器接收并存储数据分析服务器发送的所有分类标准,在每个分类的目标web服务器字段的循环链表中任意选择一个节点,使指针指向这个节点;

s6.2在接收用户请求时,对比分类标准以确定用户请求所属的分类,并执行如下转发策略:

s6.2.1获取指针指向节点的编号,将用户请求转发到编号所代表的目标web服务器上,之后,移动指针到下一个节点位置;

s6.2.2在分类标准中新增一个字段,用于存放cpu占用率超过预设占用率阈值的目标web服务器编号的集合,

s6.2.3监控目标web服务器字段中目标web服务器的cpu占用率,一旦目标web服务器的cpu占用率达到预设占用率阈值,将此目标web服务器的编号存储到步骤s6.2.2新增的字段中;

s6.2.4监控步骤s6.2.2字段中目标web服务器的cpu占用率,当目标web服务器的cpu占用率降至不超过预设占用率阈值的二分之一时,将此目标web服务器对应的编号再次插入到目标web服务器的循环链表中。

s7:目标web服务器接收负载均衡服务器转发的用户请求,并对请求的内容进行处理,从内存中获取对应的数据作为结果返回:

s7.1目标web服务器接收数据分析服务器发送的分类请求,确定分类请求对应的数据库表,从数据库中加载表内容到内存中;

s7.2目标web服务器接收负载均衡服务器转发的用户请求,确定用户请求的分类需访问的数据库表与内存中的缓存内容相一致,从内存中加载数据信息并返回用户请求。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1