一种雾计算架构中使用缓存改善网站访问时延的方法和系统与流程

文档序号:14684443发布日期:2018-06-12 23:06阅读:663来源:国知局
一种雾计算架构中使用缓存改善网站访问时延的方法和系统与流程

本发明涉及一种雾计算架构中使用缓存改善网站访问时延的方法和系统,属于雾计算技术领域。



背景技术:

2011年,CISCO公司提出雾计算的概念,核心思想是充分利用云计算与用户终端设备之间的靠近网络边缘的设备的存储和计算能力,为终端用户提供计算与存储服务。雾计算具有靠近网络边缘的特点,所以可以有效缩短传输距离,降低时间延迟;并且可以减轻广域网中云数据中心的压力。

缓存最早被应用于缓解计算机中央处理器与输入输出设备速度不匹配的问题,计算机控制从输入输出设备预读取中央处理器需要的数据到高速缓存中,满足中央处理器高速读取数据的需求。随着网络技术的发展,缓存也被应用于网络中,缓解时间延迟。

当今社会,网民数量呈现激增趋势。到2017年6月,中国网民数量已经达到7.51亿,随着网民数量的激增,大量的web服务请求给云数据中心的web网站造成了沉重的负载压力,从而增加用户获得响应的时间延迟;同时,用户端与广域网中云数据中心之间的传输距离长、路由器等网关设备的中继多,也加重了时间延迟问题,影响了用户的体验。如何有效将雾计算与缓存结合起来,降低时间延迟,提升用户体验成为一个重要的问题。



技术实现要素:

针对网站访问延时这一重要问题,本发明提出了一种雾计算架构中使用缓存改善网站访问时延的方法;本发明还提供了一种雾计算架构中使用缓存改善网站访问时延的系统;

本发明在保证不影响云数据中心web网站正常运行的前提下,通过在局域网中使用雾节点缓存静态资源,降低用户访问的时间延迟,改善用户体验。本发明的缓存优势主要体现在:一是对请求量超过系统设置的阈值的热门资源在多个雾节点进行多副本缓存,当需要读取该资源时,根据负载均衡算法选择最合适的雾节点提供服务;二是设置缓存管理节点,对系统缓存资源的元信息进行记录管理。

术语解释

1、Redis,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis的value可以是字符串(String),哈希(Map),列表(list),集合(sets)和有序集合(sorted sets)等类型。

2、SSH,Secure Shell的缩写,为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

本发明的技术方案为:

一种雾计算架构中使用缓存改善网站访问时延的方法,运行于局域网中,所述局域网包括一台路由器、多个交换机、多台linux操作系统或windows操作系统的主机,所述路由器连接多个所述交换机,多个交换机连接多台linux操作系统或windows操作系统的主机,包括:

(1)选取局域网中一台Linux操作系统的主机作为管理节点,安装Redis数据库,用来存储资源的元数据,元数据主要负责描述资源的具体属性;元数据包括资源URI、资源大小、资源存储位置、资源访问数、资源缓存时间、资源最近访问时间、资源是否已缓存若干(7)项;

(2)选取若干台Linux操作系统的主机作为雾节点,用于存储需要缓存的资源;

(3)所述路由器拦截所述局域网内的http访问请求,并将http访问请求转发给管理节点,管理节点解析http访问请求并获得资源URI,使用Redis数据库的EXISTS命令查找Redis数据库中是否有与该资源URI相同的数据记录,如果没有,则执行步骤(4),如果有,则执行步骤(5);

(4)将该http访问请求转发到对应的web网站,并通过“HMSET资源URI访问次数1”命令在Redis数据库中记录该资源的元数据;

(5)根据Redis数据库中元数据的资源URI是否缓存字段判断资源URI是否已经缓存;如果Redis数据库中元数据的资源URI没有缓存字段,将该http访问请求转发到对应的web网站,并进入步骤(6),如果Redis数据库中元数据的资源URI缓存了字段,进入步骤(7);

(6)判断资源访问数是否达到局域网内主机数量的一半以上,如果未达到,则通过“HMSET资源URI资源访问数+1”命令更新该资源的资源访问数;如果达到,则执行(8);

