首页> 中国专利> 应用于服务器集群的缓存方法、缓存服务器及缓存系统

应用于服务器集群的缓存方法、缓存服务器及缓存系统

摘要

本发明提供一种应用于服务器集群的缓存方法、缓存服务器及缓存系统,其中,该缓存方法包括:接收来自管理服务器的连接请求;根据连接请求判断是否能建立连接;如果判断结果为能,则建立与连接请求相应的应用服务器之间的连接;如果判断结果为否,发送连接饱和信息给管理服务器,以便管理服务器重新选择新的缓存地址;通过与连接请求相应的应用服务器之间的连接响应来自应用服务器的数据获取请求。通过本发明,可以提高服务器集群中各服务器的工作效率。

著录项

  • 公开/公告号CN102891894A

    专利类型发明专利

  • 公开/公告日2013-01-23

    原文格式PDF

  • 申请/专利权人 中国工商银行股份有限公司;

    申请/专利号CN201210394293.7

  • 发明设计人 汪博;宛秋;殷明;麻晓波;

    申请日2012-10-17

  • 分类号H04L29/08(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人任默闻

  • 地址 100140 北京市西城区复兴门内大街55号

  • 入库时间 2024-02-19 16:59:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-05-18

    授权

    授权

  • 2013-03-06

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20121017

    实质审查的生效

  • 2013-01-23

    公开

    公开

说明书

技术领域

本发明涉及通信领域,具体地,涉及一种应用于服务器集群的缓存方法、 缓存服务器及缓存系统。

背景技术

随着网络技术的不断发展,IT技术的变更日新月异,网络应用程序的 功能也越来越强大,随之而来的问题是:单一服务器的CPU运算能力已无 法满足日渐庞大的计算需求,由此,诞生了服务器集群的概念,以解决单 机运算能力,I/O能力的限制和不足。在服务器集群中,所有应用程序被分 别部署到每台服务器中。

同时,伴随着数据高速读取的要求,在服务器中出现了高速缓存的应 用。在各个运行应用程序的服务器中,都有一个高速缓存空间(以下称为 缓存区)。如图1所示,目前一般将运行应用程序的服务器的内存分成三 部分,其中,服务器操作系统占用一部分内存101,应用程序本身占用一部 分内存102,在服务器内存的剩余空间中,划出一部分区域103作为缓存区。

缓存区存储着应用程序运行时必须的参数或变量(以下参数或变量都 简称参数)。这些参数或存储在应用程序提供的配置文件中,或通过应用 程序提供的配置功能由人工配置。当应用程序运行时,这些参数被读入到 缓存中,供应用程序调用。由于缓存的访问速度远比从配置文件等中直接 读取要快,因此利用缓存可以有效提高程序的执行效率。在系统运行过程 中,缓存会有刷新动作,例如,参数调整、应用程序升级后的安装部署、 或者因为一些特殊的原因需要重启服务,重新装入缓存数据。

但是,对于拥有多台服务器的网络集群来说,缓存的装入会有以下的 问题存在:

1.目前每个服务器都使用各自单独的缓存,耗费资源;

2.数据源更新后,每个服务器的缓存都需要更新,难以保证同步;

3.在一个服务器上更新了缓存并不会通知到集群内的其它服务器;

4.更新缓存的操作可能会占用大量时间,对于服务器数量比较庞大的 集群来说,将全部服务器缓存进行更新所耗费的时间较多;

5.对于服务器来说,每台服务器可用的内存是有上限的,若应用服务 器的内存容量无法满足应用程序的需求时,扩充内存会带来额外的开支。 特别是对于分布式部署的应用,对每台服务器都要进行内存扩充的作业, 额外花费的费用和时间非常可观。

虽然目前的数据库共享技术可以在一定程度上实现服务器之间的数据 同步,但并不能解决以上全部问题。主要原因之一是数据库仅能存储数据 资源,不能存储程序实体;另外,对于数据库来说,其响应时间比高速缓 存要长,对访问速度影响较大。

综上所述,目前的服务器集群缺少有效的缓存机制、进而影响了服务器 的工作效率。

发明内容

本发明实施例的主要目的在于提供一种应用于服务器集群的缓存方法、 缓存服务器及缓存系统,以解决现有技术中的服务器集群缺少有效的缓存机 制、进而影响服务器集工作效率的问题。

为了实现上述目的,本发明实施例提供一种应用于服务器集群的缓存方 法,该方法包括:接收来自管理服务器的连接请求;根据所述的连接请求判 断是否能建立连接;如果判断结果为能,则建立与所述连接请求相应的应用 服务器之间的连接;如果判断结果为否,发送连接饱和信息给所述的管理服 务器,以便所述的管理服务器重新选择新的缓存地址;通过所述与连接请求 相应的应用服务器之间的连接响应来自所述应用服务器的数据获取请求。

具体地,在所述接收来自管理服务器的连接请求之前,所述的方法还包 括:所述管理服务器接收来自所述应用服务器的所述连接请求,其中,所述 连接请求中包括所述应用服务器的地址;所述管理服务器根据所述的连接请 求查询相应的缓存地址;所述管理服务器将所述的连接请求转发至所述相应 的缓存地址。

所述管理服务器根据所述的连接请求查询相应的缓存地址包括:所述管 理服务器根据本地保存的缓存服务器连接信息查询所述连接请求中的应用服 务器是否存在相应的连接信息;如果查询结果为存在,则根据所述相应的连 接信息发送所述的连接请求;如果查询结果为不存在,则所述管理服务器根 据本地保存的缓存服务器信息选择一个缓存地址发送所述的连接请求,并更 新所述的缓存服务器连接信息。

通过所述与连接请求相应的应用服务器之间的连接响应来自所述应用服 务器的数据获取请求包括:根据所述数据获取请求判断快速访问区是否存在 相应的数据;如果判断结果是存在,则从所述快速访问区将所述相应的数据 发送给所述应用服务器;如果判断结果是不存在,则从缓存区中将所述相应 的数据发送给所述应用服务器。

本发明实施例还提供一种应用于服务器集群的缓存服务器,该缓存服务 器包括:第一连接请求接收单元,用于接收来自管理服务器的连接请求;连 接建立判断单元,用于根据所述的连接请求判断是否能建立连接;第一连接 建立单元,用于在所述连接建立判断单元判断的结果为能建立连接时,建立 与所述连接请求相应的应用服务器之间的连接;饱和信息发送单元,用于在 所述连接建立判断单元判断的结果为否时,发送连接饱和信息给所述的管理 服务器,以便所述的管理服务器重新选择新的缓存地址;数据获取请求响应 单元,用于通过所述与连接请求相应的应用服务器之间的连接响应来自所述 应用服务器的数据获取请求。

具体地,所述的数据获取请求响应单元包括:快速访问判断模块,用于 根据所述数据获取请求判断快速访问区是否存在相应的数据;数据快速发送 模块,用于在所述快速访问判断单元的判断结果为存在所述相应的数据时, 从所述快速访问区将所述相应的数据发送给所述应用服务器;数据发送单元, 用于在所述快速访问判断单元的判断结果为不存在所述相应的数据时,从缓 存区中将所述相应的数据发送给所述应用服务器。

本发明实施例还提供一种服务器集群的缓存系统,该缓存系统包括上述 的缓存服务器、应用服务器以及管理服务器,其中,应用服务器包括:第一 连接请求发送单元,用于向所述的管理服务器发送连接请求,其中,所述连 接请求中包括所述应用服务器的地址;第二连接建立单元,用于建立与所述 缓存服务器之间的连接;数据获取请求发送单元,用于向所述缓存服务器发 送数据获取请求;数据获取单元,用于获取来自所述缓存服务器的数据;所 述的管理服务器包括:第二连接请求接收单元,用于接收来自所述应用服务 器的所述连接请求;缓存地址查询单元,用于根据所述的连接请求查询相应 的缓存地址;第二连接请求发送单元,用于将所述的连接请求转发至所述相 应的缓存地址;缓存地址重新选择单元,用于在接收到所述缓存服务器的连 接饱和信息后,重新选择新的缓存地址,以便所述的连接请求发送单元重新 发送所述的连接请求。

具体地,所述的缓存地址查询单元包括:连接信息查询模块,用于根据 本地保存的缓存服务器连接信息查询所述连接请求中的应用服务器是否存在 相应的连接信息;如果查询结果为存在,则根据所述相应的连接信息发送所 述的连接请求;缓存地址选择模块,用于在所述查询结果为不存在时,根据 本地保存的缓存服务器信息选择一个缓存地址发送所述的连接请求;连接信 息更新模块,用于在所述缓存地址选择模块选择缓存地址后更新所述的缓存 服务器连接信息。

借助于上述技术方案至少之一,通过根据管理服务器的连接请求建立与 相应应用服务器之间的连接,实现应用服务器的缓存数据获取请求,通过本 发明实施例提供的有效缓存机制,可以提高网络集群中各服务器的工作效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附 图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创 造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术中运行应用程序的服务器的内存使用结构图;

图2是根据本发明实施例的应用于服务器集群的缓存方法的流程图;

图3是根据本发明实施例的应用于服务器集群的缓存服务器的结构框图;

图4是根据本发明实施例的数据获取请求响应单元25的结构框图;

图5是根据本发明实施例的服务器集群的缓存系统的结构框图;

图6是根据本发明实施例的应用服务器1的结构框图;

图7是根据本发明实施例的缓存地址查询单元32的结构框图;

图8是根据本发明实施例的服务器缓存共享系统的结构示意图;

图9是根据本发明实施例的缓存服务器202的功能模块示意图;

图10是根据本发明实施例的管理服务器204的内部模块结构框图;

图11是根据本发明实施例的管理服务器204与缓存服务器202的模块连接 示意图;

图12是根据本发明实施例的多缓存服务器的系统结构示意图;

图13是根据本发明实施例的服务器共享缓存系统中应用服务器访问缓存 数据的流程图;

图14是根据本发明实施例的一优选实施例的系统结构图;

图15是根据本发明实施例的缓存服务器的电路连接示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

由以上描述可知,现有技术中的网络集群,由于缺少有效的缓存机制, 因此降低了服务器的工作效率。基于此,本发明实施例提供一种应用于服务 器集群的缓存方法、缓存服务器及缓存系统,以解决上述问题。以下结合附 图对本发明进行详细说明。

实施例一

本发明实施例提供一种应用于服务器集群的缓存方法,如图2所示,该 方法包括:

步骤201,接收来自管理服务器的连接请求;

步骤202,根据连接请求判断是否能建立连接,如果判断结果为能建立连 接,则进行步骤203,否则,进行步骤205;

步骤203,如果判断结果为能,则建立与连接请求相应的应用服务器之间 的连接;

步骤204,通过与连接请求相应的应用服务器之间的连接响应来自应用服 务器的数据获取请求;

步骤205,发送连接饱和信息给管理服务器,以便管理服务器重新选择新 的缓存地址,并返回步骤201。

由以上描述可知,通过根据管理服务器的连接请求建立与相应应用服务 器之间的连接,实现应用服务器的缓存数据获取请求,通过本发明实施例提 供的有效缓存机制,可以提高网络集群中各服务器的工作效率。

在接收来自管理服务器的连接请求之前,管理服务器首先接收到来自应 用服务器的连接请求,其中,连接请求中包括应用服务器的地址,之后,管 理服务器根据连接请求查询相应的缓存地址,并将连接请求转发至相应的缓 存地址,即,转发至相应的缓存服务器。

具体地,管理服务器通过如下方式查询相应的缓存地址:管理服务器根 据本地保存的缓存服务器连接信息查询连接请求中的应用服务器是否存在相 应的连接信息;如果查询结果为存在,则根据相应的连接信息发送连接请求; 如果查询结果为不存在,则管理服务器根据本地保存的缓存服务器信息选择 一个缓存地址发送连接请求,并更新缓存服务器连接信息。

这里的缓存服务器连接信息用于记录缓存服务器与应用服务器之间的连 接信息,当管理服务器查询到有相应的连接信息时,则将应用服务器的连接 请求发送至对应的缓存服务器;当管理服务器未查询到有相应的连接信息时, 管理服务器选择一个缓存服务器,以发送应用服务器的连接请求,并将该连 接信息更新至缓存服务器连接信息中,以便后续应用服务器再次发送连接请 求时,管理服务器可以根据更新的信息查找到有连接关系的缓存服务器,并 执行发送连接请求的操作。

步骤204响应数据获取请求具体操作为:根据数据获取请求判断快速访问 区是否存在相应的数据;如果判断结果是存在,则从快速访问区将相应的数 据发送给应用服务器;如果判断结果是不存在,则从缓存区中将相应的数据 发送给应用服务器。

快速访问区用于存放访问频率较多的数据,快速访问区的数据可以由系 统根据访问频率自动更新或者由用户来更新,通过快速访问区,可以更快更 有效地访问获取数据。

实施例二

本发明实施例还提供一种应用于服务器集群的缓存服务器,优选地用于 实现上述实施例一中的方法。图3是该缓存服务器的结构框图,如图3所示, 该缓存服务器包括:

第一连接请求接收单元21,用于接收来自管理服务器的连接请求;

连接建立判断单元22,用于根据连接请求判断是否能建立连接;

第一连接建立单元23,用于在连接建立判断单元判断的结果为能建立连 接时,建立与连接请求相应的应用服务器之间的连接;

饱和信息发送单元24,用于在连接建立判断单元判断的结果为否时,发 送连接饱和信息给管理服务器,以便管理服务器重新选择新的缓存地址;

数据获取请求响应单元25,用于通过与连接请求相应的应用服务器之间 的连接响应来自应用服务器的数据获取请求。

由以上描述可以看出,通过第一连接建立单元建立与连接请求相应的应 用服务器之间的连接,数据获取请求响应单元可以实现应用服务器的缓存数 据获取请求,通过本发明实施例提供的有效缓存机制,可以提高网络集群中 各服务器的工作效率。

如图4所示,上述数据获取请求响应单元25包括:

快速访问判断模块251,用于根据所述数据获取请求判断快速访问区是否 存在相应的数据;

数据快速发送模块252,用于在所述快速访问判断单元的判断结果为存在 所述相应的数据时,从所述快速访问区将所述相应的数据发送给所述应用服 务器;

数据发送模块253,用于在所述快速访问判断单元的判断结果为不存在所 述相应的数据时,从缓存区中将所述相应的数据发送给所述应用服务器。

快速访问区用于存放访问频率较多的数据,快速访问区的数据可以由系 统根据访问频率自动更新或者由用户来更新,通过快速访问区,可以更快更 有效地访问获取数据。

本实施例中的缓存服务器可以是服务器集群中的共享缓存服务器,通过 该共享缓存服务器可以节约各服务器自身的资源并节省数据在各服务器缓存 装入所耗费的时间,提高各服务器的工作效率。

实施例三

本发明实施例提供一种服务器集群的缓存系统,如图5所示,该系统包括: 应用服务器1、管理服务器3以及缓存服务器2,该缓存服务器优选的可以是上 述实施例二中的缓存服务器。应用服务器1通过管理服务器3,与缓存服务器2 建立连接,从缓存服务器2读取数据。

本发明实施例通过在服务器集群中,在部分服务器上划出一个共享的内 存区域,即缓存服务器2,根据服务器的类型不同,共享可以是一个共享的缓 存,也可以是一个共享的页面文件,可以简称为“共享内存”,在共享内存 中可以存储应用程序运行需要的参数、公共变量,或者是公用程序实体。这 些数据或程序在服务集群由一个数据源提供,应用程序启动后,只需要执行 数据的装入操作,将这些数据读入到共享内存中,共享内存的数据就可以被 集群中全部应用服务器访问到,相当于将数据或程序装入了全部应用服务器 中,可以克服现有技术中的服务器集群缺少有效的缓存机制、进而影响了服 务器的工作效率的问题。

为了更好的理解本发明实施例,以下结合图3所示的缓存服务器详细描 述各服务器。

如图6所示,应用服务器1包括:

第一连接请求发送单元11,用于向管理服务器发送连接请求,其中,连 接请求中包括应用服务器的地址;

第二连接建立单元12,用于建立与缓存服务器之间的连接;

数据获取请求发送单元13,用于向缓存服务器发送数据获取请求;

数据获取单元14,用于获取来自缓存服务器的数据;

管理服务器3包括:

第二连接请求接收单元31,用于接收来自应用服务器的连接请求;

缓存地址查询单元32,用于根据连接请求查询相应的缓存地址;

第二连接请求发送单元33,用于将连接请求转发至相应的缓存地址;

缓存地址重新选择单元34,用于在接收到缓存服务器的连接饱和信息后, 重新选择新的缓存地址,以便连接请求发送单元重新发送连接请求。

通过管理服务器选择合适的缓存地址转发来自应用服务器的连接请求给 缓存服务器,缓存服务器建立与应用服务器之间的连接,从而应用服务器可 以到缓存服务器实现数据获取操作,通过缓存服务器可以节约各应用服务器 自身的资源并节省数据在各应用服务器缓存装入所耗费的时间,提高工作效 率。

具体地,如图7所示,缓存地址查询单元32包括:

连接信息查询模块321,用于根据本地保存的缓存服务器连接信息查询所 述连接请求中的应用服务器是否存在相应的连接信息;如果查询结果为存在, 则根据所述相应的连接信息发送所述的连接请求;

缓存地址选择模块322,用于在所述查询结果为不存在时,根据本地保存 的缓存服务器信息选择一个缓存地址发送所述的连接请求;

连接信息更新模块323,用于在所述缓存地址选择模块选择缓存地址后更 新所述的缓存服务器连接信息。

为了更好的理解本发明实施例,以下给出一集群系统实例。

图8是服务器缓存共享系统的结构示意图,如图8所示,服务器缓存共享 系统由数据源201、缓存服务器202、缓存内部网络203、管理服务器204、应 用服务器205、高速内部局域网206构成。其中,缓存服务器202通过缓存内部 网络203分别与数据源201和管理服务器204连接,管理服务器204和应用服务 器205通过高速内部局域网206连接。

以下分别详细各部分。

数据源201主要具有提供参数配置、应用程序部署的功能,即管理员通过 数据源201维护要装入缓存的数据。

缓存服务器202向集群中应用服务器205提供共享的高速缓存,缓存服务 器提供数据快速检索、读写的功能,能够即时响应各应用服务器的访问请求, 可以等同于各服务器自己的缓存。

在实际操作中,缓存服务器可以是一台(或一组)单独的服务器设备, 也可以在网络集群中的应用服务器中选取一台(或几台)应用服务器作为虚 拟的缓存服务器使用。

在服务器集群需要扩充缓存的情况下,只需要对缓存服务器进行扩展, 可以通过物理添加服务器内存的方式,也可以采用添加共享缓存服务器组成 一个更大的共享缓存的方式。因为缓存服务器可以看作集群中各应用服务器 自己的缓存,所以扩充了缓存服务器也就等同扩充了整个集群内应用服务器 的缓存。

缓存内部网络203连接缓存服务器202、管理服务器204、数据源201,这 个专用局域网可以仅允许缓存设备接入,其他应用服务器须通过管理服务器 204才可以对缓存内部网络203所连接的设备进行访问。

管理服务器204用于负责管理缓存服务器202的更新,调度应用服务器205 对缓存服务器202的访问。

应用服务器205为服务器集群中的各个应用程序部署的节点,对外提供应 用服务。

高速内部局域网206连接应用服务器205与管理服务器204,进而实现应用 服务器与缓存服务器之间的交互,此局域网的访问权限应当仅限于内部的服 务器之间。

在服务器缓存共享系统中,局域网206和缓存内部网络203都可以采用高 速局域网,例如10Gbit/s以太网或光纤网络,以保证提供快速访问的能力。由 于应用程序运行时会不断访问共享缓存,因此高速局域网可以保证访问速度。

图9是缓存服务器202的功能模块示意图,如图9所示,该缓存服务器202 包含:共享缓存模块301、控制模块302、和连接管理模块303。其中,共享缓 存模块301分别与控制模块302、连接管理模块303连接,控制模块302与连接 管理模块303连接。具体地,图15所示为缓存服务器的电路连接示意图,如图 15所示,磁盘单元(包括磁盘和磁盘扩展槽)和内存(包括内存和内存扩展 槽)构成共享缓存模块;中央处理器和服务器状态监控组件构成控制模块; 其他各类数据总线、控制线路和服务器状态监控组件构成连接管理模块。

图10是管理服务器204的内部模块结构框图,如图10所示,管理服务器204 包括:缓存服务器监视模块401、列表维护模块402、可用服务器列表和连接 列表403、连接转发模块404。其中,缓存服务器监视模块401、列表维护模块 402、可用服务器列表和连接列表403、连接转发模块404依次连接。

图11为管理服务器204与缓存服务器202的模块连接示意图,如图11所示, 上述连接管理模块303与管理服务器204的缓存服务器监视模块401、连接转发 模块404连接,控制模块302与管理服务器204的缓存服务器监视模块401连接, 缓存服务器监视模块401与缓存服务器202的控制模块302、连接管理模块303 连接,连接转发模块404与缓存服务器202的连接管理模块303连接。

为了进一步理解管理服务器204与缓存服务器202之间的工作流程,以下 详细描述上述各模块。

(一)缓存服务器202

共享缓存模块301即高速缓存,高速缓存中的内容可以被网络中的应用服 务器访问到。由于在实际操作中可能会同时有多个访问的请求,因此共享缓 存模块具备并行处理能力。

共享缓存模块中的内容实施分区管理,即整个缓存可以为不同的应用程 序提供服务,每个应用程序的数据存放在不同分区。具体地,每个应用程序 有一个唯一的标识符,当应用程序的访问请求到达时,共享缓存模块首先根 据标识符判断请求是哪个应用程序,然后在对应的分区里面查询数据并发送 给对应的应用服务器。

为了快速查询数据,缩短数据检索带来的时间支出,共享缓存模块优选 地对内部数据编制一个索引列表。另外,共享缓存模块维护一个快速访问表, 作为缓存数据的高速缓冲存储器(cache),用来存储那些需要被频繁访问的 数据,当有查询需求时候,共享缓存模块首先在快速访问表里查找数据,若 找不到再到缓存区里去查找数据。快速访问表每隔一定时间会刷新,这个时 间间隔可以由管理人员设置。

控制模块302负责管理缓存服务器的运行,具体包括:一、管理缓存数据 的更新,当数据源201中数据更新时,即时启动共享缓存中的数据更新;同时 也允许管理员通过控制模块来启动共享缓存中的数据更新;二、管理各缓存 服务器之间的同步,当网络中的缓存服务器不止一台时,在缓存数据更新后, 控制模块可以发送数据更新消息到管理服务器204的缓存服务器监视模块 401,通知管理服务器204缓存数据有更新,以便启动各缓存服务器之间的数 据同步。同步时,控制模块302驱动各个缓存服务器之间通过连接管理模块303 创建专门连接。

连接管理模块303负责管理和建立连接。当管理服务器204的缓存服务器 监视模块401问询当前缓存服务器连接情况,或者管理服务器204的连接转发 模块404的转来应用服务器的连接请求时,连接管理模块303会反馈当前缓存 服务器的忙闲情况。当缓存服务器可以处理新的应用服务器连接请求时,连 接管理模块303向管理服务器204的缓存服务器监视模块401发送一个连接可 用消息,通知管理服务器204该缓存服务器可以接纳新的连接,并在有连接请 求时(即收到管理服务器204的连接转发模块404转发的连接请求),负责建 立应用服务器205到当前缓存服务器的共享缓存的连接。若当前缓存服务器已 无法处理新的应用服务器的连接时,连接管理模块303会向管理服务器204的 缓存服务器监视模块401发送一个连接饱和消息,通知管理服务器204该缓存 服务器已无法接纳新的连接。

(二)管理服务器204

缓存服务器监视模块401会定时扫描缓存服务器是否可用(即向缓存服务 器202的连接管理模块303发送消息,问询缓存服务器的连接情况),将扫描 结果反馈到列表维护模块402。同时,在共享缓存数据更新时,缓存服务器监 视模块401接收缓存服务器202的控制模块302发送数据更新消息,通知其他缓 存服务器启动数据同步。

列表维护模块402根据缓存服务器监视模块401等的反馈维护可用服务器 列表和连接列表403,并可提供手工维护功能,由管理员操作。

可用服务器列表和连接列表403包含两个表:缓存服务器列表和连接列 表,其中,缓存服务器列表用于记录当前可用的缓存服务器,连接列表用于 记录当前应用服务器与缓存服务器的连接情况。

网络中的所有缓存服务器的地址记录在缓存服务器的列表中,对应两种 状态:可用和不可用。这个表的内容在一定时间间隔后会刷新。缓存服务器 监视模块401会定时扫描缓存服务器的连接管理模块303,确定对应缓存服务 器是否可用,将扫描结果反馈到列表维护模块402,列表维护模块402将不可 用的地址从缓存服务器列表中清除,将新增加的可用地址添加入缓存服务器 列表。

连接列表记录应用服务器地址和缓存服务器地址的对应关系,在应用服 务器第一次与缓存服务器建立连接后,在一定时间内应用服务器固定会到同 一台缓存服务器获取数据,这样可以避免多次查询列表造成的性能和时间开 支。连接列表中每个连接关系有一定的存在时限,可由管理员设置,超过这 个时限的连接将被从表里删除,该动作可由列表维护模块402完成。

列表维护模块402除定时清理连接列表以外,还提供手工维护可用服务器 列表与连接列表的功能,以便必要时刻对缓存服务器的连接策略进行人工干 预。

连接转发模块404具有网关的作用,与缓存服务器的连接管理模块303协 同工作,根据可用服务器列表和连接列表403提供的信息,负责建立起应用服 务器205和可用缓存服务器202之间的连接。

在一个服务器集群中,缓存服务器可以部署多台。其原因是如果网络集 群的规模很大,单台缓存服务器面临巨大的访问数量时,可能出现性能的下 降,造成响应不及时。另外若是在缓存服务器只有一台的情况下,若缓存服 务器发生了故障,应用服务器将无法获取缓存数据,若没有备份措施,极容 易造成应用服务停止的严重事件。为了避免上述情况,可采取多缓存服务器 的策略。

图12是多缓存服务器的系统结构示意图,如图12所示,将其中一台作为 主缓存服务器,其他缓存服务器作为辅助,具体实现方式如下:

由管理服务器204的缓存服务器监视模块401监视各缓存服务器的运行情 况,将结果反馈至列表维护模块402,列表维护模块维护可用服务器列表和连 接列表403,对于压力较高的缓存服务器,设为不可用,限制新的连接,通过 该方法来降低缓存服务器的压力。同时选取多台服务器做缓存可以防止出现 缓存服务器宕机,造成应用中断的情况出现。当需要有访问的请求来到时, 管理服务器会指派一台缓存服务器响应该请求。

为了实现缓存服务器的负载均衡,在缓存服务器不止一台的情况下,管 理服务器的连接转发模块404通过连接列表可以获取到各个缓存服务器的连 接数,连接转发模块会将后续发来的连接请求尽量分配到当前连接数较少的 缓存服务器。同时,列表维护模块402在扫描连接列表的时候会分析当前是否 有缓存服务存在过多数量的连接,如果存在,列表维护模块会强制将一部分 连接从列表中删除或修改列表以降低缓存服务器的访问数,以便应用服务器 的访问请求分散到其他缓存服务器,避免某一缓存服务器集中过多的连接。 列表维护模块采取的措施可以由系统管理人员指定或人工进行干预。

管理服务器的缓存服务器监视模块401定时扫描各个缓存服务器是否可 用,当缓存服务器不可用时,会及时修改缓存服务器列表,避免后续过来的 连接请求连接到不可用的缓存服务器,造成二次查询缓存服务器导致额外的 时间支出。

为了防止多个缓存服务器之间出现数据不同步的问题,在整个集群所有 的缓存服务器中选取一台缓存服务器直接连接到数据源201,作为主缓存服务 器,其它的缓存服务器都作为辅助缓存服务器502,辅助缓存服务器可以有多 台,它们只是复制缓存服务器202的内容,自身可以不直接从数据源获取数据。 辅助缓存服务器分别与主缓存服务器和管理服务器相连。

多个缓存服务器更新的流程是:

(1)在数据源201数据发生更新时,主缓存服务器202的控制模块302自 动发出指令,或者管理员通过缓存服务器202的控制模块302发出指令让主缓 存服务器的共享缓存模块301从数据源201获取最新数据,同时生成一个更新 描述文件,文件内容记录本次更新的内容,便于其他辅助缓存服务器更新使 用;

(2)主缓存服务器202的控制模块302发送数据更新消息到管理服务器的 缓存服务器监视模块401,通知管理服务器204缓存数据有更新;

(3)管理服务器204的缓存服务器监视模401对所有其它辅助缓存服务器 的控制模块发送数据更新消息,通知所有辅助缓存服务器502从缓存服务器 202复制数据到自身的共享缓存模块301,同时管理服务器的缓存服务器监视 模块将缓存服务器列表中所有辅助缓存服务器的状态置为“不可用”;

(4)辅助缓存服务器502的控制模块302响应数据更新消息,驱动当前缓 存服务器的连接管理模块303,通过专用网络203与主缓存服务器202建立连 接,首先获取更新描述文件,根据文件的内容下载更新文件到自己的共享缓 存模块301;复制工作进行的时候正在进行复制工作的辅助缓存服务器是不可 用的,当复制工作完成后,辅助缓存服务器502的控制模块给管理服务器的缓 存服务器监视模块发送一个连接可用消息,管理服务器收到消息后会在缓存 服务器列表里将更新完成的辅助缓存服务器502标记为“可用”。

在实际操作中,主缓存服务器202与辅助缓存502的角色可以相互转换, 若是主缓存服务器因为故障无法使用,那么就在辅助缓存服务器里随机选取 一台作为新的主缓存服务器使用,原来的故障缓存服务器在恢复正常后则作 为辅助缓存使用。

主缓存服务器202、数据源201、辅助缓存服务器502、管理服务器204之 间通过专用网络203连接,这个网络仅允许缓存设备连接,不允许外部应用服 务器直接接入。

图13是服务器共享缓存系统中应用服务器访问缓存数据的流程图,如图 13所示:

步骤1301:应用服务器205发送一个连接请求到管理服务器的连接转发模 块404,该连接请求中包含应用服务器自身的地址及请求的内容。

步骤1302:管理服务器的连接转发模块查询可用服务器列表和连接列表 403,查询连接列表中是否有该应用服务器的连接信息。

步骤1303:若查询到有连接信息,则按照连接信息内的对应关系将连接 请求转发至对应缓存服务器的连接管理模块303。

步骤1304:若查询到没有连接信息,连接转发模块404则从缓存服务器列 表中选取一个可用地址,将这个连接请求指派到选取的缓存服务器的地址上, 同时在连接表中添加这一对应关系。

步骤1305:缓存服务器的连接管理模块303接到管理服务器转发过来的连 接请求,判断当前缓存服务器是否有能力建立新的连接。如可建立新的连接, 进入步骤1306;如无法建立新的连接,进入步骤1309。

步骤1306:被选取的缓存服务器的连接管理模块通过管理服务器建立起 应用服务器到缓存服务器共享缓存模块的访问连接。

步骤1307:管理服务器在连接列表中记录该连接。

步骤1308:应用服务器通过管理服务器的转接,就可以从缓存服务器的 共享缓存模块获取数据。

步骤1309:被选取的缓存服务器连接管理模块向管理服务器发送连接饱 和消息,通知管理服务器,当前缓存服务器已到处理能力极限。

步骤1310:管理服务器的连接转发模块会在可用服务器列表和连接列表 403中再次查询一个新的可用缓存服务器地址,将连接请求转发过去,同时在 可用服务器列表和连接列表403将无法连接的缓存服务器标注为不可用,返回 步骤1305。如所有缓存服务器都饱和,则管理服务器向应用服务器返回等待 消息。

在具体实施过程中,考虑到网络访问速度可能存在的限制,因为再快的 网络也无法和访问自身内存的速度相比,因此,在服务器缓存共享系统中, 在部署缓存服务器202的同时,在每台应用服务器205上可以保留一定的缓存 空间。

图14是一优选实施例的系统结构图,如图14所示,各台应用服务器205与 数据源201通过高速网络连接。在数据源201中增加可供管理员维护的专用路 由表,对于数据源201提供的数据进行分类处理,视数据的重要程度及应用运 行时访问的频繁程度来确定装入缓存服务器202的共享缓存,还是直接装入应 用服务器205的自身缓存。对于重要的系统参数或需要频繁访问到的数据,例 如系统配置文件,可以直接装入应用服务器自身的缓存中。对于在程序运行 中会用到,但不会频繁去访问的数据,并且数据量庞大会占用大量内存的数 据,例如协议信息表;或者需要经常更新、重新装载的数据,例如每日需要 根据批量文件更新一次的报价信息等等,可以装入缓存服务器202的共享缓存 中,通过共享缓存提供给其他应用服务器访问。

通过在每台应用服务器205上可以保留一定的缓存空间,就可以避免网络 由于频繁访问而较快耗尽共享缓存的资源的问题,从而避免了不必要的瓶颈。

在服务器集群中,本发明实施例通过共享服务器缓存以节约各服务器自 身的资源并节省数据在各服务器缓存装入所耗费的时间,且本发明实施例具 有较高的安全性,高效性和可扩展性,通过配置主辅缓存服务器,还可以进 一步提高系统的可靠性。

本发明实施例针对服务器集群提出了一种服务器缓存共享方案,在集群 中设置专门的缓存服务器,缓存服务器为服务器集群提供高速缓存的功能, 并可以被其它服务器共享和访问,在更新了缓存数据之后,其他应用服务器 无需再逐一进行相同的更新操作即可让应用程序获取到新的缓存数据,即在 共享缓存上做一次更新操作等同于在所有应用服务器上进行一次更新操作, 以节省集群内服务器由于分别更新缓存所耗费的时间。另外,通过高速网络 (例如10Gbit/s以太网或光纤网络)的应用,保证了集群中共享内存的访问速 度。在需要对共享内存进行扩充时,只需要扩充缓存服务器的内存,即可实 现相当于对整个集群内进行缓存扩充的效果。

综上所述,本发明实施例有以下有益效果:

(1)简化缓存数据维护步骤

相对于每台应用服务器各自维护自己的缓存的方法,本发明实施例只需 要在缓存服务器装入数据,在之后可被各应用服务器共享访问,较大地缩短 了维护数据所需的时间。

(2)节约应用服务器资源

由于各应用服务器不需在内存空间中维护一个单独缓存区,节省了内存 资源,有助于提高应用服务器处理性能。

(3)若应用服务器因某些原因需重启应用服务,则不需要再进行装入缓 存数据的操作即可直接提供服务。

(4)可扩展性

只需对缓存服务器的内存进行升级,或者增加缓存服务器,即可实现服 务器集群的缓存扩展,具备较高的可扩展性,并能够有效降低升级成本。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤 可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取 存储介质中,比如ROM/RAM、磁碟、光盘等。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了 进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已, 并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任 何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号