基于多架构分布式缓存的处理方法和装置与流程

文档序号:19104727发布日期:2019-11-12 22:32阅读:175来源:国知局
基于多架构分布式缓存的处理方法和装置与流程

本发明涉及互联网技术领域,尤其涉及一种基于多架构分布式缓存的处理方法和装置。



背景技术:

随着互联网技术的发展,各类网站以及数据库面临大规模数据访问的时候,磁盘I/O往往成为性能瓶颈,从而导致过高的响应延迟。从而可以采用缓存技术,以高速内存作为数据对象的存储介质,将终端以前数据请求的响应分放在缓存服务器上,从而当终端发出相同的数据请求的时候,不需要将该数据请求再次发送给数据服务器,而是由缓存服务器将其缓存的副本响应发送用户,进而减少磁盘I/O带来的瓶颈。

现有技术中,一个企业拥有几十个甚至几百个不同的应用系统,企业一般会采购几家甚至几十家不同的IT服务供应商,不同供应商所采用的缓存产品和具体部署方案会有所区别,例如常用的缓存集群有Codis-Redis缓存集群、Twemproxy-Memcacheds缓存集群、Redis-Cluster缓存集群、以及节点集群。从而进行不同的应用系统各自的缓存获取。

然而现有技术中,由于不同的供应商所采用的缓存架构、缓存产品没有进行统一的规划和部署,各应用系统需要建设自己独立的缓存模块,继而导致了重复建设,从而增加了缓存的运维成本;并且,各IT服务供应商所选用的缓存产品不同、相同产品的版本也有区别,使得企业无法针对缓存进行有效的统一管理和规划,无法对硬件资源进行充分利用。



技术实现要素:

本发明提供一种基于多架构分布式缓存的处理方法和装置,用以解决现有技术中缓存的运维成本较高,企业无法针对缓存进行有效的统一管理和规划,无法对硬件资源进行充分利用的问题。

本发明的一方面是提供一种基于多架构分布式缓存的处理方法,包括:

在应用系统启动时,获取并保存配置中心中的缓存配置信息,所述缓存配置信息包括当前应用系统标识;

根据所述缓存配置信息,适配出与当前应用系统对应的客户端实例;

根据所述缓存配置信息、以及与当前应用系统对应的客户端实例,获取缓存数据;

将获取到的缓存数据的键值中添加当前应用系统标识,以使各应用系统共用同一缓存集群。

本发明的另一方面是提供一种基于多架构分布式缓存的处理装置,包括:

第一获取模块,用于在应用系统启动时,获取并保存配置中心中的缓存配置信息,所述缓存配置信息包括当前应用系统标识;

确定模块,用于根据所述缓存配置信息,适配出与当前应用系统对应的客户端实例;

缓存获取模块,用于根据所述缓存配置信息、以及与当前应用系统对应的客户端实例,获取缓存数据;

添加模块,用于将获取到的缓存数据的键值中添加当前应用系统标识,以使各应用系统共用同一缓存集群。

本发明的技术效果是:通过在应用系统启动时,获取并保存配置中心中的缓存配置信息,缓存配置信息包括当前应用系统标识;根据缓存配置信息,适配出与当前应用系统对应的客户端实例;根据缓存配置信息、以及与当前应用系统对应的客户端实例,获取缓存数据;将获取到的缓存数据的键值中添加当前应用系统标识,以使各应用系统共用同一缓存集群。从而应用系统只需要配置好缓存产品类型、版本、接口实现种类等信息,就能适配到合适的缓存客户端,通过客户端调用缓存服务,无需关心后台缓存部署方式,进而降低缓存的运维成本;同时,通过简单的客户端实例接口封装,应用系统可以简单方便的更改缓存产品。可以对异构缓存系统进行统一管理,提供统一的配置中心,能够对单点、主备、分布式架构,以及Redis、Memcached提供统一的管理;运维人员可以通过其管理缓存设备资源、管理应用系统的缓存配置、应用系统与设备的对应关系;也可以在配置中心为分布式系统缓存架构增减缓存节点,归并或者分拆单点式缓存系统;同时,使得使用相同缓存产品、相同版本的应用系统可以部分或者完全共享同一套缓存资源,从而实现硬件资源的最大利用,同时也可以人工调整各应用系统的缓存负载;通过缓存客户端适配模块,可以降低了缓存系统与应用系统的耦合性。

附图说明

图1为本发明实施例一提供的基于多架构分布式缓存的处理方法的流程图;

图2为本发明实施例二提供的基于多架构分布式缓存的处理方法的流程图;

图3为本发明实施例三提供的基于多架构分布式缓存的处理装置的结构示意图;