(7)根据资源URI,通过“HMGET资源URI资源存储位置”命令从Redis数据库获取元数据中的资源存储位置;资源存储位置由若干个局域网IP地址组成,根据IP地址通过SSH获取这若干个IP地址的雾节点的CPU使用率、内存使用率、IO使用率、带宽使用率,并采用加权负载均衡算法计算获得的权值,选择权值最小的IP地址的雾节点响应http访问请求;

(8)下载资源URI代表的资源,随机选择若干个存储空间充足的雾节点,存储下载的资源,通过“HMSET资源URI key value”命令更新资源缓存时间,资源最近访问时间为当前时间;通过“HMSET资源URI key value”命令更新资源大小为资源的实际大小;通过“HMSET资源URI key value”命令更新资源访问数为当前的访问数加1;通过“HMSET资源URI key value”命令更新资源存储位置为选取的若干个雾节点的IP地址集合;通过“HMSET资源URI key value”命令更新资源是否已缓存为已缓存。

根据本发明优选的,所述步骤(7),雾节点的权值I为计算公式如式(Ⅰ)所示:

I=0.35*a+0.35*b+0.2*c+0.1*d (Ⅰ)

式(Ⅰ)中,I是指任一雾节点,a是指对应雾节点的IO使用率,b是指对应雾节点的带宽使用率,c是指对应雾节点的CPU使用率,d是指对应雾节点的内存使用率。

一种雾计算架构中利用缓存改善网站访问时延的系统,包括依次连接的用户终端层、雾计算层、云计算层。

根据本发明优选的,所述用户终端层包括局域网中多台windows操作系统的主机;所述雾计算层包括局域网中多台linux操作系统的主机;所述云计算层为广域网中的云数据中心。

雾计算层包括管理节点、雾节点,管理节点和雾节点都连接在局域网的若干台交换机下,若干台交换机上层与路由器相连。控制节点用于存储缓存资源的元数据,拦截局域网的http访问请求,判断资源是否已经缓存在雾节点集群,根据上述的加权负载均衡算法选取负载最小的雾节点为http访问请求提供服务;雾节点集群用于存储缓存的资源。

用户终端层包括若干台计算机;所述云计算层包括云数据中心中的WEB网站,计算机负责发送http请求,云数据中心中的WEB网站负责响应资源的请求服务;

本发明的有益效果为:

1、本发明通过雾节点缓存资源,既充分利用了网络边缘设备的空闲的存储和计算能力,又缩短了http请求中数据包传输的距离,改善了网站访问的时延问题,优化了用户体验。例如,经测试,多个用户未使用本文所示方法请求广域网中一个大小10M的资源,平均时延是9.4秒左右,使用本发明方法请求相同的资源,平均时延在1.8秒左右,时延降低率达到80%左右。

2、本发明在雾节点集群使用多副本的缓存机制,并且使用包含CPU使用率、内存使用率、IO使用率、带宽使用率的加权负载均衡算法选取存储多副本的负载最低的节点提供服务。该方法既对雾节点集群进行了负载均衡,避免大量的缓存读取请求集中到一个节点之上而造成缓存读取缓慢的问题,也起到了降低时延的作用。

附图说明

图1为本发明一种雾计算架构中使用缓存改善网访问时延的系统的结构框图;

图2本发明一种雾计算架构中使用缓存改善网访问时延的方法的流程图;

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例1

一种雾计算架构中使用缓存改善网站访问时延的方法,如图2所示,在局域网搭建整个系统,管理端使用一台centos6.5操作系统的主机,8核CPU、8GB内存、100MB/S带宽;雾节点集群包括6台centos6.5操作系统的主机:其中三台2G内存、2核、10MB/S带宽;另外三台1G内存、2核、100M/s带宽。

(1)搭建与测试过程:在管理端上传redis源码安装包,使用make与make install命令安装Redis数据库;安装jdk 1.7,并配置管理端用于存取缓存和执行负载均衡算法的java程序,安装jsch库,用于远程获得雾节点的各项指标利用率;安装jedis库,用于java程序操作redis数据库。

