CN117453508A - Redis集群运行质量自动评价方法、系统和装置 - Google Patents

Redis集群运行质量自动评价方法、系统和装置 Download PDF

Info

Publication number
CN117453508A
CN117453508A CN202311459526.1A CN202311459526A CN117453508A CN 117453508 A CN117453508 A CN 117453508A CN 202311459526 A CN202311459526 A CN 202311459526A CN 117453508 A CN117453508 A CN 117453508A
Authority
CN
China
Prior art keywords
redis
access
service
cluster
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311459526.1A
Other languages
English (en)
Inventor
田标
梁文君
崔伟
黄慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Digital Life Technology Co Ltd
Original Assignee
Tianyi Digital Life Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianyi Digital Life Technology Co Ltd filed Critical Tianyi Digital Life Technology Co Ltd
Priority to CN202311459526.1A priority Critical patent/CN117453508A/zh
Publication of CN117453508A publication Critical patent/CN117453508A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种Redis集群运行质量自动评价方法、系统和装置。该方法包括:自动发现并解析Redis的配置,确定Redis的服务类型,以及确定Redis集群的访问量和性能;根据服务类型、访问量和性能,确定Redis集群运行质量的画像;读取业务系统访问Redis的数据包,结合画像,确定业务系统的访问流量信息;根据访问流量信息,对Redis集群运行质量进行监控,确定有异常请求的异常业务访问行为,对监控结果和异常业务访问行为进行评价和展示,能够实现对Redis集群的运行质量保障。本申请实施例能够对Redis集群进行多方面运行质量监控,提升Redis集群的可靠性;可以广泛应用于计算机技术领域。

Description

