基于Redis的集中式缓存队列服务架构方法及网络结构技术

技术编号:20014640 阅读:24 留言:0更新日期:2019-01-05 22:42
本发明专利技术架构方法及网络结构采用了Redis的集中式缓存队列服务技术,在缓存队列服务器上按照Master/Slave模式部署Redis应用服务,实现了对该节点数据和服务的容灾,当Master节点出现宕机时,Slave节点自动更替。通过Sentinel技术,将多个缓存队列服务器集群起来,当现有缓存队列服务无法满足当前互联网应用的性能需求时,可以部署新的节点,动态加入Sentinel构造的缓存队列。经过改造封装的缓存队列服务客户端程序,提供了对缓存队列服务集群的操作能力,通过内置的唯一性算法,计算出数据存储的分片位置,结合Sentinel提供的服务能力,能够快速准确的定位至对应的缓存队列节点组,完美的解决了缓存队列服务的水平扩容问题。

Redis-based Centralized Cache Queue Service Architecture and Network Architecture

The architecture method and network structure of the invention adopt Redis centralized caching queue service technology, deploy Redis application service according to Master/Slave mode on the caching queue server, and realize disaster tolerance for the data and service of the node. When the Master node is down, the Slave node automatically replaces. Through Sentinel technology, multiple caching queue servers are clustered. When the existing caching queue service can not meet the performance requirements of current Internet applications, new nodes can be deployed to join the caching queue constructed by Sentinel dynamically. After the modification of the encapsulated caching queue service client program, the operation capability of the caching queue service cluster is provided. Through the built-in uniqueness algorithm, the fragmentation location of data storage is calculated. Combined with the service capability provided by Sentinel, the caching queue service client program can quickly and accurately locate to the corresponding caching queue node group, which perfectly solves the horizontal expansion problem of the caching queue service.