图4为本发明实施例四提供的基于多架构分布式缓存的处理装置的结构示意图。

具体实施方式

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

图1为本发明实施例一提供的基于多架构分布式缓存的处理方法的流程图,如图1所示,本实施例的方法包括:

步骤101、在应用系统启动时,获取并保存配置中心中的缓存配置信息,缓存配置信息包括当前应用系统标识。

在本实施例中,具体的,提供了配置中心、部署在各应用系统中的缓存客户端适配模块、以及缓存资源池。其中,配置中心用于保存各应用系统的缓存配置信息、以及现有缓存集群资源信息,对外提供高可用的配置管理服务。每一个应用系统中配置了一个缓存客户端适配模块。缓存资源池中包含各种异构缓存系统的服务器缓存集群,缓存资源池中包含Codis-Redis集群、Twemproxy-Memcache集群、Redis-Cluster集群,以及两种产品的单点、主备节点。

本实施例的执行主体可以为设置了应用系统、以及缓存客户端适配模块、的装置和设备。在应用系统启动时,调用缓存客户端适配模块,去读取配置中心中的缓存配置信息,同时可以建立对配置中心的配置字段的监听。然后,应用系统中的缓存客户端适配模块可以保存读取到的缓存配置信息。

其中,缓存配置信息中包括了当前应用系统标识、缓存信息以及缓存入口地址,同时包括了应用系统标识、缓存信息、以及缓存入口地址的对应关系,还包括了缓存节点的个数。其中,缓存信息包括了缓存类型、缓存版本号、客户端语言和架构种类。并且,缓存入口地址是与缓存集群相对应的。

举例来说,表1为缓存配置信息,如缓存配置信息表1所示。

表1为缓存配置信息

步骤102、根据缓存配置信息,适配出与当前应用系统对应的客户端实例。

在本实施例中,具体的,缓存客户端适配模块,涵盖了企业现有缓存多种编程语言的客户端集合,能够根据从配置中心读取的缓存配置信息适配出合适的客户端实例,从而该模块可以根据配置中心的缓存配置信息,生成具体对应某种语言某种架构的客户端实例以供应用系统使用。进而可以根据缓存配置信息,去适配出与当前应用系统对应的客户端实例。

步骤103、根据缓存配置信息、以及与当前应用系统对应的客户端实例,获取缓存数据。

其中,步骤103的具体实现方式为:

根据缓存配置信息,确定与当前应用系统标识对应的缓存入口地址;

使用与当前应用系统对应的客户端实例,获取与缓存入口地址对应的缓存集群中的缓存数据。

在本实施例中,具体的,首先根据缓存配置信息中的当前应用系统标识,应用系统标识、缓存信息、以及缓存入口地址的对应关系,确定出与当前应用系统标识对应的缓存入口地址。然后就可以使用与当前应用系统对应的客户端实例,获取与缓存入口地址对应的缓存集群中的缓存数据,进而可以根据缓存配置信息适配出合适的客户端实例,使得应用系统使用生成的客户端实例去使用缓存数据。

举例来说,应用系统A中的缓存客户端适配模块,可以适配出Redis客户端的客户端实例,支持的C语言、架构种类Redis,缓存版本号3.0,对应的缓存集群为Redis-Cluster;应用系统B中的缓存客户端适配模块,可以适配出Redis客户端的客户端实例,支持的JAVA语言、架构种类Redis,缓存版本号3.0,对应的缓存集群为Redis-Cluster;应用系统C中的缓存客户端适配模块,可以适配出Redis客户端的客户端实例,支持的JAVA语言、架构种类Redis,缓存版本号2.9,对应的缓存集群为Codis-Redis;应用系统D中的缓存客户端适配模块,可以适配出Memcached客户端的客户端实例,支持的JAVA语言、架构种类Memcached,缓存版本号1.4.14,对应的缓存集群为Twemproxy-Memcached;应用系统E中的缓存客户端适配模块,可以适配出Memcached客户端的客户端实例,支持的JAVA语言、架构种类Memcached,缓存版本号1.4.14,对应的缓存集群为Single。

步骤104、将获取到的缓存数据的键值中添加当前应用系统标识,以使各应用系统共用同一缓存集群。

在本实施例中,具体的,缓存客户端适配模块能够根据应用系统名称为键值增加前缀,从而避免缓存键值冲突、进行逻辑隔离。具体来说,缓存客户端适配模块会在获取到的缓存数据的键值中,增加当前应用系统标识,并且这个当前应用系统标识是应用系统的唯一标识,从而逻辑上区分各应用系统的命名空间,使各应用系统能够公用同一套物理缓存,即各应用系统共用同一缓存集群。