Redis集群运行质量自动评价方法、系统和装置
技术领域
本发明涉及计算机技术领域,尤其是一种Redis集群运行质量自动评价方法、系统和装置。
背景技术
Redis因基于内存操作带来的高性能而被广泛用于数据库前置缓存服务,为保障其可靠性,业界相继对Redis产生了更多需求,包括但不限于实例和数据多活、数据防丢失、高性能保障等。无法满足这些需求时,容易因大量请求被传递到数据库导致业务异常或业务性能降低,进一步导致用户操作失败率增加、用户体验降低或业务故障。相关技术中的Redis监控工具主要对单个Redis实例运行指标进行定时采样分析,无法对更高层级的访问行为进行监控,也就无法提高Redis的高可靠性。
发明内容
本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
为此,本发明的目的在于提供一种高可靠性的Redis集群运行质量自动评价方法、系统和装置。
为了达到上述技术目的,本发明实施例所采取的技术方案包括:
一方面,本发明实施例提供了一种Redis集群运行质量自动评价方法,包括以下步骤:
本发明实施例的Redis集群运行质量自动评价方法,该方法包括:解析Redis的配置,确定Redis的服务类型,以及确定Redis集群的访问量和性能;根据所述服务类型、访问量和性能,确定Redis集群运行质量的画像;读取业务系统访问Redis的数据包,结合所述画像,确定业务系统的访问流量信息;根据所述访问流量信息,对所述Redis集群运行质量进行监控,确定有异常请求的异常业务访问行为,并对监控结果和所述异常业务访问行为进行评价和展示。本申请实施例通过确定各类Redis集群的画像,并通过画像和访问数据包监控集群运行质量和异常访问行为,能够对Redis集群进行多方面运行质量监控,提升Redis集群的可靠性。
另外,根据本发明上述实施例的Redis集群运行质量自动评价方法,还可以具有以下附加的技术特征:
进一步地,本发明实施例的Redis集群运行质量自动评价方法,所述读取业务系统访问Redis的数据包,结合所述画像,确定业务系统的访问流量信息,包括:
记录每个数据包的时间戳、来源端信息和目的端信息,解析所述数据包,确定操作的键值和业务实例;
汇总所述时间戳、所述来源端信息、所述目的端信息、所述键值和所述业务实例至消息队列,确定访问流量信息。
进一步地,在本发明的一个实施例中,所述根据所述访问流量信息,对所述Redis集群运行质量进行监控,包括:
基于内存累计每个键值的第一访问量,根据所述第一访问量对键值由大到小或由小到大排序,根据排序结果筛选出热键;根据所述热键,确定相应的Redis集群和异常业务访问行为;
或者,根据所述来源端信息和所述目的端信息,确定业务系统对Redis集群的使用情况;若存在不同业务系统共用相同的Redis集群,确认在所述不同业务系统中是否存在相同键值,并记录各业务系统对缓存的占用情况;
或者,若不同的Redis集群中存在相同的键值,根据所述来源端信息确定所述键值是否属于相同的项目,并记录所述键值在不同的Redis集群上的变化;
或者,获取第一Redis集群的第一实例和第二实例之间的第二访问量差;获取所述第一Redis集群中的单实例访问量均值;根据所述第二访问量差与所述单实例访问量均值之商确定第一比重;若所述第一比重大于第一阈值,筛选并记录相关键值和实例。
进一步地,在本发明的一个实施例中,所述根据所述服务类型、访问量和性能,确定Redis集群运行质量的画像,包括以下步骤:
通过只读操作和读写操作多次访问Redis,根据响应确定访问量、性能和存储消耗,并确定所述Redis集群运行质量的画像;
若监测到响应错误,记录相应Redis集群、访问量和内存占用;
确认每个Redis服务的支撑量;所述支撑量包括能够处理的访问量和数据大小;
根据所述支撑量、所述性能和所述存储消耗,对Redis集群进行对比监控,确定异常部署配置;
若所述异常部署和配置对应的数据与当前部署和配置的数据不一致,更新所述画像。
进一步地,在本发明的一个实施例中,所述方法还包括:
结合所述画像,确定Redis集群的访问者信息或实例信息;所述实例信息与所述Redis集群之间有数据流转;
将所述访问者信息和所述实例信息作为第一类节点,将Redis作为第二类节点,建立拓扑图,并展示所述拓扑图。
进一步地,在本发明的一个实施例中,所述方法还包括:
根据所述数据包,确定所述业务系统的访问请求,并对所述访问请求进行缓存处理,得到缓存数据;
若Redis实例运行不正常,根据所述缓存数据,对Redis进行服务降级处理;
根据所述访问请求或来源端信息,对异常请求进行过滤和封锁处理;
根据所述访问流量信息,对缓存进行穿透和雪崩处理。
进一步地,在本发明的一个实施例中,所述方法还包括:
若所述访问请求是读缓存请求,根据键值从缓存中读取第一数据,通过服务器的网络设备模拟故障中的Redis实例发送第一响应;
或者,若所述访问请求是写缓存操作,等待Redis实例恢复;
或者,若所述访问请求是写缓存操作,将所述写缓存操作转发至当前Redis实例处理。
另一方面,本发明实施例提出了一种Redis集群运行质量自动评价系统,包括:
第一模块,用于解析Redis的配置,确定Redis的服务类型,以及确定Redis集群的访问量和性能;
第二模块,用于根据所述服务类型、访问量和性能,确定Redis集群运行质量的画像;
第三模块,用于读取业务系统访问Redis的数据包,结合所述画像,确定业务系统的访问流量信息;
第四模块,用于根据所述访问流量信息,对所述Redis集群运行质量进行监控,确定有异常请求的异常业务访问行为,并对监控结果和所述异常业务访问行为进行评价和展示。
另一方面,本发明实施例提供了一种Redis集群运行质量自动评价装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现上述的Redis集群运行质量自动评价方法。
另一方面,本发明实施例提供了一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于实现上述的Redis集群运行质量自动评价方法。
本发明实施例提供的Redis集群运行质量自动评价方法,该方法包括:解析Redis的配置,确定Redis的服务类型;确定Redis集群的访问量和性能;根据所述服务类型、访问量和性能,确定Redis集群运行质量的画像;读取业务系统访问Redis的数据包,结合所述画像,确定业务系统的访问流量信息;根据所述访问流量信息,对所述Redis集群运行质量进行监控,确定有异常请求的异常业务访问行为,并对监控结果和所述异常业务访问行为进行评价和展示。本申请实施例通过确定各类Redis集群的画像,并通过画像和访问数据包监控集群运行质量和异常访问行为,能够对Redis集群进行多方面运行质量监控,提升Redis集群的可靠性。
附图说明
为了更清楚地说明本发明实施例或者现有技术中的技术方案,下面对本发明实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
图1为本发明提供的Redis集群运行质量自动评价方法的一种实施例的流程示意图;
图2为本发明提供的Redis集群运行质量自动评价结果的一种实施例的界面示意图;
图3为本发明提供的Redis集群运行质量自动评价结果的另一种实施例的界面示意图;
图4为本发明提供的Redis集群运行质量自动评价方法的另一种实施例的流程示意图;
图5为本发明提供的自动画像的实现过程的一种实施例的流程示意图;
图6为本发明提供的拓扑图的一种实施例的界面示意图;
图7为本发明提供的服务降级过程的一种实施例的流程示意图;
图8为本发明提供的Redis集群运行质量自动评价方法的一种实施例的实施环境示意图;
图9为本发明提供的Redis集群运行质量自动评价系统的一种实施例的结构示意图;
图10为本发明提供的Redis集群运行质量自动评价装置的一种实施例的结构示意图;
图11为本发明提供的Redis集群运行质量自动评价装置的另一种实施例的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
Redis因基于内存操作带来的高性能而被广泛用于数据库前置缓存服务,为保障其可靠性,行业相继对Redis产生了更多需求,包括但不限于实例和数据多活、数据防丢失、高性能保障等。无法满足这些需求时,容易因大量请求被传递到数据库导致业务异常或业务性能降低,进一步导致用户操作失败率增加、用户体验降低或业务故障。
当前的Redis监控工具以基于prometheus的redis_exporter提供的指标最丰富,但技术上主要以对单个Redis实例运行指标的定时采样分析为主,无法在Redis集群、业务系统对Redis的访问等更高层次上发现Redis的不当运行状态。随着业务不断微服务化,业务之间的调用及相关缓存数据的使用越来越复杂,Redis运行质量带来的问题的影响也越来越大,怎样从业务及Redis集群等方面提前发现并及时有效地解决Redis服务的可靠性、性能和操作上的问题成为保障互联网业务正常运营、发展的关键因素之一。
相关技术中根据获得的监控指标值按设定的权重计算Redis的健康度,再根据计算结果确定Redis服务不同等级的监控状态并实现不同级别的告警。该类方案不能监控到Redis存储的不当数据和不当访问,只能被动地为Redis服务出现问题后的排查提供有限的参考信息,无法缓和或降低Redis服务故障的影响。因此,相关问题亟需解决。
下面参照附图详细描述根据本发明实施例提出的Redis集群运行质量自动评价方法、系统和装置,首先将参照附图描述根据本发明实施例提出的Redis集群运行质量自动评价方法。
参照图1,本发明实施例中提供一种Redis集群运行质量自动评价方法,本发明实施例中的Redis集群运行质量自动评价方法,可应用于终端中,也可应用于服务器中,还可以是运行于终端或服务器中的软件等。终端可以是平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。本发明实施例中的Redis集群运行质量自动评价方法主要包括以下步骤:
S100:解析Redis的配置,确定Redis的服务类型,以及确定Redis集群的访问量和性能;
S200:根据服务类型、访问量和性能,确定Redis集群运行质量的画像;
S300:读取业务系统访问Redis的数据包,结合画像,确定业务系统的访问流量信息;
S400:根据访问流量信息,对Redis集群运行质量进行监控,确定有异常请求的异常业务访问行为,并对监控结果和异常业务访问行为进行评价和展示。
在一些可能的实现方式中,本申请实施例通过自动发现Redis服务及其类型和自动访问量及性能评价确定Redis集群运行质量的画像,进而根据画像信息和业务系统的访问信息,对Redis集群运行质量进行监控。具体地,本申请实施例通过识别Redis的RESP协议,确定Redis服务所在的服务器和端口,再从对应服务器上查询端口上的进程,获得Redis进程信息、使用的配置文件及其所在的地址,获得Redis的配置。即本申请实施例通过Redis服务自动发现和容量自动评价获得现网Redis服务信息及其存储、并发能力、访问性能画像;本申请实施例实现对Redis服务的运行质量自动监控和访问行为分析:通过Redis的访问流量获得所有请求、响应和对应的性能、成功率、数据过期时间,进一步获得prometheus的Redis监控之外的性能指标,包括热键、大键和相关的客户端来源,慢性能访问量,内存增长率等;进一步综合分析发现对所有Redis实例的不当或异常访问并进行展示和告警。
可以理解的是,本申请实施例还可以通过对Redis的流量操作支持保障提高Redis服务的可靠性,包括过滤非法请求、封禁指定来源的Redis客户端、在不同Redis服务之间同步数据、故障时基于流量拦截采用预先暂存的数据回复客户端,协助实现故障期间Redis的服务降级,避免完全故障。
参照图2所示的一种实施例,通过本申请实施例提出的Redis集群运行质量自动评价方法进行评价,得到的展示界面;参照图3所示的一种实施例,通过本申请实施例提出的Redis集群运行质量自动评价方法进行评价,得到的另一种展示界面。通过图示界面,可以得到运行质量的自动画像,进而可以自动计算得到Redis集群的访问容量,每单位资源配置可支撑的读、写访问量及各类操作对应的性能,以对Redis集群运行质量进行评价。可知,本申请实施例能够实现各类Redis集群拓扑自动发现、运行质量自动画像和集中管理分析,发现性能异常的集群或实例;基于Redis访问流量分析和画像结果的Redis集群运行质量和业务访问行为监控、告警及基于拓扑的监控结果综合展示、分析方案,能够从集群或业务对缓存的访问行为层面从全局发现热点数据、异常数据、异常行为和相关来源,能提前洞察监控单个Redis实例无法发现的问题并及时告警通知;基于流量操作的Redis服务降级及其与Redis融合方案,可以无感知过滤、封锁异常请求,能在Redis服务故障期间提供一定的容错能力,能检测、预防缓存的穿透和雪崩,能助力技术人员及时发现问题根源并完善,保障Redis的服务能力和可靠性。
由此,本发明实施例的Redis集群运行质量自动评价方法,该方法包括:解析Redis的配置,确定Redis的服务类型;确定Redis集群的访问量和性能;根据服务类型、访问量和性能,确定Redis集群运行质量的画像;读取业务系统访问Redis的数据包,结合画像,确定业务系统的访问流量信息;根据访问流量信息,对Redis集群运行质量进行监控,确定有异常请求的异常业务访问行为,并对监控结果和异常业务访问行为进行评价和展示。本申请实施例通过确定各类Redis集群的画像,并通过画像和访问数据包监控集群运行质量和异常访问行为,能够对Redis集群进行多方面运行质量监控,提升Redis集群的可靠性。
可选地,在本发明的一个实施例中,读取业务系统访问Redis的数据包,结合画像,确定业务系统的访问流量信息,包括:
记录每个数据包的时间戳、来源端信息和目的端信息,解析数据包,确定操作的键值和业务实例;
汇总时间戳、来源端信息、目的端信息、键值和业务实例至消息队列,确定访问流量信息。
可选地,在本发明的一个实施例中,根据访问流量信息,对Redis集群运行质量进行监控,包括:
基于内存累计每个键值的第一访问量,根据第一访问量对键值由大到小或由小到大排序,根据排序结果筛选出热键;根据热键,确定相应的Redis集群和异常业务访问行为;
或者,根据来源端信息和目的端信息,确定业务系统对Redis集群的使用情况;若存在不同业务系统共用相同的Redis集群,确认在不同业务系统中是否存在相同键值,并记录各业务系统对缓存的占用情况;
或者,若不同的Redis集群中存在相同的键值,根据来源端信息确定键值是否属于相同的项目,并记录键值在不同的Redis集群上的变化;
或者,获取第一Redis集群的第一实例和第二实例之间的第二访问量差;获取第一Redis集群中的单实例访问量均值;根据第二访问量差与单实例访问量均值之商确定第一比重;若第一比重大于第一阈值,筛选并记录相关键值和实例。
在一些可能的实施方式中,本申请实施例通过分析Redis的访问流量(即访问流量信息)监控其运行质量和访问行为。可以理解的是,目前用于Redis的监控技术主要侧重在针对“单个”Redis实例瞬时获得一系列具体监控指标的值并简单分析,当各业务系统向Redis集群缓存大量数据时,难以从这样的监控结果判断缓存服务整体的运行质量并及时发现潜在问题,无法从时间维度、或从不同Redis实例的访问行为等维度从更高粒度提前检查确认问题,导致出现告警或故障时,只能被动缓慢响应。对此,参照图4所示,本申请提供的具体监控过程或业务访问行为的判定过程如下所示:
步骤S11:读取业务系统访问Redis的数据包并记录实时获得的每个包的时间戳、来源和目的IP,按Redis的通信协议解析得到每个请求及其响应、操作命令、操作的键及键值、相关业务系统实例,然后计算键及其值的大小再根据时间戳的差计算请求性能。可以通过消息队列汇总这些信息到其它服务器后供进一步分析。
步骤S12:找出异常请求及其来源和目的地,具体包括如下:数据构成上与众不同的键;键或其值长度超过一定阈值;访问性能超过一定阈值;根据Redis协议解析响应后确定的访问出错;在同一个Redis集群中,访问量偏离各实例平均值较多的服务实例;出现禁止执行的命令;包含非法内容的值。找出这些情况下的键及其值、请求及其来源IP(即本申请实施例中的来源端信息和目的端信息)及其所属业务项目、请求的目的地IP和所属Redis集群,从上面得到的访问Redis的项目信息排查是否包含此IP,汇总保存相关结果并说明事件类型。
步骤S13:检查分析所有值比较长的数据内容,检查内容中是否存在重复子项,如果发现则找出所有重复子项及其长度;然后检查数据内容的格式,如果是XML、JSON等类似格式则汇总保存这两方面的信息并结合项目、所在Redis集群和实例地址,保存可提示用户可以压缩这两类情况下的缓存占用、可降低缓存占用的比例。
步骤S14:基于内存累计各个键的访问量,找出访问量最大的若干键。示例性地,可设定筛选访问量前100大的所有键为热键;或者,访问量超过一定阈值的键为热键。缓存记录各个热键的访问量、所在的Redis集群、来源业务项目及其IP。
步骤S15:结合Redis操作命令,综合检查各个键数据过期时间及其访问频率,记录访问频率低于一定阈值、保存后长时间零访问但又未设置数据过期时间或过期时间超过一定阈值、设置相同过期时间或时长的键、命令、来源和目的IP;进一步分析各个热键的过期时间、访问量及所有过期时间相近的热键的访问量之和,当这里的任意访问量超过一定阈值时保存为潜在风险事件及所有相关信息。汇总保存相关结果、所属业务项目及事件类型。
步骤S16:根据来源端信息和目的端信息,确定业务系统对Redis集群的使用情况;若存在不同业务系统共用相同的Redis集群,确认在不同业务系统中是否存在相同键值,并记录各业务系统对缓存的占用情况。具体地,根据请求来源和目的IP检查不同项目共用相同Redis集群的情况,如果发现进一步检查在不同的项目中是否出现相同的键,发现则记录相关信息;计算、记录各项目在各共用的Redis集群的累计存储占比和存储增长率、各Redis集群存储整体增长率、预计达到存储告警阈值的时间,记录相关结果信息。
步骤S17:若不同的Redis集群中存在相同的键值,根据来源端信息确定键值是否属于相同的项目,并记录键值在不同的Redis集群上的变化。具体地,检查是否存在把相同的键保存到不同Redis实例或集群的情况,如果有则根据来源IP确定是否属于相同项目,进一步检查这些键的值在不同Redis上的变化是否一致,这部分有结果后,都汇总保存相关的业务项目和Redis集群信息并向用户告警不同项目的情况;对于相同项目则更新项目信息,说明与不同Redis之间同步数据的情况并记录详情,检查并确认数据同步前后的延迟、是否有遗漏数据以及同步成功率,记录数据量、相关业务项目、Redis集群的信息和最后发现时间。
步骤S18:计算同一个Redis集群的不同实例之间的访问量差异的绝对值与单实例平均访问量的比重,然后检查结果是否超过一定阈值,找到后进一步分别找出这些实例涉及到的访问量最大、最小的前一些键及其访问量,汇总保存各相关Redis实例、所属集群及业务项目的信息及最后发现时间。
步骤S19:分别检查对Redis的访问量和Redis的内存占用量,根据对每个Redis集群的运行质量画像结果,当发现任何一个达到一定比值后,继续检查相应的指标值是否在一定时长内维持增长(包括即使中间有降低但之后继续增长的情况),如果是则进一步计算平均和最大增长速度,根据这两个值的历史数据通过NeuralProphet预测多长时间后会达到相关告警阈值,汇总保存相关信息。
如果存在上述任何问题,则定时持久化存储上述检查结果并向用户告警,支持通过相关UI界面展示各类事件的详细情况、变化趋势并自动更新,如果未发现任何问题则记录检查时间、结果并可以在UI上提示。
可选地,在本发明的一个实施例中,根据服务类型、访问量和性能,确定Redis集群运行质量的画像,包括以下步骤:
通过只读操作和读写操作多次访问Redis,根据响应确定访问量、性能和存储消耗,并确定Redis集群运行质量的画像;
若监测到响应错误,记录相应Redis集群、访问量和内存占用;
确认每个Redis服务的支撑量;支撑量包括能够处理的访问量和数据大小;
根据支撑量、性能和存储消耗,对Redis集群进行对比监控,确定异常部署配置;
若异常部署和配置对应的数据与当前部署和配置的数据不一致,更新画像并记录不同情况下的画像结果历史。
在一些可能的实施方式中,参照图5所示,本申请实施例能够对Redis服务的运行质量自动画像。可以理解的是,除了内存、CPU等配置外,缓存数据量、缓存数据的大小、缓存操作的读写类型等动态因素都会直接影响到Redis服务的访问性能和稳定性,所以不同Redis服务的性能上限数据可能会有较大差异。对此,本申请实施例提供的自动画像过程包括如下步骤:
步骤S21:确定网络中哪些项目运行时会访问Redis,然后解析Redis的配置获得Redis服务的类型是单机(视为只有1个实例的集群)、sentinel、Redis Cluster或者Codis,读取集群状态下各个实例的版本号、IP、端口、服务器的内存和CPU配置,如果是基于k8s容器化的Redis服务,则读取服务封装方式和基于k8s的配置。对于访问Redis的项目,要区分域名或反向代理地址不同、分别部署的相同项目。汇总保存所有只有1个实例的Redis及其项目信息,并向用户提示。
步骤S22:通过两种模式确定每个Redis集群的容量和性能:按顺序依次使用不同的Redis命令、并发地组合不同的读写命令同时访问Redis。使用与实际业务相同的Redis命令范围,支持设置不同命令组合的比例、不同的键及其数据的大小分组的比例,键及其值的大小还可以按指定函数设置。
步骤S23:根据对Redis的运行质量要求,通过所有响应计算Redis的并发访问量、性能(包括评价、最大、TP99、TP80)和错误率的不同等级对应的不同并发访问量、键和值的大小、不同内存消耗的区间。
步骤S24:当检查到响应错误时,记录Redis集群及其具体错误信息、访问量、数据大小、内存占用并通知用户。
步骤S25:对每个Redis服务计算每核CPU、每1GB内存平均能处理的访问量和数据大小,在集群扩、缩容后重新计算。本申请实施例中的支撑量用于表征每个Redis服务的资源配置量。
步骤S26:对比所有Redis集群的访问量、性能和错误率结果,如果发现有集群的结果值与平均值差距过大或超过要求的阈值,则对比Redis和服务器配置找出主要差异,把结果和配置上的差异向用户告警。
保存每个集群的规模、配置、上述实际运行质量结果和相关业务项目,得到每个Redis集群及其扩缩容后在并发访问量、数据大小、内存占用达到什么范围的数量时会出错告警或跟严重问题的信息。同时根据日常监控工作中的告警和故障结果在于这里的数据不一致时更新这里的相关指标值。本申请实施例通过自动画像,便于后续对Redis集群的运行质量进行监控分析,提升Redis的可靠性。
可选地,在本发明的一个实施例中,该Redis集群运行质量自动评价方法还包括:
结合画像,确定Redis集群的访问者信息或实例信息;实例信息与Redis集群之间有数据流转;
将访问者信息和实例信息作为第一类节点,将Redis作为第二类节点,建立拓扑图,并展示拓扑图。
在一些实施例中,本申请实施例还可以实现以拓扑图为中心集中监控、分析Redis集群的运行质量。由于Redis集群服务及其客户端工具库类型、使用Redis的业务系统及其技术平台都丰富多样,加上资源复用等因素导致的Redis集群的复用情况很常见,还有相同缓存数据在不同业务系统之间的复用、存储现象,考虑到当前以单个Redis实例为主的监控方案无法及时发现并帮用户预防相关问题。在互联网业务的日常运维监控场景下,有必要利用拓扑图以一个Redis集群为中心集中、直观地展示展示包含与该集群有访问和数据流转关系的所有相关软件实例,包括所有业务系统及其各中间件,在一个图上可以选择展示具有一定调用层级(例如3~5层)内的所有软件实例,使用户能方便地通过拓扑图全局地把握各部分的具体组成和运行质量,并且每个一定时长(例如1分钟)通过重新获取的各个方面的信息更新一次拓扑图。参照图6所示的拓补图的一种实施例,其中用圆形表示访问Redis集群的业务项目,拓扑图用不同的几何图形表示不同类型的Redis集群,展示自动发现的Redis集群信息、画像及主要运行质量自动评价结果,包括集群名和集群类型、数据库数及数据库名,还包括发现的持久化、备份和发现的异常访问等情况,箭头表示数据的流转(请求)方向,示例性地,可以通过不同颜色的箭头表示问题的严重性等级,可以根据需要通过拓扑图提示主要问题,再结合其它UI元素提供综合分析操作。本申请实施例提供的拓扑图服务包括如下步骤:
步骤S31:确定访问各个Redis集群的业务系统的技术平台、Redis访问工具的名称,把这部分作为拓扑图的第一类节点,不同类型的节点采用不同的图例展示。把同一个业务集群的不同实例框在一起。
步骤S32:把Redis作为第二类节点,通过Redis的INFO、cluster nodes等指令确定各实例节点的类型,同步展示Redis集群的类型,对Sentinel分别标出sentinel、master(主)和slave(从)所在的服务器IP,对于Codis分别标出master和各个slave,不同角色的Redis实例采用不同的图例显示,对于Redis Cluster则标出各主从节点的IP。把同一个Redis集群的各个实例框在一起。
步骤S33:在各业务系统实例和各Redis实例之间,只要有访问关系就建立一个连接线,其方向为从业务实例到Redis实例,线上可以展示上一次时间周期中总共的访问量、最大性能,如果有错误则显示错误次数。同一个Redis集群的各个实例之间只有存在数据流转也建立连接线,线的方向为数据的流转方向。
步骤S34:在拓扑图上结合表格等UI元素展示Redis集群的访问质量:对Codis集群展示访问量、最大访问性能、错误数、各个节点的数据项分布;对Redis Cluster展示最大访问性能、存活情况、阻塞客户端数量和最后发现时间;对Redis sentinel服务展示各个节点的访问量、最大性能、错误量和最后发现时间。
步骤S35:基于拓扑展示分析检测到的各Redis集群的备份和持久化情况:包括最近一次的数据备份时间、是否成功及备份位置等信息,同时展示异常节点信息,可以警示超过一定时长仍未备份的集群。同时在拓扑图上显示每个Redis实例是否启用了基于快照方案(Redis DataBase,AOF)或基于日志方案(Append Only File,RDB)以及具体启用了二者的哪些。
步骤S36:若Redis集群被不同的业务系统访问,在拓扑图上通过第一标识展示各业务系统的存储占比、访问量占比和占用增长率。具体地,如果一个Redis集群被多个不同的业务系统访问,则专门在拓扑图上采用某种形式的第一标识,例如采用不同的背景颜色或图标,同时展示各业务系统的存储占比、访问量占比和存在占用的增长率。当其中一个系统的存在占比增长较快并且可能超过存储限制时及时提示用户并结合NeutralProphet给出预计触发告警的时间。
步骤S37:若相同的键值存储于不同的Redis集群,在拓扑图上通过第二标识展示相关业务系统。具体地,如果发现相同的键或相同键及其值被不同业务系统存储在各自不同的Redis集群,在拓扑上采用专门的第二标识展示相关的Redis集群和业务系统,同步在UI上展示相同键的数量和未同步更新的键的数量,如发现有缓存数据更新不同步,则通知相关业务系统人员。这里还可以通过分析、验证相关项目访问流量确定各项目之间的调用关系并在拓扑图上展示。
步骤S38:对每个产品或业务集群,以项目为单位在拓扑图上展示其到Redis集群的连接类型,包括连接的是主还是从节点及其IP、连接的Redis集群的类型、Redis客户端名、是否是发布订阅连接,判断每个项目对对一个Redis集群的操作是否正常,可以根据缓存占用增长率、大键数量、热键数量、键的值较大、键的值内容非法、是否与其它项目共用某Redis集群、是否与其它项目共用相同缓存数据这些因素计算计算一个评价值,提醒用户检查超过一定值的项目的Redis操作及具体存在哪些问题,在拓扑图上以某种形式突出标识相应的项目。
步骤S39:支持基于拓扑图调整Redis的集群结构并记录相关事件,允许用户在拓扑图UI上通过鼠标拖拽、右键等实现如下操作:向Redis集群增加、移出Redis实例;切换集群的主从节点,即把主节点切换为从节点或反之;调用对应Redis集群的指令执行数据迁移。在拓扑图上动态展示并更新操作进度,操作完成后更新拓扑图上关于各Redis实例角色的提示,记录操作日志、最终结果是否成功及失败时的提示并提醒用户。
在拓扑图所在的UI上通过表格等形式同步展示所有发生访问错误、最慢的一定数量的请求及发现的可能原因、被复用的Redis集群、存在不一致缓存数据等异常情况所在的业务项目、Redis集群和最后发现时间,这些信息可以配合对应Redis实例上反映异常效果的提示同步提升,并且在鼠标移动到对应Redis实例上时在UI上弹出相应提示。
可选地,在本发明的一个实施例中,该Redis集群运行质量自动评价方法还包括:
根据数据包,确定业务系统的访问请求,并对访问请求进行缓存处理,得到缓存数据;
若Redis实例运行不正常,根据缓存数据,对Redis进行服务降级处理;
根据访问请求或来源端信息,对异常请求进行过滤和封锁处理;
根据访问流量信息,对缓存进行穿透和雪崩处理。
在一些可能的实施方式中,当Redis服务故障时,只能由技术人员设法尽快恢复服务,对此,本申请实施例提供一个在Redis服务故障期间从Redis端提供Redis降级服务的技术方案,使服务恶化及故障期间或者集群处理故障实例期间仍然可以从相应Redis实例所在的服务器上正确响应大部分甚至所有业务系统对Redis的操作请求。具体地,参照图7,本申请实施例提供的基于Redis的访问流量保障其运行质量的过程包括如下步骤:
步骤S41:在Redis集群的每个实例所在的服务器上读取、解析业务系统对当前Redis实例的访问请求,记录通信两端的IP、端口、MAC地址。
步骤S42:在当前Redis实例正常运行时,在本地或远程缓存所有向该实例写数据的请求一定时长(例如60分钟),缓存前先检查写操作的过期时间,仅缓存超过预定缓存时长的数据,还可以同时缓存所有热键的写操作的数据。
步骤S43:在处理上一步的操作时,通过计算请求的慢性能率和错误率/错误量同步检查对应的Redis实例是否运行正常,当发现Redis实例运行质量下降到一定程度但仍能服务时执行两类措施,包括采用流量操作利用上一步的结果检查替换错误请求的键对应的值再返回请求端,或累计所有异常请求量并按一定乘数计算应转发到其它实例的请求量并实施,还可以实时对Codis集群通过Proxy节点调整相关Redis实例的访问量,触发向集群增加新的Redis实例并参照异常请求自动向新实例同步相关数据;一旦发现并确认该实例故障,则按下一步方案实现该实例的服务降级以提供一定的容错服务,同时通知技术人员使用上一步的数据继续服务。
步骤S44:在当前Redis实例故障期间,如果仍然收到业务对Redis的访问请求,则拦截这些请求,解析得到请求的键、读写类型和数据,然后分别处理:
a)如果是读缓存操作,则先根据解析得到的键从上一步的缓存读取到对应数据,再通过当前服务器的网络设备向业务请求端按Redis的协议模拟故障中的Redis实例发送正确的响应消息,这里要正确设置两端的MAC地址、IP和原来正常通信时的端口号,同时还要根据需要正确设置ACK等标志位。
b)如果是写缓存操作,则记录要写的键及数据,可以视具体情况分别处理:b1如果故障实例能够快速恢复,待Redis实例恢复后再写入:b2如果实例脱离了Redis集群,则立即把写操作转发到当前Redis集群,具体的转发对象可以根据集群类型确定,如果当前集群是Codis可以根据Codis分发数据的相同规则找出当前缓存数据所属的代理实例,再向该代理转发写缓存请求,如果是sentinel可以写入到新的master,如果是Redis集群,可以随机写入一个正常实例;b3支持通过修改写操作数据包的目的地址的方式,把原始顺序把写请求转发到指定目的地的Redis。
步骤S45:在实例故障期间每隔一定时长(例如0.5秒)检查故障实例是否恢复,一旦恢复则停止干预业务实例与该Redis实例之间的通信,并通知用户。
步骤S46:支持从请求数据和请求IP两个维度拦截、过滤(封锁)异常请求。拦截要求可以由服务端发送,这里接收后执行。具体的拦截规则包括但不限于:拦截哪些Redis命令、拦截符合哪些规则的请求数据、拦截哪些IP或只允许哪些IP访问、拦截哪些命令组合等,由各Redis实例上的网络流量操作工具实施,发现服务拦截规则的数据包后丢弃不再发送到Redis服务实例。这里可以与Redis服务降级相关的内容并行。
步骤S47:通过分析Redis的访问流量检测处理缓存穿透和雪崩:从业务实例端读取解析其读取Redis的流量,通过解析读请求及其响应检查缓存是否命中,累计未命中操作占所有读操作的比率,进一步基于流量读取、解析检查、累计业务系统在未命中缓存后通过JDBC应用层协议发送到后端数据库服务的请求数量及其SQL,当这类请求量超过一定阈值时作为异常事件记录其相关信息并生成相关项目对应功能可能存在缺陷的提示,包括导致缓存未命中的键、发送到后端数据库的请求量及其查询SQL、所属业务项目和Redis集群,支持从网络层拦截对应的业务请求并中断发送到数据库服务或转发到其它指定的目的端,还可以支持在检测到缓存未命中一定次数后对符合一定规则的键自动从数据库查询需要的数据并缓存到业务项目需要的Redis集群。
汇总上面的过程,记录日志,上报到服务端并通知用户。
可选地,在本发明的一个实施例中,该Redis集群运行质量自动评价方法还包括:
若访问请求是读缓存请求,根据键值从缓存中读取第一数据,通过服务器的网络设备模拟故障中的Redis实例发送第一响应;
或者,若访问请求是写缓存操作,等待Redis实例恢复;
或者,若访问请求是写缓存操作,将写缓存操作转发至当前Redis实例处理。
本申请提供的Redis集群运行质量自动评价方法,可以由服务器执行,也可以由客户端执行,还可以由客户端和服务器具体执行。参照图8所示,由客户端工具和服务端共同提供本申请实施例的上述功能,二者之间基于HTTP/HTTPS协议通信,客户端主要负责执行具体的Redis集群性能画像、集群监控和运行质量保障,服务端主要负责结果的集中存储、分析和批量控制等操作。客户端可以按功能分拆后分别编译后部署到不同机房的一系列服务器上;支持通过服务端批量操作客户端。该系统还可以用于其它支持Redis协议的软件的运行质量评价、监控和服务质量保障。
本申请实施例能自动发现、检测各类Redis集群的部署拓扑及其面向只读或读写混合操作的运行质量画像,可以方便地检验、测试各类Redis、Codis集群的性能,找出不同部署和配置方案对性能和稳定性的影响,还能为后续监控预测及准确告警提供有力依据。本申请实施例能从Redis集群和访问数据两个方面无感知地监控集群运行质量和业务系统的不当访问行为,不需要为此修改业务系统或Redis的任何代码或配置,还能基于部署拓扑图紧扣业务对Redis缓存服务的质量要求综合展示,使各方面的运行状况、问题一目了然。本申请实施例能自动检测Redis故障并在故障期间实现Redis的服务降级,使得在应用端感知Redis基本可用,并且故障期间的写缓存数据还能在故障后恢复存储。
其次,参照附图9描述根据本发明实施例提出的一种Redis集群运行质量自动评价系统。
图9是本发明一个实施例的Redis集群运行质量自动评价系统结构示意图,系统具体包括:
第一模块810,用于解析Redis的配置,确定Redis的服务类型,以及确定Redis集群的访问量和性能;
第二模块820,用于根据服务类型、访问量和性能,确定Redis集群运行质量的画像;
第三模块830,用于读取业务系统访问Redis的数据包,结合画像,确定业务系统的访问流量信息;
第四模块840,用于根据访问流量信息,对Redis集群运行质量进行监控,确定有异常请求的异常业务访问行为,并对监控结果和异常业务访问行为进行评价和展示。
可见,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例提供了一种Redis集群运行质量自动评价装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现所述的Redis集群运行质量自动评价方法。
同理,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本申请实施例提供的用于执行上述Redis集群运行质量自动评价方法的Redis集群运行质量自动评价装置可以是终端,参照图10,图10为本申请实施例提供的终端的部分结构框图,该终端包括:射频(Radio Frequency,简称RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(wireless fidelity,简称WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的终端结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器处理;另外,将设计上行的数据发送给基站。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。
输入单元可用于接收输入的数字或字符信息,以及产生与手机的设置以及功能控制有关的键信号输入。具体地,输入单元可包括触控面板1031以及其他输入装置1032。
显示单元可用于显示输入的信息或提供的信息以及手机的各种菜单。显示单元1040可包括显示面板1041。
音频电路1060、扬声器1061,传声器1062可提供音频接口。
在本实施例中,该终端所包括的处理器可以执行前面实施例的Redis集群运行质量自动评价方法。
本申请实施例提供的用于执行上述Redis集群运行质量自动评价方法的Redis集群运行质量自动评价装置也可以是服务器,参照图11,图11为本申请实施例提供的服务器的部分结构框图,服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(简称为CPU,即Central Processing Units),1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储装置)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器1100中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
服务器还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
服务器中的处理器可以用于执行上面的Redis集群运行质量自动评价方法。
同理,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于执行上述的Redis集群运行质量自动评价方法。
同理,上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行程序的定序列表,可以具体实现在任何计算机可读介质中,以供程序执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从程序执行系统、装置或设备取程序并执行程序的系统)使用,或结合这些程序执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供程序执行系统、装置或设备或结合这些程序执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的程序执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。

