分布式缓存系统的制作方法

文档序号:17160486发布日期:2019-03-20 00:37阅读:158来源:国知局
分布式缓存系统的制作方法

本发明涉及计算机技术领域,更具体地,涉及一种分布式缓存系统。



背景技术:

在互联网应用领域中,数据缓存是非常重要的技术,缓存服务器在互联网应用中是不可或缺的。互联网业务系统中需要缓存的数据有诸如业务数据、会话信息等等,种类非常之多。为了便于数据管理和分类,一般建立多套缓存服务器,各个缓存服务器存放着不同业务系统需要进行缓存的数据。现有的分布式缓存系统架构,各业务系统与其对应的缓存服务器,通过该业务系统的配置数据与缓存服务器进行直接的网络连接,这将导致缓存服务器在产生故障;将其切换到另外一套缓存服务器时,业务系统需要修改相应的配置数据,重新启动后再与缓存服务器进行连接。就该架构而言在业务系统与缓存服务器之间的对应关系管理将分散开来,没有进行集中统一地管理。不仅如此,在缓存服务器进行切换时,也给业务系统的配置数据修改造成难度,而且人为操作也可能造成配置数据修改错误。



技术实现要素:

有鉴于此,本发明提供了一种分布式缓存系统,包括服务器集群和系统管理平台,其中,

所述服务器集群,包括集群、数据分布层和数据存储层,其中,

所述数据分布层与集群相连接,管理集群内部节点间通信、自动故障切换、副本复制与数据同步、智能数据再平衡与数据迁移;

所述数据存储层与集群相连接,用于在内存和磁盘中的存储和检索数据;

所述集群分别与数据分布层和数据存储层相连接,集群中将缓存数据分摊到多个分片,每个分片具有相同的组件,每个分片包括多个节点,其中包括至少一个主节点和至少一个从节点,用于创建出大容量的缓存,在单个节点上预留内存,当需要扩容时使用所述预留内存实现扩容;分片内通过数据迁移实现平滑纵向扩容、以及通过增加分片的数量实现平滑横向扩容;

所述系统管理平台与所述服务器集群相连接,用于对服务器集群进行运维管理与监控,包括集群管理模块、实例管理模块、报警监控管理模块、报表管理模块、客户端配置管理模块、以及权限管理模块,其中,

所述集群管理模块用于创建、销毁、更改参数配置;

所述实例管理模块用于起停、部署、更改运行配置、及数据查询;

所述报警监控管理模块用于报警规则管理、报警及异常记录管理、实例及集群状态曲线展示;

所述权限管理模块将用户划分为超级管理员,集群管理员,集群用户三种角色,对每种角色的操作权限作权限控制。

优选地,所述分布式缓存系统还包括系统进程池、哨兵、自动切换控制器、信息采集器、规则报警器、扩容控制器、配置服务器、及软件开发工具包,其中,

所述系统进程池,用于独立部署系统进程或者将现有已经部署的系统进程纳入管理,形成逻辑上统一的缓存资源池;

所述哨兵,在每个机房设有一套哨兵,用于判断实例是否存活;

所述自动切换控制器,用于接受来自哨兵的投票结果,执行自动切换;

所述信息采集器,用于部署采集应用节点,对所有实例进行信息采集,存储到时间序列数据库,必要时发送报警信息;

所述规则报警器,用于对采集传输的数据进行实时分析,使用预定义的规则进行报警;

所述扩容控制器,用于控制各分布式组件协调工作,进行平滑纵向切换和水平扩容;

所述配置服务器,用于提供配置和元信息服务,应用端的软件开发工具包来轮询变更;

所述软件开发工具包,用于为应用提供操作集群数据的应用程序接口api,利用轮询到的集群配置元信息访问后端的节点,所述集群配置元信息包括节点拓扑、路由和读写策略;软件开发工具包还用于监控配置信息变更,包括故障切换、和服务节点迁移,动态重启底层的连接池。

优选地,所述节点为服务器,其中,所述主节点为主服务器,所述从节点为从服务器。

优选地,对缓存数据进行异步复制和同步复制。

优选地,当读取缓存数据时,读取方式包括:选择主节点优先、从节点优先或随意挑选的方式。

优选地,所述哨兵通过选票算法自动判断实例的不存活状态,通知所述自动切换控制器进行主节点与从节点的自动切换,切换时间以秒为单位。

与现有技术相比,本发明提供的分布式缓存系统,至少实现了如下的有益效果:

本发明分布式文件系统设置了系统管理平台,对分布式缓存系统对接外部平台后数据交互更顺畅;另外集群将缓存数据分摊到多个分片,创建出大容量的缓存,在单个节点上预留内存,当需要扩容时使用所述预留内存实现扩容;分片内通过数据迁移实现平滑纵向扩容、以及通过增加分片的数量实现平滑横向扩容,提高了数据访问效率;主从节点的设置在重启后数据不会丢失。