【技术实现步骤摘要】
基于Redis的集中式缓存队列服务架构方法及网络结构
本专利技术涉及一种通过服务架构的调整和优化来提升应用服务器的性能,从而提高响应速度的技术,具体的说是一种基于Redis的集中式缓存队列服务架构方法及网络结构。技术背景目前在大型互联网应用的运营过程中,伴随着用户量的逐步增长,应用的访问量和应用的复杂度都日益提升,要想为用户提供一个良好的访问体验,就必须解决用户访问应用时,应用的响应速度问题(包括网页的打开速度和APP程序的数据获取和刷新速度)。大多数互联网应用在建设初期,并未考虑过此方面的问题,或者对此方面预估不足,当应用的响应速度不足以支撑用户的体量和业务逻辑的复杂度时,互联网应用的运营商一般会采用两个渠道并行的方式解决问题:第一种是更换、增加硬件的方式提升应用服务器的性能,从而提高响应速度,但是以此带来的问题,是较大的硬件资源投入和旧的资源的浪费;第二种是软件侧进行架构的调整和程序代码的优化,通过架构体系的调整从根本上解决性能的瓶颈,通过程序代码的重构改造实现程序业务逻辑处理速度的提升。而在软件侧改造的过程中,对于缓存队列的使用是一个使用率相当高的解决方案。传统的对于缓存队列的使用,都是直接采用开源的软件项目(例如:Memcached、Redis),直接部署单点的缓存队列服务器,通过开源项目提供的客户端程序,让互联网应用服务端对缓存服务器进行读取。此种模式有几个问题:(1)单点的缓存服务器在容灾方面的不足,若出现单点的服务器宕机,则缓存队列服务立刻停止,依赖于此服务的应用将相继发生错误;(2)单点的缓存队列服务也存在着性能的瓶颈,当访问体量超过单点缓存队列服务的承受能力时,缓存队列服务将发生错误;(3)无法根据实际需要,简单快速的提升缓存队列的性能。
技术实现思路
针对上述技术问题,本专利技术提出一种基于Redis的集中式缓存队列服务架构方法,包括以下步骤:由两个Redis节点按Master/Slave方式部署构造成一个具备服务和数据容灾的高速缓存队列服务节点组的步骤;利用Sentinel技术,将多组高速缓存队列服务节点组进行集群,组成高速缓存队列服务集群,以统一的地址和端口对外提供服务的步骤;应用程序节点通过内嵌的缓存队列客户端程序包与高速缓存队列服务集群进行通信,利用程序包提供的接口,实现对缓存队列操作的步骤。进一步优选地,所述由两个或两个以上的Redis节点按Master/Slave方式部署构造成一个具备服务和数据容灾的高速缓存队列服务节点组的步骤包括,准备多台缓存队列服务器,在每台服务器上采用Master/Slave模式部署Redis应用节点,组成高速缓存队列服务节点组;所述利用Sentinel技术,将多组高速缓存队列服务节点组进行集群,以统一的地址和端口对外提供服务的步骤包括,通过Sentinel模式将多台服务器的高速缓存队列节点进行集群,由Sentinel统一暴露出缓存队列服务的调用地址和端口。进一步优选地,还包括嵌入缓存队列客户端程序包的步骤,互联网应用的服务端由多个应用节点构成的应用集群,在应用集群的每个节点的应用程序中嵌入缓存队列客户端程序包,同时修改该节点的配置文件,设置配置文件中的节点唯一标识属性值和缓存队列服务调用地址和端口。进一步优选地,所述用程序节点通过内嵌的缓存队列客户端程序包与高速缓存队列服务集群进行通信,利用程序包提供的接口,实现对缓存队列操作的步骤包括,启动互联网应用的集群服务,当出现互联网应用集群的某个节点需要调用缓存队列服务时,该节点部署的互联网应用调用嵌入的缓存队列客户端程序所提供的接口,该接口根据配置文件的描述,直接找到缓存队列服务的Sentinel,并发送调用请求,配合Sentinel进行计算和处理,查找到目标缓存队列服务节点,然后进行相应的缓存队列读写操作。进一步优选地,还包括缓存队列服务完成操作后,将操作结果通过Sentinel反馈给缓存队列客户端程序,再由缓存队列客户端程序反馈给互联网应用节点的步骤。进一步优选地,所述方法应用于网站、论坛、社区、APP、电子商务平台、网上商城、金融证券平台或微信平台。本专利技术还提出一种基于Redis的集中式缓存队列服务架构的网络结构,包括缓存服务器、由高速缓存队列服务节点组组成的高速缓存队列服务集群、缓存队列客户端程序包、以及互联网应用的服务端;所述高速缓存队列服务节点组由两个Redis节点按Master/Slave方式部署构造,具备服务和数据容灾功能;所述高速缓存队列服务集群采用Sentinel技术,将多组高速缓存队列服务节点组进行集群,组成高速缓存队列服务集群;所述缓存服务器有多台,在每台服务器上采用Master/Slave模式部署Redis应用节点,组成高速缓存队列服务节点组;所述互联网应用的服务端由多个应用节点构成应用集群,在应用集群的每个节点的应用程序中嵌入缓存队列客户端程序包。进一步优选地,所述网络结构应用于网站、论坛、社区、APP、电子商务平台、网上商城、金融证券平台或微信平台。有益效果:本专利技术架构方法及网络结构采用了Redis的集中式缓存队列服务技术,在缓存队列服务器上按照Master/Slave模式部署Redis应用服务,实现了对该节点数据和服务的容灾,当Master节点出现宕机时,Slave节点自动更替。通过Sentinel技术,将多个缓存队列服务器集群起来,当现有缓存队列服务无法满足当前互联网应用的性能需求时,可以部署新的节点,动态加入Sentinel构造的缓存队列服务集群中,通过Sentinel的分片技术,可以将新的缓存队列节点的吞吐能力叠加入缓存队列集群服务中去;解决了添加新的缓存队列节点的吞吐能力叠加入缓存队列集群服务中的难题。经过改造封装的缓存队列服务客户端程序,提供了对缓存队列服务集群的操作能力,通过内置的唯一性算法,计算出数据存储的分片位置,结合Sentinel提供的服务能力,能够快速准确的定位至对应的缓存队列节点组,完美的解决了缓存队列服务的水平扩容问题。附图说明图1为本专利技术基于Redis的集中式缓存队列服务架构流程示意图;图2为集中式缓存队列服务结构示意图;图3为本专利技术基于Redis的集中式缓存队列服务架构网络结构示意图;图4为嵌入缓存队列客户端程序包示意图。具体实施方式实施例:如图1所示,一种基于Redis的集中式缓存队列服务架构方法,包括以下步骤:由两个Redis节点按Master/Slave方式部署构造成一个具备服务和数据容灾的高速缓存队列服务节点组的步骤;利用Sentinel技术,将多组高速缓存队列服务节点组进行集群,组成高速缓存队列服务集群,以统一的地址和端口对外提供服务的步骤;应用程序节点通过内嵌的缓存队列客户端程序包与高速缓存队列服务集群进行通信,利用程序包提供的接口,实现对缓存队列操作的步骤。如图3所示,进一步优选地,所述由两个或两个以上的Redis节点按Master/Slave方式部署构造成一个具备服务和数据容灾的高速缓存队列服务节点组的步骤包括,准备多台缓存队列服务器,在每台服务器上采用Master/Slave模式部署Redis应用节点,组成高速缓存队列服务节点组;所述利用Sentinel技术,将多组高速缓存队列服务节点组进行集群,以统一的地址和端口本文档来自技高网
...