Claims (10)

1.一种Redis集群运行质量自动评价方法,其特征在于,包括以下步骤:
解析Redis的配置,确定Redis的服务类型,以及确定Redis集群的访问量和性能;
根据所述服务类型、访问量和性能,确定Redis集群运行质量的画像;
读取业务系统访问Redis的数据包,结合所述画像,确定所述业务系统的访问流量信息;
根据所述访问流量信息,对所述Redis集群运行质量进行监控,确定有异常请求的异常业务访问行为,并对监控结果和所述异常业务访问行为进行评价和展示。
2.根据权利要求1所述的Redis集群运行质量自动评价方法,其特征在于,所述读取业务系统访问Redis的数据包,结合所述画像,确定所述业务系统的访问流量信息,包括:
记录每个数据包的时间戳、来源端信息和目的端信息,解析所述数据包,确定操作的键值和业务实例;
汇总所述时间戳、所述来源端信息、所述目的端信息、所述键值和所述业务实例至消息队列,确定访问流量信息。
3.根据权利要求2所述的Redis集群运行质量自动评价方法,其特征在于,所述根据所述访问流量信息,对所述Redis集群运行质量进行监控,包括:
基于内存累计每个键值的第一访问量,根据所述第一访问量对键值由大到小或由小到大排序,根据排序结果筛选出热键;根据所述热键,确定相应的Redis集群和异常业务访问行为;
或者,根据所述来源端信息和所述目的端信息,确定业务系统对Redis集群的使用情况;若存在不同业务系统共用相同的Redis集群,确认在所述不同业务系统中是否存在相同键值,并记录各业务系统对缓存的占用情况;
或者,若不同的Redis集群中存在相同的键值,根据所述来源端信息确定所述键值是否属于相同的项目,并记录所述键值在不同的Redis集群上的变化;
或者,获取第一Redis集群的第一实例和第二实例之间的第二访问量差;获取所述第一Redis集群中的单实例访问量均值;根据所述第二访问量差与所述单实例访问量均值之商确定第一比重;若所述第一比重大于第一阈值,筛选并记录相关键值和实例。
4.根据权利要求1所述的Redis集群运行质量自动评价方法,其特征在于,所述根据所述服务类型、访问量和性能,确定Redis集群运行质量的画像,包括以下步骤:
通过只读操作和读写操作多次访问Redis,根据响应确定访问量、性能和存储消耗,并确定所述Redis集群运行质量的画像;
若监测到响应错误,记录相应Redis集群、访问量和内存占用;
确认每个Redis服务的支撑量;所述支撑量包括能够处理的访问量和数据大小;
根据所述支撑量、所述性能和所述存储消耗,对Redis集群进行对比监控,确定异常部署配置;
若所述异常部署和配置对应的数据与当前部署和配置的数据不一致,更新所述画像。
5.根据权利要求1所述的Redis集群运行质量自动评价方法,其特征在于,所述方法还包括:
结合所述画像,确定Redis集群的访问者信息或实例信息;所述实例信息与所述Redis集群之间有数据流转;
将所述访问者信息和所述实例信息作为第一类节点,将Redis作为第二类节点,建立拓扑图,并展示所述拓扑图。
6.根据权利要求1所述的Redis集群运行质量自动评价方法,其特征在于,所述方法还包括:
根据所述数据包,确定所述业务系统的访问请求,并对所述访问请求进行缓存处理,得到缓存数据;
若Redis实例运行不正常,根据所述缓存数据,对Redis进行服务降级处理;
根据所述访问请求或来源端信息,对异常请求进行过滤和封锁处理;
根据所述访问流量信息,对缓存进行穿透和雪崩处理。
7.根据权利要求6所述的Redis集群运行质量自动评价方法,其特征在于,所述方法还包括:
若所述访问请求是读缓存请求,根据键值从缓存中读取第一数据,通过服务器的网络设备模拟故障中的Redis实例发送第一响应;
或者,若所述访问请求是写缓存操作,等待Redis实例恢复;
或者,若所述访问请求是写缓存操作,将所述写缓存操作转发至当前Redis实例处理。
8.一种Redis集群运行质量自动评价系统,其特征在于,包括:
第一模块,用于解析Redis的配置,确定Redis的服务类型,以及确定Redis集群的访问量和性能;
第二模块,用于根据所述服务类型、访问量和性能,确定Redis集群运行质量的画像;
第三模块,用于读取业务系统访问Redis的数据包,结合所述画像,确定业务系统的访问流量信息;
第四模块,用于根据所述访问流量信息,对所述Redis集群运行质量进行监控,确定有异常请求的异常业务访问行为,并对监控结果和所述异常业务访问行为进行评价和展示。
9.一种Redis集群运行质量自动评价装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至7中任一项所述的Redis集群运行质量自动评价方法。
10.一种计算机可读存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于实现如权利要求1至7中任一项所述的Redis集群运行质量自动评价方法。
CN202311459526.1A 2023-11-03 2023-11-03 Redis集群运行质量自动评价方法、系统和装置 Pending CN117453508A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311459526.1A CN117453508A (zh) 2023-11-03 2023-11-03 Redis集群运行质量自动评价方法、系统和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311459526.1A CN117453508A (zh) 2023-11-03 2023-11-03 Redis集群运行质量自动评价方法、系统和装置

