CN111200637B - 一种缓存的处理方法及装置 - Google Patents

一种缓存的处理方法及装置 Download PDF

Info

Publication number
CN111200637B
CN111200637B CN201911321704.8A CN201911321704A CN111200637B CN 111200637 B CN111200637 B CN 111200637B CN 201911321704 A CN201911321704 A CN 201911321704A CN 111200637 B CN111200637 B CN 111200637B
Authority
CN
China
Prior art keywords
queue
cache
request
processing request
processing
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.)
Active
Application number
CN201911321704.8A
Other languages
English (en)
Other versions
CN111200637A (zh
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.)
Sina Technology China Co Ltd
Original Assignee
Sina Technology China 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 Sina Technology China Co Ltd filed Critical Sina Technology China Co Ltd
Priority to CN201911321704.8A priority Critical patent/CN111200637B/zh
Publication of CN111200637A publication Critical patent/CN111200637A/zh
Application granted granted Critical
Publication of CN111200637B publication Critical patent/CN111200637B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种缓存的处理方法及装置,其中,所述方法包括:通过消息转换程序将缓存处理请求放入本地内存队列,按批次将本地内存队列中的缓存处理请求发送到分布式流平台Kafka;获取Kafka的客户端程序Agent管理的集群虚拟IP;通过Agent从Kafka中读出缓存处理请求,并将缓存处理请求发送至集群虚拟IP;通过所述集群虚拟IP将缓存处理请求转发至后端真实服务器以该缓存处理请求的缓存内容。通过采取全新的技术考量和全新的方案设计,使逻辑更简单,同时存入数据库的方式变更为消息队列的方式,通过内存队列更快的写入和读取数据,并且各个环节都可以采用分布式的方式,保证高可用。

Description