当然,实施本发明的任一产品必不特定需要同时达到以上所述的所有技术效果。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1是本申请实施例1中提供的分布式缓存系统结构示意图;

图2是本申请实施例2中提供的分布式缓存系统结构示意图;

图3是本申请实施例3中查看分片集群拓扑图;

图4是实施例3中开放式可插拔规范ops监控情况;

图5是实施例3中查看客户端配置及列表。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

实施例1:

结合图1,图1中示出了分布式缓存系统的结构示意图,其中包括:服务器集群和系统管理平台,其中,

所述服务器集群,包括集群、数据分布层和数据存储层,其中,

所述数据分布层与集群相连接,管理集群内部节点间通信、自动故障切换、副本复制与数据同步、智能数据再平衡与数据迁移;

所述数据存储层与集群相连接,用于在内存和磁盘中的存储和检索数据;

所述集群分别与数据分布层和数据存储层相连接,集群中将缓存数据分摊到多个分片,每个分片具有相同的组件,每个分片包括多个节点,其中包括至少一个主节点和至少一个从节点,用于创建出大容量的缓存,在单个节点上预留内存,当需要扩容时使用所述预留内存实现扩容;分片内通过数据迁移实现平滑纵向扩容、以及通过增加分片的数量实现平滑横向扩容;

所述系统管理平台与所述服务器集群相连接,用于对服务器集群进行运维管理与监控,包括集群管理模块、实例管理模块、报警监控管理模块、报表管理模块、客户端配置管理模块、以及权限管理模块,其中,

所述集群管理模块用于创建、销毁、更改参数配置;

所述实例管理模块用于起停、部署、更改运行配置、及数据查询;

所述报警监控管理模块用于报警规则管理、报警及异常记录管理、实例及集群状态曲线展示;

所述权限管理模块将用户划分为超级管理员,集群管理员,集群用户三种角色,对每种角色的操作权限作权限控制。

所述节点为服务器,其中,所述主节点为主服务器,所述从节点为从服务器。

本发明的分布式缓存系统对缓存数据进行异步复制和同步复制,对于采用同步复制和异步复制这里需要说明:

同步复制的数据在任何时间在任何复制节点均保持一致,当复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点;

异步复制是指对业务系统的数据存储操作独立进行,对备份系统的数据存储操作按照排队方式进行,业务系统的i/o操作不受异地备份系统的i/o操作影响。异步复制,所有复制节点的数据在一定时间内是不同步的。如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点。这些不同的事务间可以间隔几秒,几分种,几小时,也可以是几天之后。复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。

同时采用同步复制和异步复制保证了复制数据的一致性。

本发明的分布式缓存系统当读取缓存数据时,读取方式包括:选择主节点优先、从节点优先或随意挑选的方式。

本申请的分布式缓存系统采用了系统管理平台对分布式缓存系统对接外部平台后数据交互更顺畅。

集群将缓存数据分摊到多个分片,创建出大容量的缓存,在单个节点上预留内存,当需要扩容时使用所述预留内存实现扩容;分片内通过数据迁移实现平滑纵向扩容、以及通过增加分片的数量实现平滑横向扩容,提高了数据访问效率。

实施例2:

在实施例1的基础上,结合图2,图2示出了本发明分布式缓存系统的另一实施例。

如图2,本实施例中除了具有实施例1中结构外,还具有系统进程池、哨兵、自动切换控制器、信息采集器、规则报警器、扩容控制器、配置服务器、及软件开发工具包。

所述系统进程池,用于独立部署系统进程或者将现有已经部署的系统进程纳入管理,形成逻辑上统一的缓存资源池;

所述哨兵,在每个机房设有一套哨兵,用于判断实例是否存活;

所述自动切换控制器,用于接受来自哨兵的投票结果,执行自动切换;

所述信息采集器,用于部署采集应用节点,对所有实例进行信息采集,存储到时间序列数据库,必要时发送报警信息;

所述规则报警器,用于对采集传输的数据进行实时分析,使用预定义的规则进行报警;

所述扩容控制器,用于控制各分布式组件协调工作,进行平滑纵向切换和水平扩容;

所述配置服务器,用于提供配置和元信息服务,应用端的软件开发工具包来轮询变更;

所述软件开发工具包,用于为应用提供操作集群数据的应用程序接口api,利用轮询到的集群配置元信息访问后端的节点,所述集群配置元信息包括节点拓扑、路由和读写策略;软件开发工具包还用于监控配置信息变更,包括故障切换、和服务节点迁移,动态重启底层的连接池。

实施例3;