举例来说,可以使得使用同一版本、同一产品、不同客户端语言的应用系统A和应用系统B可以共用同一套物理缓存服务器,即共用同一缓存集群。

本实施例通过在应用系统启动时,获取并保存配置中心中的缓存配置信息,缓存配置信息包括当前应用系统标识;根据缓存配置信息,适配出与当前应用系统对应的客户端实例;根据缓存配置信息、以及与当前应用系统对应的客户端实例,获取缓存数据;将获取到的缓存数据的键值中添加当前应用系统标识,以使各应用系统共用同一缓存集群。从而应用系统只需要配置好缓存产品类型、版本、接口实现种类等信息,就能适配到合适的缓存客户端,通过客户端调用缓存服务,无需关心后台缓存部署方式,进而降低缓存的运维成本;同时,通过简单的客户端实例接口封装,应用系统可以简单方便的更改缓存产品。可以对异构缓存系统进行统一管理,提供统一的配置中心,能够对单点、主备、分布式架构,以及Redis、Memcached提供统一的管理;运维人员可以通过其管理缓存设备资源、管理应用系统的缓存配置、应用系统与设备的对应关系;也可以在配置中心为分布式系统缓存架构增减缓存节点,归并或者分拆单点式缓存系统;同时,使得使用相同缓存产品、相同版本的应用系统可以部分或者完全共享同一套缓存资源,从而实现硬件资源的最大利用,同时也可以人工调整各应用系统的缓存负载;通过缓存客户端适配模块,可以降低了缓存系统与应用系统的耦合性。

图2为本发明实施例二提供的基于多架构分布式缓存的处理方法的流程图,在实施例一的基础上,如图2所示,本实施例的方法,在步骤102之前,还包括:

步骤201、获取并保存配置中心中的修改后的缓存配置信息,其中,修改后的缓存配置信息为配置中心接收到用户发送的修改指令,并根据修改指令对缓存配置信息进行修改后得到的。

在本实施例中,具体的,用户可以登录配置中心,去配置与应用系统对应的缓存配置信息,具体来说,用户向配置中心发送修改指令,配置中心根据修改指令对缓存配置信息进行修改后得到修改后的缓存配置信息。进而可以对缓存客户端类型、缓存产品种类、缓存版本号等等进行修改;同时可以根据各缓存节点的负载,在线调整各应用系统的缓存配置信息。

由于调用缓存客户端适配模块建立了对配置中心的配置字段的监听,进而修改后的缓存配置信息能够主动推送到应用系统的缓存客户端适配模块中,进而应用系统的缓存客户端适配模块可以获取并保存修改后的缓存配置信息。然后,应用系统就可以根据修改后的缓存配置信息,去使用缓存集群。

本实施例通过在应用系统启动时,获取并保存配置中心中的缓存配置信息,缓存配置信息包括当前应用系统标识;并且可以获取并保存配置中心中的修改后的缓存配置信息;然后根据缓存配置信息,适配出与当前应用系统对应的客户端实例;根据缓存配置信息、以及与当前应用系统对应的客户端实例,获取缓存数据;将获取到的缓存数据的键值中添加当前应用系统标识,以使各应用系统共用同一缓存集群。从而应用系统只需要配置好缓存产品类型、版本、接口实现种类等信息,就能适配到合适的缓存客户端,通过客户端调用缓存服务,无需关心后台缓存部署方式,进而降低缓存的运维成本;同时,通过简单的客户端实例接口封装,应用系统可以简单方便的更改缓存产品。可以对异构缓存系统进行统一管理,提供统一的配置中心,能够对单点、主备、分布式架构,以及Redis、Memcached提供统一的管理;运维人员可以通过其管理缓存设备资源、管理应用系统的缓存配置、应用系统与设备的对应关系;也可以在配置中心为分布式系统缓存架构增减缓存节点,归并或者分拆单点式缓存系统;在配置中心修改缓存配置信息之后,能够对所有应用系统的缓存客户端适配模块推送更新后的缓存配置信息;同时,使得使用相同缓存产品、相同版本的应用系统可以部分或者完全共享同一套缓存资源,从而实现硬件资源的最大利用,同时也可以人工调整各应用系统的缓存负载;通过缓存客户端适配模块,可以降低了缓存系统与应用系统的耦合性。

图3为本发明实施例三提供的基于多架构分布式缓存的处理装置的结构示意图,如图3所示,本实施例提供的装置,包括:

第一获取模块31,用于在应用系统启动时,获取并保存配置中心中的缓存配置信息,缓存配置信息包括当前应用系统标识;

确定模块32,用于根据缓存配置信息,适配出与当前应用系统对应的客户端实例;