一种缓存的处理方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种缓存的处理方法及装置。
背景技术
内容分发网络CDN是为了用户能就近访问在服务器端做了缓存,在没有到缓存过期时及时清除CDN缓存;或是为了用户能就近访问在服务器端做了缓存,在用户访问之前在服务器端提前缓存。现有技术处理缓存主要是通过把用户请求通过超文本传输协议HTTP接口鉴权后存储至数据库,每台管理设备再通过Agent去访问数据库读取数据,读取数据后写入本地文件,然后通过多个脚本相互嵌套读取文件内容发送处理请求给反向代理nginx,nginx通过hash算法转给后端缓存程序ATS,ATS接口接收请求后,删除或预热相应的缓存文件
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有技术中,因为每条请求都要存入数据库,数据库在存数据时候写入硬盘的压力会很大,在很大并发的情况下,数据写入及读取都会有很大延迟,导致处理缓存不及时。
发明内容
本发明实施例提供一种缓存的处理方法及装置,通过采取全新的技术考量和全新的方案设计,使逻辑更简单,同时存入数据库的方式变更为消息队列的方式,通过内存队列更快的写入和读取数据,并且各个环节都可以采用分布式的方式,保证高可用。
为达到上述目的,一方面,本发明实施例提供了一种缓存的处理方法,所述方法包括:
通过消息转换程序将缓存处理请求放入本地内存队列,按批次将本地内存队列中的缓存处理请求发送到分布式流平台Kafka;
确定Kafka的客户端程序Agent管理的集群虚拟IP;
通过Agent从Kafka中读出缓存处理请求,并将缓存处理请求发送至集群虚拟IP;
通过所述集群虚拟IP将缓存处理请求转发至后端真实服务器以处理该缓存处理请求对应的缓存内容。
另一方面,本发明实施例提供了一种缓存的处理装置,所述装置包括:
请求获取单元,用于通过消息转换程序将缓存处理请求放入本地内存队列,按批次将本地内存队列中的缓存处理请求数据发送到分布式流平台Kafka;
IP获取单元,用于确定Kafka的客户端程序Agent管理的集群虚拟IP;
请求发送单元,用于通过Agent从Kafka中读出缓存处理请求,并将缓存处理请求发送至集群虚拟IP;
请求处理单元,用于通过所述集群虚拟IP将缓存处理请求转发至后端真实服务器以处理该缓存处理请求对应的缓存内容。
上述技术方案具有如下有益效果:本申请技术方案通过采取全新的技术考量和全新的方案设计,使逻辑更简单,同时存入数据库的方式变更为消息队列的方式,本身数据的索引放在内存中,通过内存队列更快的写入和读取数据,方案的Agent可以兼容多种数据源并且各个环节都可以采用分布式的方式,保证高可用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一种缓存的处理方法的流程图;
图2是本发明实施例一种缓存的处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,是本发明实施例一种缓存的处理方法的流程图,所述方法包括:
S101:通过消息转换程序将缓存处理请求放入本地内存队列,按批次将本地内存队列中的缓存处理请求发送到分布式流平台Kafka。
对于消息的接入,在此之前,获取缓存处理请求的超文本传输协议HTTP,所述HTTP包括处理对象的统一资源定位符URL、鉴权编号kid及鉴权秘钥key;判段所述kid及key是否正确以及所述URL是否具有刷新权限;若判定所述kid及key正确以及所述URL具有刷新权限,则将所述缓存处理请求转发给所述消息转换程序。
具体地,用户通过页面或者特定的软件sdk发送HTTP请求至api接口,请求的body需要带着要刷新的url,kid,key,api接收请求后去验证kid和key是否正确,以及是否有url的刷新权限,通过则转发消息至nginx端口,否则直接报错返回用户信息。反向代理Nginx监听HTTP端口,通过nginx的upstream模块负载均衡后,转发至其中一台存活的后端消息转换程序Agent的端口,Agent接收请求后直接放入本地内存队列,按时间或者数据字节大小(其中一项符合即可发送),按批次发送数据至kafka。
S102:确定Kafka的客户端程序Agent管理的集群虚拟IP。
对于集群虚拟IP的确定,优选地,每个Agent上报心跳至调度接口,调度接口根据上报的心跳周期判断Agent是否存活,如否,则把该判断为死亡的Agent管理的集群分配给其他Agent,计算完成每个存活的Agent管理的集群列表后将集群虚拟IP放入内存,对接至api接口保证随时可查。
S103:通过Agent从Kafka中读出缓存处理请求,并将缓存处理请求发送至集群虚拟IP。
Agent的reader模块通过经过sasl认证后连接至kafka,对应kafka的队列topic,读取消息至Agent内存中,并且定时上报每次读取消息的位置offset至kafka,然后把消息转至parser模块,进入处理阶段。
优选地,在Agent启动时申请数据处理队列;通过数据处理队列存储从Kafka中读出的缓存处理请求;从数据处理队列中读出缓存处理请求,经过防盗链规则的约束后,在缓存处理请求的URL中增加参数args,或者在缓存处理请求的HTTP中增加请求头requestheader,然后将缓存处理请求发送至集群虚拟IP。
优选地,对于缓存删除请求,Agent在启动时申请了4个队列为:Local Queue、Sleep Queue、Exec Queue和Limit Queue;以及,所述四个数据处理队列之间相互控制关联限速,具体包括:
(1).LocalQueue:将从kafka读取的缓存处理请求放入Local Queue,队列写满后阻塞,不再从kafka读取;LocalQueue为本地队列,例如长度设置为100万。
(2).SleepQueue:当从Local Queue读出缓存处理请求后,在Sleep Queue中写入1,队列写满后阻塞,以防止本地sleep的任务占内存太大,导致程序失控;SleepQueue为休眠队列,例如长度设置为30万。
(3).当从Local Queue读出缓存处理请求后,在Sleep Queue中写入1时,同时把缓存处理请求写入Exec Queue,队列写满后阻塞,当从Exec Queue读出缓存处理请求时,同时从Sleep Queue中读出1,当Exec Queue队列的内容全部读取完成后阻塞。
(4).LimitQueue:当从Exec Queue读出缓存处理请求进行处理时,同时在limitQueue中写入1,每处理完成一条缓存处理请求后从limit Queue中读出1,保证该设备并行的连接在可控范围之内将从Exec Queue读出的清除缓存请求任务经过防盗链规则的约束后,增加清除缓存请求的URL的参数args,或者清除缓存请求的HTTP的request header,发送请求至第一步已经获取的集群的虚拟ip,该虚拟IP为LVS服务创建的虚拟ip,用于集群内服务器的负载均衡。
对于缓存预热请求,Agent在启动时申请了2个队列为:Exec Queue和LimitQueue;以及,所述两个数据处理队列之间相互控制关联限速,包括:
(1).ExecQueue:将从kafka读取的缓存处理请求放入Exec Queue,同时在limitQueue中写入1;
(2).LimitQueu:当从Exec Queue读出缓存处理请求进行处理时,同时在limitQueue中写入1,每处理完成一条缓存处理请求后从limit Queue中读出1,保证该设备并行的连接在可控范围之内,将从Exec Queue读出的清除缓存请求任务经过防盗链规则的约束后,增加清除缓存请求的URL的参数args,或者清除缓存请求的HTTP的request header,发送get请求,及range请求的第一个字节至已经获取的集群的虚拟ip(由LVS服务创建的虚拟ip,用于集群内服务器的负载均衡。
S104:通过所述集群虚拟IP将缓存处理请求转发至后端真实服务器以处理该缓存处理请求对应的缓存内容。虚拟ip转发请求至后端真实服务器的nginx,nginx接收请求后通过hash算法转发至后端ATS接口,ATS接口删除对应url的缓存。
对应于上述方法,如图2所示,是本发明实施例一种缓存的处理装置的结构示意图,所述装置包括:
请求获取单元21,用于用于通过消息转换程序将缓存处理请求放入本地内存队列,按批次将本地内存队列中的缓存处理请求数据发送到分布式流平台Kafka;
IP获取单元22,用于确定Kafka的客户端程序Agent管理的集群虚拟IP;
请求发送单元23,用于通过Agent从Kafka中读出缓存处理请求,并将缓存处理请求发送至集群虚拟IP;
请求处理单元24,用于通过所述集群虚拟IP将缓存处理请求转发至后端真实服务器以处理该缓存处理请求对应的缓存内容。
进一步地,所述请求获取单元还用于:
在所述通过消息转换程序将缓存处理请求放入本地内存队列之前,
获取缓存处理请求的超文本传输协议HTTP,所述HTTP包括处理对象的统一资源定位符URL、鉴权编号kid及鉴权秘钥key;
判段所述kid及key是否正确、以及所述URL是否具有刷新权限;
若判定所述kid及key正确、且所述URL具有刷新权限,则将所述缓存处理请求转发给所述消息转换程序。
进一步地,所述IP获取单元具体用于:
将每个Agent上报心跳至调度接口,调度接口根据上报的心跳周期判断Agent是否存活,如否,则把该判断为死亡的Agent管理的集群分配给其他Agent,计算完成每个存活的Agent管理的集群列表后将集群虚拟IP放入内存。
进一步地,所述请求发送单元具体用于:
在Agent启动时申请数据处理队列;
通过数据处理队列存储从Kafka中读出的缓存处理请求;
从数据处理队列中读出缓存处理请求,经过防盗链规则的约束后,在缓存处理请求的URL中增加参数args,或者在缓存处理请求的HTTP中增加请求头request header,然后将缓存处理请求发送至集群虚拟IP。
进一步地,所述缓存处理请求包括缓存删除请求和缓存预热请求,对于缓存删除请求,所述数据处理队列为:Local Queue、Sleep Queue、Exec Queue和Limit Queue;以及,所述四个数据处理队列之间相互控制关联限速,具体包括:
将从kafka读取的缓存处理请求放入Local Queue,队列写满后阻塞;
当从Local Queue读出缓存处理请求后,在Sleep Queue中写入1,队列写满后阻塞;
当从Local Queue读出缓存处理请求后在Sleep Queue中写入1时,同时把缓存处理请求写入Exec Queue,队列写满后阻塞;
当从Exec Queue读出缓存处理请求时,同时从Sleep Queue中读出1,当ExecQueue队列的内容全部读取完成后阻塞;
当从Exec Queue读出缓存处理请求进行处理时,同时在limit Queue中写入1,每处理完成一条缓存处理请求后从limit Queue中读出1;
对于缓存预热请求,所述数据处理队列为:Exec Queue和Limit Queue;以及,所述两个数据处理队列之间相互控制关联限速,包括:
将从kafka读取的缓存处理请求放入Exec Queue,同时在limit Queue中写入1;
当从Exec Queue读出缓存处理请求进行处理时,同时在limit Queue中写入1,每处理完成一条缓存处理请求后从limit Queue中读出1。
本申请技术方案比现有方案的读写速度要快,本方案采用消息队列的方式,本身数据的索引放在内存中,比mysql数据库放入硬盘中要快很多,其次mysql的读写性能和消息队列不是一个量级;本方案可直接获取内存队列的长度,获取刷新是否有延迟的监控,而现有方案只能通过日志分析,比较原始;本方案是流式数据处理,而现有方案是通过读取mysql存储到文件,通过脚本按批次处理的方式,可能导致处理不及时;本方案的Agent可以兼容多种数据源,不只是可以从kafka获取消息,代码已成框架,开发成本较低。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个装置的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种缓存的处理方法,其特征在于,所述方法包括:
通过消息转换程序将缓存处理请求放入本地内存队列,按批次将本地内存队列中的缓存处理请求发送到分布式流平台Kafka;
确定Kafka的客户端程序Agent管理的集群虚拟IP;
通过Agent从Kafka中读出缓存处理请求,并将缓存处理请求发送至集群虚拟IP;
通过所述集群虚拟IP将缓存处理请求转发至后端真实服务器以处理该缓存处理请求对应的缓存内容;
所述通过Agent从Kafka中读出缓存处理请求,并将缓存处理请求发送至集群虚拟IP,包括:
在Agent启动时申请数据处理队列;
通过数据处理队列存储从Kafka中读出的缓存处理请求;
从数据处理队列中读出缓存处理请求,经过防盗链规则的约束后,在缓存处理请求的URL中增加参数args,或者在缓存处理请求的HTTP中增加请求头request header,然后将缓存处理请求发送至集群虚拟IP。
2.如权利要求1所述的缓存的处理方法,其特征在于,在所述通过消息转换程序将缓存处理请求放入本地内存队列之前,所述方法还包括:
获取缓存处理请求的超文本传输协议HTTP,所述HTTP包括处理对象的统一资源定位符URL、鉴权编号kid及鉴权秘钥key;
判断 所述kid及key是否正确以及所述URL是否具有刷新权限;
若判定所述kid及key正确且所述URL具有刷新权限,则将所述缓存处理请求转发给所述消息转换程序。
3.如权利要求2所述的缓存的处理方法,其特征在于,所述确定Kafka的客户端程序Agent管理的集群虚拟IP,包括:
每个Agent上报心跳至调度接口,调度接口根据上报的心跳周期判断Agent是否存活,如否,则把该判断为死亡的Agent管理的集群分配给其他Agent,计算完成每个存活的Agent管理的集群列表后将集群虚拟IP放入内存。
4.如权利要求1所述的缓存的处理方法,所述缓存处理请求包括缓存删除请求和缓存预热请求,其特征在于,
对于缓存删除请求,所述数据处理队列为:Local Queue、Sleep Queue、Exec Queue和Limit Queue;以及,所述四个数据处理队列之间相互控制关联限速,具体包括:
将从kafka读取的缓存处理请求放入Local Queue,队列写满后阻塞;
当从Local Queue读出缓存处理请求后,在Sleep Queue中写入1,队列写满后阻塞;
当从Local Queue读出缓存处理请求后,在Sleep Queue中写入1时,同时把缓存处理请求写入Exec Queue,队列写满后阻塞;
当从Exec Queue读出缓存处理请求时,同时从Sleep Queue中读出1,当Exec Queue队列的内容全部读取完成后阻塞;
当从Exec Queue读出缓存处理请求进行处理时,同时在limit Queue中写入1,每处理完成一条缓存处理请求后从limit Queue中读出1;
对于缓存预热请求,所述数据处理队列为:Exec Queue和Limit Queue;以及,所述两个数据处理队列之间相互控制关联限速,包括:
将从kafka读取的缓存处理请求放入Exec Queue,同时在limit Queue中写入1;
当从Exec Queue读出缓存处理请求进行处理时,同时在limit Queue中写入1,每处理完成一条缓存处理请求后从limit Queue中读出1。
5.一种缓存的处理装置,其特征在于,所述装置包括:
请求获取单元,用于通过消息转换程序将缓存处理请求放入本地内存队列,按批次将本地内存队列中的缓存处理请求数据发送到分布式流平台Kafka;
IP获取单元,用于确定Kafka的客户端程序Agent管理的集群虚拟IP;
请求发送单元,用于通过Agent从Kafka中读出缓存处理请求,并将缓存处理请求发送至集群虚拟IP;
请求处理单元,用于通过所述集群虚拟IP将缓存处理请求转发至后端真实服务器以处理该缓存处理请求对应的缓存内容;
所述请求发送单元具体用于:
在Agent启动时申请数据处理队列;
通过数据处理队列存储从Kafka中读出的缓存处理请求;
从数据处理队列中读出缓存处理请求,经过防盗链规则的约束后,在缓存处理请求的URL中增加参数args,或者在缓存处理请求的HTTP中增加请求头request header,然后将缓存处理请求发送至集群虚拟IP。
6.如权利要求5所述的缓存的处理装置,其特征在于,所述请求获取单元还用于:
在所述通过消息转换程序将缓存处理请求放入本地内存队列之前,
获取缓存处理请求的超文本传输协议HTTP,所述HTTP包括处理对象的统一资源定位符URL、鉴权编号kid及鉴权秘钥key;
判断 所述kid及key是否正确以及所述URL是否具有刷新权限;
若判定所述kid及key正确且所述URL具有刷新权限,则将所述缓存处理请求转发给所述消息转换程序。
7.如权利要求6所述的缓存的处理装置,其特征在于,所述IP获取单元具体用于:
将每个Agent上报心跳至调度接口,调度接口根据上报的心跳周期判断Agent是否存活,如否,则把该判断为死亡的Agent管理的集群分配给其他Agent,计算完成每个存活的Agent管理的集群列表后将集群虚拟IP放入内存。
8.如权利要求5所述的缓存的处理装置,所述缓存处理请求包括缓存删除请求和缓存预热请求,其特征在于,
对于缓存删除请求,所述数据处理队列为:Local Queue、Sleep Queue、Exec Queue和Limit Queue;以及,所述四个数据处理队列之间相互控制关联限速,具体包括:
将从kafka读取的缓存处理请求放入Local Queue,队列写满后阻塞;
当从Local Queue读出缓存处理请求后,在Sleep Queue中写入1,队列写满后阻塞;
当从Local Queue读出缓存处理请求后在Sleep Queue中写入1时,同时把缓存处理请求写入Exec Queue,队列写满后阻塞;
当从Exec Queue读出缓存处理请求时,同时从Sleep Queue中读出1,当Exec Queue队列的内容全部读取完成后阻塞;
当从Exec Queue读出缓存处理请求进行处理时,同时在limit Queue中写入1,每处理完成一条缓存处理请求后从limit Queue中读出1;
对于缓存预热请求,所述数据处理队列为:Exec Queue和Limit Queue;以及,所述两个数据处理队列之间相互控制关联限速,包括:
将从kafka读取的缓存处理请求放入Exec Queue,同时在limit Queue中写入1;
当从Exec Queue读出缓存处理请求进行处理时,同时在limit Queue中写入1,每处理完成一条缓存处理请求后从limit Queue中读出1。
CN201911321704.8A 2019-12-20 2019-12-20 一种缓存的处理方法及装置 Active CN111200637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911321704.8A CN111200637B (zh) 2019-12-20 2019-12-20 一种缓存的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911321704.8A CN111200637B (zh) 2019-12-20 2019-12-20 一种缓存的处理方法及装置

Publications (2)

Publication Number Publication Date
CN111200637A CN111200637A (zh) 2020-05-26
CN111200637B true CN111200637B (zh) 2022-07-08

Family

ID=70747526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911321704.8A Active CN111200637B (zh) 2019-12-20 2019-12-20 一种缓存的处理方法及装置

Country Status (1)

Country Link
CN (1) CN111200637B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112039726A (zh) * 2020-08-25 2020-12-04 新浪网技术(中国)有限公司 一种内容分发网络cdn设备的数据监控方法及系统
CN112764948B (zh) * 2021-01-22 2024-07-19 土巴兔集团股份有限公司 数据发送方法、数据发送装置、计算机设备及存储介质
CN115733883B (zh) * 2022-12-27 2023-10-03 江苏云工场信息技术有限公司 一种刷新cdn缓存的方法及装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104036025A (zh) * 2014-06-27 2014-09-10 蓝盾信息安全技术有限公司 一种基于分布式的海量日志采集系统
CN104754036A (zh) * 2015-03-06 2015-07-01 合一信息技术(北京)有限公司 一种基于kafka的消息处理系统及处理方法
CN105450618A (zh) * 2014-09-26 2016-03-30 Tcl集团股份有限公司 一种api服务器处理大数据的运算方法及其系统
CN106953901A (zh) * 2017-03-10 2017-07-14 重庆邮电大学 一种提高消息传递性能的集群通信系统及其方法
CN107454120A (zh) * 2016-05-30 2017-12-08 北京京东尚科信息技术有限公司 网络攻击防御系统和防御网络攻击的方法
WO2018103315A1 (zh) * 2016-12-09 2018-06-14 上海壹账通金融科技有限公司 监控数据的处理方法、装置、服务器及存储设备
CN108197233A (zh) * 2017-12-29 2018-06-22 飞狐信息技术(天津)有限公司 一种数据管理方法、中间件及数据管理系统
CN108874562A (zh) * 2018-06-21 2018-11-23 北京顺丰同城科技有限公司 分布式高并发消息队列推送系统
CN109451072A (zh) * 2018-12-29 2019-03-08 广东电网有限责任公司 一种基于Kafka的消息缓存系统和方法
CN109857739A (zh) * 2019-01-28 2019-06-07 中国石油大学(华东) 一种基于RK(Redis and Kafka)的实时高效缓存机制
CN110119421A (zh) * 2019-04-03 2019-08-13 昆明理工大学 一种基于Spark流式分类的电力窃电用户识别方法
CN110209507A (zh) * 2019-05-16 2019-09-06 厦门市美亚柏科信息股份有限公司 基于消息队列的数据处理方法、装置、系统及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289383B2 (en) * 2016-07-28 2019-05-14 International Business Machines Corporation Cross object synchronization
CN106850759A (zh) * 2016-12-31 2017-06-13 广州勤加缘科技实业有限公司 MySQL数据库集群处理方法及其处理系统
CN106936896B (zh) * 2017-02-20 2019-06-25 北京数字联盟网络科技有限公司 Kafka集群的数据传送方法和装置
US20180302486A1 (en) * 2017-04-12 2018-10-18 Futurewei Technologies, Inc. Proxy apparatus and method for data collection
CN109063196B (zh) * 2018-09-03 2021-08-27 拉扎斯网络科技(上海)有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104036025A (zh) * 2014-06-27 2014-09-10 蓝盾信息安全技术有限公司 一种基于分布式的海量日志采集系统
CN105450618A (zh) * 2014-09-26 2016-03-30 Tcl集团股份有限公司 一种api服务器处理大数据的运算方法及其系统
CN104754036A (zh) * 2015-03-06 2015-07-01 合一信息技术(北京)有限公司 一种基于kafka的消息处理系统及处理方法
CN107454120A (zh) * 2016-05-30 2017-12-08 北京京东尚科信息技术有限公司 网络攻击防御系统和防御网络攻击的方法
WO2018103315A1 (zh) * 2016-12-09 2018-06-14 上海壹账通金融科技有限公司 监控数据的处理方法、装置、服务器及存储设备
CN106953901A (zh) * 2017-03-10 2017-07-14 重庆邮电大学 一种提高消息传递性能的集群通信系统及其方法
CN108197233A (zh) * 2017-12-29 2018-06-22 飞狐信息技术(天津)有限公司 一种数据管理方法、中间件及数据管理系统
CN108874562A (zh) * 2018-06-21 2018-11-23 北京顺丰同城科技有限公司 分布式高并发消息队列推送系统
CN109451072A (zh) * 2018-12-29 2019-03-08 广东电网有限责任公司 一种基于Kafka的消息缓存系统和方法
CN109857739A (zh) * 2019-01-28 2019-06-07 中国石油大学(华东) 一种基于RK(Redis and Kafka)的实时高效缓存机制
CN110119421A (zh) * 2019-04-03 2019-08-13 昆明理工大学 一种基于Spark流式分类的电力窃电用户识别方法
CN110209507A (zh) * 2019-05-16 2019-09-06 厦门市美亚柏科信息股份有限公司 基于消息队列的数据处理方法、装置、系统及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"kafka全面介绍";张小凡vip;《CSDN》;20181022;全文 *
"Monitor Kafka Consumer Group Latency with Kafka Lag Exporter";sean glover;《lightbend》;20190507;全文 *
大并发、高吞吐量实时数据平台的研究;郑文俊等;《电信快报》;20161010(第10期);全文 *

Also Published As

Publication number Publication date
CN111200637A (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
CN111200637B (zh) 一种缓存的处理方法及装置
CN113010818B (zh) 访问限流方法、装置、电子设备及存储介质
CN107547548B (zh) 数据处理方法及系统
CN110888838B (zh) 基于对象存储的请求处理方法、装置、设备及存储介质
CN102035815B (zh) 数据获取方法、接入节点和系统
US10609123B2 (en) Hybrid quorum policies for durable consensus in distributed systems
US11831617B2 (en) File upload control for client-side applications in proxy solutions
WO2017025052A1 (zh) 资源缓存方法及装置
CN110647460B (zh) 一种测试资源管理方法、装置和测试客户端
US9317470B1 (en) Method and system for incremental cache lookup and insertion
TW201711432A (zh) 對伺服器進行健康檢查的方法及設備
CN110138747B (zh) 一种验证账号登录状态的方法及系统
CN111046310A (zh) 页面处理方法、装置、服务器及计算机可读存储介质
CN106202082B (zh) 组装基础数据缓存的方法及装置
CN111181782A (zh) 一种回源处理方法及装置
CN117407159A (zh) 内存空间的管理方法及装置、设备、存储介质
US8924529B2 (en) Client device identification through cache manipulation
US8412844B2 (en) Validating download success
CN109672756B (zh) 一种数据传输方法及相关装置、服务器和存储介质
CN103746926A (zh) 一种局域网加速装置及局域网加速系统
CN113468579A (zh) 数据访问方法、装置、设备和存储介质
CN108959405B (zh) 数据的强一致性读取方法及终端设备
CN114466032B (zh) 一种cdn系统合并回源方法、装置及存储介质
CN116055554B (zh) 一种基于消息机制并应用于数字化业务的通知引擎
WO2017092350A1 (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230406

Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Patentee after: Sina Technology (China) Co.,Ltd.

Address before: 100193 7th floor, scientific research building, Sina headquarters, plot n-1, n-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Patentee before: Sina.com Technology (China) Co.,Ltd.

TR01 Transfer of patent right