本实施例为应用实施例:本发明的分布式缓存系统是从缓存发展而来,架构图包括很多重要的业务系统,例如题库展示、管理信息平台(mis平台)、校管平台等。

具有以下的功能特点:

1)支持大容量缓存

将缓存数据分摊到多个分片(每个分片上具有相同的构成,比如:都是一主一从两个节点)上,从而可以创建出大容量的缓存。

2)数据的高可用性

支持异步复制和同步复制,目前可以达到等同于mysql级别的数据可用性。mysql是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

3)支持多种i/o策略

针对读操作可分为“主优先”、“从优先”、“随意挑选”等方式;不同的i/o策略,对数据一致性的影响也不同,应用可以根据自身对数据一致性的需求,选择不同的i/o策略。

4)哨兵服务和故障自动切换

通过选举算法实现的哨兵服务能够自动判断实例的不存活状态,通知自动切换控制器failover服务进行主从自动切换,切换时间在秒级,以保证服务的7*24小时不间断运行。

5)支持动态扩容

可通过多种途径实现动态扩容:

第一种形式,通过在单个节点上预留内存,然后需要扩容时直接使用预留内存的方法达到扩容的目的;

第二种形式,通过数据迁移来实现扩容,为平滑纵向扩容。

第三种形式,通过增加分片数来实现扩容,为平滑横向扩容。

为实现上述功能,本申请的分布式缓存系统包括以下组件:

系统进程池(instancepool)独立部署一系列进程或者将现有已经部署的进程纳入管理,形成逻辑上统一的缓存资源池。

哨兵(failuredetector),每个机房一套哨兵,通过分布式投票判断实例是否存活。

自动切换控制器(failovercontroller)接受来自哨兵的投票结果,执行自动切换。

信息采集(pusher)部署一系列采集应用节点,对所有的实例进行信息采集,存储到时间序列数据库,必要的时候发送报警信息。

规则报警器(alarm)对采集传输的数据进行实时分析,使用预定义的一系列规则进行报警

扩容控制器(scalingcontroller)控制各分布式组件(proxy,filter)协调工作,进行平滑纵向切换和水平扩容。

配置服务器(configserver)负责提供配置和元信息服务,以便应用端的clientsdk来查询(polling)变更。

软件开发工具包(clientsdk)为应用提供操作集群数据(多个分片的组合为集群)的应用程序编程接口api。利用查询(polling)到的集群配置元信息(节点拓扑、路由和读写策略等),访问后端节点。软件开发工具包sdk负责监控配置信息变更(比如故障切换、服务节点迁移等),动态重启底层的连接池,对应用透明。

系统管理平台(adminplatform),是统一管理入口,提供集群管理(创建、销毁、更改参数配置),实例管理(起停、部署、更改运行配置、数据查询),报警监控管理(报警规则管理、报警及异常记录管理、实例及集群状态曲线展示),报表管理,客户端配置管理等功能。同时,权限管理将用户划分为超级管理员,集群管理员,集群用户三种角色,对每种角色的操作权限作严格的权限控制。

本申请中分布式缓存系统管理平台具体包括以下工作内容:

1)查看分片集群拓扑:如图3所示,图3中可以查看到各分片集群的拓扑图,图中包括分片1、分片2、分片3、分片4、分片5和分片6;

2)开放式可插拔规范ops监控:如图4所示,对接口进行监控。

3)查看客户端配置及列表,如图5所示,可以查看到客户端的配置列表。

本发明的重要发明点在于扩容,包括分片间和分片内的扩容,分片间为平滑横向扩容,能够分摊压力和流量,分片间为平滑纵向扩容个,主从灾备防止单分片不可用,主从读写分离,分摊读压力和流量。

1、纵向扩容(scalingup):

在内存不够,需要增加内存时首先考虑的是纵向扩容,即增加每个分片的主、从节点的内存。

纵向扩容时如果redis实例所在计算机物理内存不够,就需要进行数据迁移。

数据迁移的同时,服务不能暂停

2、横向扩容(scalingout)

单一分片的内存是不能无限扩容(纵向)的,太大了会影响复制的效率

纵向扩容无法进行的情况下(单一分片内存已经很大,或者流量压力很大),就需要进行横向扩容,即增加集群的分片数。

横向扩容的同时,服务不能暂停。

通过上述实施例可知,本发明提供的分布式缓存系统,至少实现了如下的有益效果:

本发明分布式文件系统设置了系统管理平台对分布式缓存系统对接外部平台后数据交互更顺畅;另外集群将缓存数据分摊到多个分片,创建出大容量的缓存,在单个节点上预留内存,当需要扩容时使用所述预留内存实现扩容;分片内通过数据迁移实现平滑纵向扩容、以及通过增加分片的数量实现平滑横向扩容,提高了数据访问效率;主从节点的设置在重启后数据不会丢失。

虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

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