【技术保护点】
1.基于Redis的集中式缓存队列服务架构方法,其特征在于包括以下步骤:由两个Redis节点按Master/Slave方式部署构造成一个具备服务和数据容灾的高速缓存队列服务节点组的步骤;利用Sentinel技术,将多组高速缓存队列服务节点组进行集群,组成高速缓存队列服务集群,以统一的地址和端口对外提供服务的步骤;应用程序节点通过内嵌的缓存队列客户端程序包与高速缓存队列服务集群进行通信,利用程序包提供的接口,实现对缓存队列操作的步骤。

【技术特征摘要】
1.基于Redis的集中式缓存队列服务架构方法,其特征在于包括以下步骤:由两个Redis节点按Master/Slave方式部署构造成一个具备服务和数据容灾的高速缓存队列服务节点组的步骤;利用Sentinel技术,将多组高速缓存队列服务节点组进行集群,组成高速缓存队列服务集群,以统一的地址和端口对外提供服务的步骤;应用程序节点通过内嵌的缓存队列客户端程序包与高速缓存队列服务集群进行通信,利用程序包提供的接口,实现对缓存队列操作的步骤。2.根据权利要求1基于Redis的集中式缓存队列服务架构方法,其特征在于:所述由两个或两个以上的Redis节点按Master/Slave方式部署构造成一个具备服务和数据容灾的高速缓存队列服务节点组的步骤包括,准备多台缓存队列服务器,在每台服务器上采用Master/Slave模式部署Redis应用节点,组成高速缓存队列服务节点组;所述利用Sentinel技术,将多组高速缓存队列服务节点组进行集群,以统一的地址和端口对外提供服务的步骤包括,通过Sentinel模式将多台服务器的高速缓存队列节点进行集群,由Sentinel统一暴露出缓存队列服务的调用地址和端口。3.根据权利要求1基于Redis的集中式缓存队列服务架构方法,其特征在于:还包括嵌入缓存队列客户端程序包的步骤,互联网应用的服务端由多个应用节点构成的应用集群,在应用集群的每个节点的应用程序中嵌入缓存队列客户端程序包,同时修改该节点的配置文件,设置配置文件中的节点唯一标识属性值和缓存队列服务调用地址和端口。4.根据权利要求1基于Redis的集中式缓存队列服务架构方法,其特征在于:所述用程序节点通过内嵌的缓存队列客户端程序包与高速缓存队列服务集群进行通信,利用程序包提供的接口,实现对缓存队列操作的步骤包括,...

【专利技术属性】
技术研发人员:甘傲然
申请(专利权)人:南京感度信息技术有限责任公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1