Publications (1)

Publication Number Publication Date
CN117453508A true CN117453508A (zh) 2024-01-26

Family

ID=89594501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311459526.1A Pending CN117453508A (zh) 2023-11-03 2023-11-03 Redis集群运行质量自动评价方法、系统和装置

Country Status (1)

Country Link
CN (1) CN117453508A (zh)

Similar Documents

Publication Publication Date Title
US10785131B2 (en) Method and system for synchronous and asynchronous monitoring
US10404822B2 (en) Predictive rollup and caching for application performance data
CN105610648B (zh) 一种运维监控数据的采集方法及服务器
KR102076862B1 (ko) 네트워크 성능지표를 시각화하는 방법 및 장치, 및 시스템
CN106411629B (zh) 一种用于监控cdn节点的状态的方法和设备
US11093349B2 (en) System and method for reactive log spooling
CN101707632A (zh) 一种动态监控服务器集群性能并实时报警的方法
CN113127732B (zh) 业务数据的获取方法、装置、计算机设备和存储介质
CN111124609B (zh) 数据采集方法、装置、数据采集设备及存储介质
CN108566317A (zh) 业务监控方法、云服务器、存储介质及装置
CN111258971A (zh) 一种基于访问日志的应用状态监控报警系统及方法
CN107241242A (zh) 一种数据处理方法和装置
WO2022063032A1 (zh) 一种面向分布式系统的故障信息关联上报方法及相关设备
US11962666B2 (en) User-configurable end user monitoring (EUM)
CN108039956A (zh) 应用监控方法、系统和计算机可读存储介质
CN112702198B (zh) 异常根因定位方法、装置、电子设备及存储介质
US10180914B2 (en) Dynamic domain name service caching
CN107451056B (zh) 监听接口测试结果的方法及装置
CN109510730A (zh) 分布式系统及其监控方法、装置、电子设备及存储介质
CN117453508A (zh) Redis集群运行质量自动评价方法、系统和装置
CN115102828A (zh) 一种故障分析方法及装置
EP3895015B1 (en) Collecting repeated diagnostics data from across users participating in a document collaboration session
KR100970211B1 (ko) 인증 서비스 시스템에서 별도의 감시자를 통해 서비스상태를 감시하는 방법 및 장치
US10296967B1 (en) System, method, and computer program for aggregating fallouts in an ordering system
CN111294231A (zh) 资源管理方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination