一种通用缓存系统及其方法

文档序号:8301749阅读:438来源:国知局
一种通用缓存系统及其方法
【技术领域】
[0001]本发明涉及数据处理的技术领域,具体地涉及一种通用缓存系统及其方法,主要用于车联网系统中大数据的处理。
【背景技术】
[0002]随着人类社会的发展和进步,人们越来越多地采用汽车作为交通工具,道路上的汽车增长迅猛,这就亟需对道路上的车辆进行监控和分析,这样车联网系统就应运而生。而车联网系统中存在大量的数据需要进行存储和处理,这就要求车联网系统要具有一种通用缓存系统。
[0003]目前,在车联网系统中使用Redis缓存系统,但是这种缓存系统不能满足车联网系统的一些使用要求:
[0004]l、Redis缓存目前最新版本并不支持分片,但是当用户的数据量超过单机内存时,需要对缓存进行分片处理。
[0005]2、目前的Redis缓存一些客户端的Hash(哈希)分片不能达到数据均匀分布,并且不支持动态扩展。如果使用停机扩展,扩展后的数据不能达到均匀分布。
[0006]3、当多个业务使用Redis缓存的时候,会造成key的复杂,容易产生重叠错误,而且可维护性差。
[0007]4、目前Redis缓存的客户端为第三方开发,多语言支持不统一。
[0008]5、目前Redis缓存的监控和管理相对薄弱。

【发明内容】