缓存获取模块33,用于根据缓存配置信息、以及与当前应用系统对应的客户端实例,获取缓存数据;

添加模块34,用于将获取到的缓存数据的键值中添加当前应用系统标识,以使各应用系统共用同一缓存集群。

本实施例的基于多架构分布式缓存的处理装置可执行本发明实施例一提供的基于多架构分布式缓存的处理方法,其实现原理相类似,此处不再赘述。

本实施例通过在应用系统启动时,获取并保存配置中心中的缓存配置信息,缓存配置信息包括当前应用系统标识;根据缓存配置信息,适配出与当前应用系统对应的客户端实例;根据缓存配置信息、以及与当前应用系统对应的客户端实例,获取缓存数据;将获取到的缓存数据的键值中添加当前应用系统标识,以使各应用系统共用同一缓存集群。从而应用系统只需要配置好缓存产品类型、版本、接口实现种类等信息,就能适配到合适的缓存客户端,通过客户端调用缓存服务,无需关心后台缓存部署方式,进而降低缓存的运维成本;同时,通过简单的客户端实例接口封装,应用系统可以简单方便的更改缓存产品。可以对异构缓存系统进行统一管理,提供统一的配置中心,能够对单点、主备、分布式架构,以及Redis、Memcached提供统一的管理;运维人员可以通过其管理缓存设备资源、管理应用系统的缓存配置、应用系统与设备的对应关系;也可以在配置中心为分布式系统缓存架构增减缓存节点,归并或者分拆单点式缓存系统;同时,使得使用相同缓存产品、相同版本的应用系统可以部分或者完全共享同一套缓存资源,从而实现硬件资源的最大利用,同时也可以人工调整各应用系统的缓存负载;通过缓存客户端适配模块,可以降低了缓存系统与应用系统的耦合性。

图4为本发明实施例四提供的基于多架构分布式缓存的处理装置的结构示意图,在实施例三的基础上,如图4所示,本实施例提供的装置,缓存获取模块33,包括:

地址确定子模块331,用于根据缓存配置信息,确定与当前应用系统标识对应的缓存入口地址;

缓存获取子模块332,用于使用与当前应用系统对应的客户端实例,获取与缓存入口地址对应的缓存集群中的缓存数据。

本实施例提供的装置,还包括:

第二获取模块41,用于在确定模块32根据缓存配置信息,适配出与当前应用系统对应的客户端实例之前,获取并保存配置中心中的修改后的缓存配置信息,其中,修改后的缓存配置信息为配置中心接收到用户发送的修改指令,并根据修改指令对缓存配置信息进行修改后得到的。

缓存配置信息,还包括以下的至少一种:应用系统标识、缓存信息、以及缓存入口地址的对应关系,缓存节点的个数;

其中,缓存信息包括了缓存类型、缓存版本号、客户端语言和架构种类。

应用系统中配置了一个缓存客户端适配模块。

本实施例的基于多架构分布式缓存的处理装置可执行本发明实施例二提供的基于多架构分布式缓存的处理方法,其实现原理相类似,此处不再赘述。

本实施例通过在应用系统启动时,获取并保存配置中心中的缓存配置信息,缓存配置信息包括当前应用系统标识;并且可以获取并保存配置中心中的修改后的缓存配置信息;然后根据缓存配置信息,适配出与当前应用系统对应的客户端实例;根据缓存配置信息、以及与当前应用系统对应的客户端实例,获取缓存数据;将获取到的缓存数据的键值中添加当前应用系统标识,以使各应用系统共用同一缓存集群。从而应用系统只需要配置好缓存产品类型、版本、接口实现种类等信息,就能适配到合适的缓存客户端,通过客户端调用缓存服务,无需关心后台缓存部署方式,进而降低缓存的运维成本;同时,通过简单的客户端实例接口封装,应用系统可以简单方便的更改缓存产品。可以对异构缓存系统进行统一管理,提供统一的配置中心,能够对单点、主备、分布式架构,以及Redis、Memcached提供统一的管理;运维人员可以通过其管理缓存设备资源、管理应用系统的缓存配置、应用系统与设备的对应关系;也可以在配置中心为分布式系统缓存架构增减缓存节点,归并或者分拆单点式缓存系统;在配置中心修改缓存配置信息之后,能够对所有应用系统的缓存客户端适配模块推送更新后的缓存配置信息;同时,使得使用相同缓存产品、相同版本的应用系统可以部分或者完全共享同一套缓存资源,从而实现硬件资源的最大利用,同时也可以人工调整各应用系统的缓存负载;通过缓存客户端适配模块,可以降低了缓存系统与应用系统的耦合性。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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