6台雾节点主机各使用1G硬盘空间作为缓存空间;安装CPU利用率、内存利用率、带宽利用率、IO利用率的shell脚本文件,用于计算雾节点的上述四种利用率。

使用java语言模拟多线程请求web资源,统计不使用本文系统的时间延迟和使用本文系统的平均时间延迟。

(2)路由器拦截局域网内的http访问请求,并将http访问请求转发给管理节点,管理节点解析http访问请求并获得资源URI,使用Redis数据库的EXISTS命令查找Redis数据库中是否有与该资源URI相同的数据记录,如果没有,则执行步骤(4),如果有,则执行步骤(5);

(3)将该http访问请求转发到对应的web网站,并通过“HMSET资源URI访问次数1”命令在Redis数据库中记录该资源的元数据;

(4)根据Redis数据库中元数据的资源URI是否缓存字段判断资源URI是否已经缓存;如果Redis数据库中元数据的资源URI没有缓存字段,将该http访问请求转发到对应的web网站,并进入步骤(5),如果Redis数据库中元数据的资源URI缓存了字段,进入步骤(6);

(5)判断资源访问数是否达到局域网内主机数量的一半以上,如果未达到,则通过“HMSET资源URI资源访问数+1”命令更新该资源的资源访问数;如果达到,则执行(7);

(6)根据资源URI,通过“HMGET资源URI资源存储位置”命令从Redis数据库获取元数据中的资源存储位置;资源存储位置由若干个局域网IP地址组成,根据IP地址通过SSH获取这若干个IP地址的雾节点的CPU使用率、内存使用率、IO使用率、带宽使用率,并采用加权负载均衡算法计算获得的权值,选择权值最小的IP地址的雾节点响应http访问请求;雾节点的权值I为计算公式如式(Ⅰ)所示:

I=0.35*a+0.35*b+0.2*c+0.1*d (Ⅰ)

式(Ⅰ)中,I是指任一雾节点,a是指对应雾节点的IO使用率,b是指对应雾节点的带宽使用率,c是指对应雾节点的CPU使用率,d是指对应雾节点的内存使用率。

(7)下载资源URI代表的资源,随机选择若干个存储空间充足的雾节点,存储下载的资源,通过“HMSET资源URI key value”命令更新资源缓存时间,资源最近访问时间为当前时间;通过“HMSET资源URI key value”命令更新资源大小为资源的实际大小;通过“HMSET资源URI key value”命令更新资源访问数为当前的访问数加1;通过“HMSET资源URI key value”命令更新资源存储位置为选取的若干个雾节点的IP地址集合;通过“HMSET资源URI key value”命令更新资源是否已缓存为已缓存。

本实施例的测试结果为:

测试资源大小分组为100KB,1MB,10MB,

100KB,使用本发明方法平均时延230ms,不使用本发明方法,利用现有技术平均时延610ms左右,使用本发明方法,时延降低大约62%。

1MB,使用本发明方法平均时延420ms,使用本发明方法,利用现有技术平均时延920ms左右,使用本发明方法,时延降低达到53%。

10MB资源,使用本发明方法平均时延1.8秒,使用本发明方法,利用现有技术平均时延9.4秒左右,使用本发明方法,时延降低大约80%。

实施例2

一种雾计算架构中使用缓存改善网访问时延的系统,如图1所示,包括依次连接的用户终端层、雾计算层、云计算层。

用户终端层包括局域网中多台windows操作系统的主机;雾计算层包括局域网中多台linux操作系统的主机;云计算层为广域网中的云数据中心。

雾计算层包括管理节点、雾节点,管理节点和雾节点都连接在局域网的若干台交换机下,若干台交换机上层与路由器相连。控制节点用于存储缓存资源的元数据,拦截局域网的http访问请求,判断资源是否已经缓存在雾节点集群,根据上述的加权负载均衡算法选取负载最小的雾节点为http访问请求提供服务;雾节点集群用于存储缓存的资源。

用户终端层包括若干台计算机;所述云计算层包括云数据中心中的WEB网站,计算机负责发送http请求,云数据中心中的WEB网站负责响应资源的请求服务。

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