[0009]本发明的技术解决问题是:克服现有技术的不足,提供一种通用缓存系统,其架构设计简单、实用、负载均衡,支持动态水平扩展且扩展过程中不影响应用系统正常访问,提高key的可维护性,支持多语言客户端访问;便于集中监控和管理。
[0010]本发明的技术解决方案是:这种通用缓存系统,其采用弱中心一致性Hash架构并包括配置服务器、数据服务器、脚本工具、客户端工具、Agent日志收集器、配置管理单元;
[0011]配置服务器为一个,配置来存储通用缓存的元数据,为客户端创建连接池、系统升级和状态通知使用;
[0012]数据服务器为一个或多个,配置来存储海量缓存数据;
[0013]脚本工具配置来提供初始化脚本用来初始化配置服务器元数据、提供动态扩展脚本用来动态水平扩展使用、提供管理脚本对缓存库、表的增删改查和缓存数据进行控制;
[0014]客户端工具配置来提供多语言客户端进行共享缓存访问;
[0015]Agent日志收集器配置来对每个服务器进行日志收集,统一进行监控;
[0016]配置管理单元配置来对缓存的安装、初始化、升级、和数据做统一的配置控制。
[0017]还提供了一种采用这种通用缓存系统的方法,该方法包括以下步骤:
[0018](I)通过配置管理单元进行通用缓存系统的安装,用脚本工具来初始化配置服务器;
[0019](2)应用服务通过客户端工具进行共享缓存的访问;
[0020](3)在数据服务器上执行应用服务所有缓存的增删改查操作。
[0021]通过本发明的系统和方法,保证架构设计简单、实用,一致性Hash使缓存数据均匀分布,达到负载均衡;动态水平扩展能对现有数据进行迀移达到各缓存实例内存均衡,水平扩展后性能成线性增长,扩展过程中不影响应用系统正常访问;优化了 Redis缓存客户端代码中keys指令的使用,客户端封装了丰富的查询接口,并在缓存扩展数据迀移的过程中解决了数据量大内存溢出的问题;引入库、表结构使不同业务之间实现数据隔离,提高key的可维护性;支持多语言客户端访问共享缓存,内存自动回收;每个实例提供Agent代理进行统一日志收集,便于集中的监控和管理。
【附图说明】
[0022]图1为根据本发明的弱中心一致性Hash架构示意图。
[0023]图2为采用根据本发明的通用缓存系统的方法的流程图。
[0024]图3为采用根据本发明的所述步骤⑷的流程图。
[0025]图4为采用根据本发明的所述步骤(5)的流程图。
【具体实施方式】
[0026]这种通用缓存系统,其采用弱中心一致性Hash架构(如图1所示)并包括配置服务器、数据服务器、脚本工具、客户端工具、Agent日志收集器、配置管理单元;
[0027]配置服务器为一个,配置来存储通用缓存的元数据,为客户端创建连
[0028]接池、系统升级和状态通知使用;
[0029]数据服务器为一个或多个,配置来存储海量缓存数据;
[0030]脚本工具配置来提供初始化脚本用来初始化配置服务器元数据、提供动态扩展脚本用来动态水平扩展使用、提供管理脚本对缓存库、表的增删改查和缓存数据进行控制;
[0031]客户端工具配置来提供多语言客户端进行共享缓存访问;
[0032]Agent日志收集器配置来对每个服务器进行日志收集,统一进行监控;
[0033]配置管理单元配置来对缓存的安装、初始化、升级、和数据做统一的配置控制。
[0034]如图1所示,这种通用缓存系统(即,分布式共享缓存)采用弱中心一致性Hash架构,应用系统通过配置服务器获取配置信息,之后数据的读写只访问Hash环的各服务器节点。
[0035]分布式共享缓存是在开源项目Redis缓存的基础上做了源代码的修改和多语言客户端的封装,分布式可根据实际情况在每台机器部署多个缓存实例,并支持动态水平扩展和持久化设置。
[0036]另外,配置服务器、数据服务器使用Ke^alived心跳检测。对每个缓存实例进行Keepalived心跳检测,发现故障机器使用VRRP路由协议切换VIP,切换速度秒级,且不存在脑裂问题,保证缓存服务的高可用。
[0037]另外,每个数据服务器包括主、备两个服务器,主服务器为应用提供服务,备服务器提供高可用保证和持久化。
[0038]另外,该通用缓存系统还包括监控管理单元,其配置来对每个机器上的缓存实例的key数量、命中率、慢日志、连接数、CPU、内存、磁盘、网络1做实时监控,并对超出阀值状态值进行实时报警。
[0039]如图2所示,还提供了一种采用这种通用缓存系统的方法,该方法包括以下步骤:
[0040](I)通过配置管理单元进行通用缓存系统的安装,用脚本工具来初始化配置服务器;
[0041](2)应用服务通过客户端工具进行共享缓存的访问;
[0042](3)在数据服务器上执行应用服务所有缓存的增删改查操作。
[0043]通过本发明的系统和方法,保证架构设计简单、实用,一致性Hash使缓存数据均匀分布,达到负载均衡;动态水平扩展能对现有数据进行迀移达到各缓存实例内存均衡,水平扩展后性能成线性增长,扩展过程中不影响应用系统正常访问;优化了 Redis缓存客户端代码中keys指令的使用,客户端封装了丰富的查询接口,并在缓存扩展数据迀移的过程中解决了数据量大内存溢出的问题;引入库、表结构使不同业务之间实现数据隔离,提高key的可维护性;支持多语言客户端访问共享缓存,内存自动回收;每个实例提供Agent代理进行统一日志收集,便于集中的监控和管理。
[0044]另外,所述步骤(2)中先取一次配置服务器的元数据后,再初始化一次数据服务器的连接池。
[0045]另外,该方法还包括步骤(4)运维人员通过Agent日志收集器收集上来的数据在监控管理单元实时查看缓存的运行状态。具体地,如图3所示,所述步骤(4)包括以下分步骤:
[0046](4.1)运维人员首先登录运维监控系统,进入服务监控子系统;
[0047](4.2)查看是否已进行共享缓存的初始化,如果未进行共享缓存初始化,首先要初始化共享缓存;
[0048](4.3)查看是否已添加配置、数据节点服务器备机,如果未添加配置、数据节点服务器备机,要进行备机的添加;
[0049](4.4)查看监控配置、数据节点服务器状态是否正常,如果出现报警,首先查看目前KeepAlived切换状态是否已
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1