CN110928940A - 基于kafka集群的数据写入方法、装置、电子设备、存储介质 - Google Patents

基于kafka集群的数据写入方法、装置、电子设备、存储介质 Download PDF

Info

Publication number
CN110928940A
CN110928940A CN201911151860.4A CN201911151860A CN110928940A CN 110928940 A CN110928940 A CN 110928940A CN 201911151860 A CN201911151860 A CN 201911151860A CN 110928940 A CN110928940 A CN 110928940A
Authority
CN
China
Prior art keywords
kafka
data
local file
calling interface
cluster
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.)
Granted
Application number
CN201911151860.4A
Other languages
English (en)
Other versions
CN110928940B (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.)
Jiangsu Manyun Software Technology Co Ltd
Original Assignee
Jiangsu Manyun Software 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 Jiangsu Manyun Software Technology Co Ltd filed Critical Jiangsu Manyun Software Technology Co Ltd
Priority to CN201911151860.4A priority Critical patent/CN110928940B/zh
Publication of CN110928940A publication Critical patent/CN110928940A/zh
Application granted granted Critical
Publication of CN110928940B publication Critical patent/CN110928940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本发明提供一种基于kafka集群的数据写入方法、装置、电子设备、存储介质,基于kafka集群的数据写入方法包括:监控kafka调用接口中数据量的产生速度;判断所述kafka调用接口中数据量的产生速度是否大于预定阈值;若判断所述kafka调用接口中数据量的产生速度小于等于预定阈值,则将所述kafka调用接口中数据直接发送至kafka集群;若判断所述kafka调用接口中数据量的产生速度大于预定阈值,则将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群。本发明提供的方法及装置通过对kafka集群的数据写入的控制,避免kafka集群不可用的不同时,不影响业务程序的正常运行。

Description

基于kafka集群的数据写入方法、装置、电子设备、存储介质
技术领域
本发明涉及大数据技术领域,尤其涉及一种基于kafka集群的数据写入方法、装置、电子设备、存储介质。
背景技术
近年来,随着信息时代的到来,对于大数据的相关数据处理能力对信息技术的发展尤为重要。
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这些动作流数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
Kafka作为消息队列在大数据实时计算中的地位首屈一指,storm(Twitter开源的分布式实时大数据处理框架)、flink(Apache软件基金会开发的开源流处理框架)、spark(专为大规模数据处理而设计的快速通用的计算引擎)天然支持读取和写入kafka的数据,但是在实际的生产环境中,kafka被多个数据生产方一起使用,如果其中一方数据量暴增达到kafka集群的性能瓶颈的话,整个集群将达到不可用的状态,会影响到其他业务方,业务方生产数据时不能正常写入,严重的会影响整个业务方使上层业务程序宕机,这个风险在任何的业务系统里是不能容忍的。
为了避免kafka集群不可用的情况,目前,通过在kafka集群进行监控,若发现指标异常,则开始排查上游写入方数据量是否异常,如果有异常则通知上游业务方停止写入,问题解决时间较长,对业务方也有很大的影响,加入该业务是比较重要的服务不能停机,那么kafka集群的性能瓶颈将影响业务的正常运行,甚至出现业务程序宕机住的情况
由此可见,如何对kafka集群的数据写入进行控制,从而避免kafka集群不可用的不同时,不影响业务程序的正常运行,是本领域亟待解决的问题。
发明内容
本发明为了克服上述相关技术存在的缺陷,提供一种基于kafka集群的数据写入方法、装置、电子设备、存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本发明的一个方面,提供一种基于kafka集群的数据写入方法,包括:
监控kafka调用接口中数据量的产生速度;
判断所述kafka调用接口中数据量的产生速度是否大于预定阈值;
若判断所述kafka调用接口中数据量的产生速度小于等于预定阈值,则将所述kafka调用接口中数据直接发送至kafka集群;
若判断所述kafka调用接口中数据量的产生速度大于预定阈值,则将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群。
在本发明的一些实施例中,所述kafka调用接口及所述基于kafka集群的数据写入方法封装为软件开发工具包。
在本发明的一些实施例中,将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群包括:
当所述kafka调用接口中数据量的产生速度小于等于预定阈值时,将所述本地文件中储存的数据发送至所述kafka集群直至所述本地文件为空,将所述kafka调用接口中数据发送至kafka集群。
在本发明的一些实施例中,将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将所述本地文件中储存的数据发送至所述kafka集群包括:
由所述本地文件按预定数据传输速度将述本地文件中储存的数据发送至所述kafka集群。
在本发明的一些实施例中,所述将所述kafka调用接口中产生的数据写入本地文件中还包括:
至少将写入本地文件的数据的数据量和/或所监控的kafka调用接口中数据量的产生速度写入开发时间序列数据库。
在本发明的一些实施例中,所述至少将写入本地文件的数据的数据量写入开发时间序列数据库之后还包括:
图形化展示所述开发时间序列数据库中的数据。
在本发明的一些实施例中,所述图形化展示所述开发时间序列数据库中的数据包括:
将所述本地文件显示为容器,以所述容器中容纳的液体体积表示所述本地文件中储存的数据量,以色调变化显示所述容器的数据输入速度和数据输出速度,所述容器的输出端设置有一调节图标,所述调节图标供用户操作以调节所述本地文件向所述kafka集群传输数据的速度。
根据本发明的又一方面,还提供一种基于kafka集群的数据写入装置,包括:
监控模块,用于监控kafka调用接口中数据量的产生速度;
判断模块,用于判断所述kafka调用接口中数据量的产生速度是否大于预定阈值;
直接发送模块,若判断所述kafka调用接口中数据量的产生速度小于等于预定阈值,则所述直接发送模块用于将所述kafka调用接口中数据直接发送至kafka集群;
间接发送模块,若判断所述kafka调用接口中数据量的产生速度大于预定阈值,则所述间接发送模块用于将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群。
根据本发明的又一方面,还提供一种电子设备,所述电子设备包括:处理器;存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述的步骤。
根据本发明的又一方面,还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述的步骤。
相比现有技术,本发明的优势在于:
通过对kafka调用接口的监控,从而在数据写入方进行数据量的监控,并基于监控结果,当kafka调用接口的数据量的产生速度大于预定阈值时,使得kafka调用接口不直接向kafka集群写入数据,而将数据写入本地文件,并通过本地文件将数据写入kafka集群,使数据写入kafka集群更稳定,即使在遭受暴增的大流量冲击也可以保持kafka集群的稳定和各业务系统的稳定,并且能保证数据不丢失。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明实施例的基于kafka集群的数据写入方法的流程图。
图2示出了根据本发明具体实施例的基于kafka集群的数据写入方法的示意图。
图3示出了根据本发明实施例的本地文件的图像化展示的示意图。
图4示出了根据本发明实施例的基于kafka集群的数据写入装置的模块图。
图5示意性示出本发明示例性实施例中一种计算机可读存储介质示意图。
图6示意性示出本发明示例性实施例中一种电子设备示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此,实际执行的顺序有可能根据实际情况改变。
图1示出了根据本发明实施例的基于kafka集群的数据写入方法的流程图。基于kafka集群的数据写入方法包括如下步骤:
步骤S110:监控kafka调用接口中数据量的产生速度;
步骤S120:判断所述kafka调用接口中数据量的产生速度是否大于预定阈值;
若步骤S120判断所述kafka调用接口中数据量的产生速度小于等于预定阈值,则执行步骤S130:将所述kafka调用接口中数据直接发送至kafka集群;
若步骤S120判断所述kafka调用接口中数据量的产生速度大于预定阈值,则执行步骤S140:将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群。
在本发明提供的基于kafka集群的数据写入方法中,通过对kafka调用接口的监控,从而在数据写入方进行数据量的监控,并基于监控结果,当kafka调用接口的数据量的产生速度大于预定阈值时,使得kafka调用接口不直接向kafka集群写入数据,而将数据写入本地文件,并通过本地文件将数据写入kafka集群,使数据写入kafka集群更稳定,即使在遭受暴增的大流量冲击也可以保持kafka集群的稳定和各业务系统的稳定,并且能保证数据不丢失。
具体而言,在本发明各个实施例中,kafka调用接口中数据量的产生速度指的是需要通过kafka调用接口写入kafka集群的数据量的产生速度,并非指由kafka调用接口本身产生的数据。在本发明各个实施例中,预定阈值可以按需设定,本发明并不限定预定阈值的范围。
在本发明的各个实施例中,步骤S110和步骤S120还可以监控和判断kafka调用接口中的数据量、数据量的增长、数据量的增长速度等,其与所监控的kafka调用接口中数据量的产生速度具有相同的作用。
在本发明的一些实施例中,所述kafka调用接口及所述基于kafka集群的数据写入方法封装为软件开发工具包。由此,调用方可以使用封装好的软件开发工具包向kafka集群发送数据,如果软件开发工具包检测到kafka调用接口的数据量异常时,可以通过封装在软件开发工具包内的方法,将数据写到本地文件,然后通过本地文件将数据发送到kafka集群。
在本发明的一些实施例中,图1所示的步骤S140将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群中,可以按预设条件的确定,来由所述本地文件将述本地文件中储存的数据发送至所述kafka集群中。
例如,当所述kafka调用接口中数据量的产生速度小于等于预定阈值时,将所述本地文件中储存的数据发送至所述kafka集群直至所述本地文件为空,将所述kafka调用接口中数据直接发送至kafka集群。由此,可以当kafka调用接口处的数据量指标正常时,再将本地文件加载至内存,从而可以将本地文件中的数据发送中至kafka集群,当本地文件为空,则恢复至直接将所述kafka调用接口中数据发送至kafka集群,以避免数据流写入顺序产生混乱。
又例如,可以由所述本地文件按预定数据传输速度将述本地文件中储存的数据发送至所述kafka集群。在该实施例中,预定数据传输速度小于预定阈值。由此,通过本地文件来控制所述kafka调用接口和kafka集群之间的数据传输速度,以避免所述kafka调用接口处的数据量的异常对kafka集群的性能的影响。进一步地,在该实施例中,当所述kafka调用接口中数据量的产生速度小于等于预定阈值时,可以调整所述本地文件数据传输速度为小于预定阈值且大于所述kafka调用接口中当前数据量的产生速度,由此,可以加快本地文件中数据的写入,在本地文件为空后,恢复至直接将所述kafka调用接口中数据发送至kafka集群。由此,在对所述kafka调用接口和kafka集群之间的数据传输速度的有效控制的同时,加快正常传输状态的恢复(直接将所述kafka调用接口中数据发送至kafka集群)。
在本发明的一些实施例中,图1所示的步骤140所述将所述kafka调用接口中产生的数据写入本地文件中还可以包括如下步骤:至少将写入本地文件的数据的数据量和/或所监控的kafka调用接口中数据量的产生速度写入开发时间序列数据库。开发时间序列数据库例如可以是opentsdb。opentsdb是基于Hbase(分布式的、面向列的开源数据库)的时序数据库,主要针对具有时间特性和需求的数据,opentsdb在Hbase的基础上,进行数据结构的优化和处理,从而适合存储具有时间特性的数据,同时提供特定的工具进行查询等操作。
在本发明的上述实施例中,所述至少将写入本地文件的数据的数据量写入开发时间序列数据库之后还包括:图形化展示所述开发时间序列数据库中的数据。例如,通过Grafana实现所述开发时间序列数据库中的数据的图形化展示。Grafana是采用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。
下面结合图2描述本发明的一个具体实施例,图2示出了根据本发明具体实施例的基于kafka集群的数据写入方法的示意图。
如图2所示,本发明通过hystrix断路器220及监控模块250来实现。断路器220是Netflix套件的一部分。通过在hystrix断路器220设定预设阈值,来中断Kafka调用接口210与Kafka集群230之间的数据传输,并通过本地文件240来实现数据传输的降级。
监控模块250可以包括监控指标类库251、开发时间序列数据库252及图像化显示组件253。监控指标类库251可以是Metrics。Metrics作为一款监控指标的度量类库,提供了许多工具帮助开发者来完成自定义的监控工作。监控指标类库251通过周期性自hystrix断路器220收集流量数据,并将所收集的流量数据存入开发时间序列数据库252,以供图像化显示组件253进行图像化展示。开发时间序列数据库252可以由opentsdb来实现。图像化显示组件253可以由Grafana。由此,可以实现本发明所提供的基于kafka集群的数据写入方法,但本发明并非以此为限制。
下面结合图3进一步描述本发明图形化展示的一个具体实施例,图3示出了根据本发明实施例的本地文件的图像化展示的示意图。在本实施例中,将所述本地文件显示为容器300,以所述容器300中容纳的液体体积表示所述本地文件中储存的数据量,以色调变化显示所述容器的输入端310的数据输入速度和输出端320的数据输出速度。例如,通过暖色调表示数据输入速度/数据输出速度快,通过冷色调表示数据输入速度/数据输出速度慢(颜色越红越快,颜色越绿越慢)。所述容器300的输出端设置有一调节图标300,所述调节图标300供用户操作以调节所述本地文件向所述kafka集群传输数据的速度。例如,操作调节图标300以增加容器300的输出端320的宽度,从而加快容器300的输出端320的数据输出速度,反之亦然。
上仅仅是本发明提供的一个或多个具体实现方式,各具体实现方式可以单独或组合来实现,本发明并非以为限制。
根据本发明的又一方面,还提供一种基于kafka集群的数据写入装置,图4示出了根据本发明实施例的基于kafka集群的数据写入装置的模块图。基于kafka集群的数据写入装置400包括监控模块410,判断模块420,直接发送模块430以及间接发送模块440。
监控模块410用于监控kafka调用接口中数据量的产生速度;
判断模块420用于判断所述kafka调用接口中数据量的产生速度是否大于预定阈值;
若判断所述kafka调用接口中数据量的产生速度小于等于预定阈值,则所述直接发送模块430用于将所述kafka调用接口中数据直接发送至kafka集群;
若判断所述kafka调用接口中数据量的产生速度大于预定阈值,则所述间接发送模块440用于将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群。
在本发明提供的基于kafka集群的数据写入装置中,通过对kafka调用接口的监控,从而在数据写入方进行数据量的监控,并基于监控结果,当kafka调用接口的数据量的产生速度大于预定阈值时,使得kafka调用接口不直接向kafka集群写入数据,而将数据写入本地文件,并通过本地文件将数据写入kafka集群,使数据写入kafka集群更稳定,即使在遭受暴增的大流量冲击也可以保持kafka集群的稳定和各业务系统的稳定,并且能保证数据不丢失。
图4仅仅是示意性的示出本发明提供的基于kafka集群的数据写入装置400,在不违背本发明构思的前提下,模块的拆分、合并、增加都在本发明的保护范围之内。本发明提供的基于kafka集群的数据写入装置400可以由软件、硬件、固件、插件及他们之间的任意组合来实现,本发明并非以此为限。
在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述基于kafka集群的数据写入方法及基于kafka集群的数据写入方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述基于kafka集群的数据写入方法及基于kafka集群的数据写入方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图5所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在租户计算设备上执行、部分地在租户设备上执行、作为一个独立的软件包执行、部分在租户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到租户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本发明的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述基于kafka集群的数据写入方法及基于kafka集群的数据写入方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图6来描述根据本发明的这种实施方式的电子设备500。图6显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:至少一个处理单元510、至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530、显示单元540等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述基于kafka集群的数据写入方法及基于kafka集群的数据写入方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元510可以执行如图1或图2所示的步骤。
所述存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(ROM)5203。
所述存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备500也可以与一个或多个外部设备600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得租户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550进行。并且,电子设备500还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器560可以通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明实施方式的上述基于kafka集群的数据写入方法及基于kafka集群的数据写入方法。
相比现有技术,本发明的优势在于:
通过对kafka调用接口的监控,从而在数据写入方进行数据量的监控,并基于监控结果,当kafka调用接口的数据量的产生速度大于预定阈值时,使得kafka调用接口不直接向kafka集群写入数据,而将数据写入本地文件,并通过本地文件将数据写入kafka集群,使数据写入kafka集群更稳定,即使在遭受暴增的大流量冲击也可以保持kafka集群的稳定和各业务系统的稳定,并且能保证数据不丢失。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。

Claims (10)

1.一种基于kafka集群的数据写入方法,其特征在于,包括:
监控kafka调用接口中数据量的产生速度;
判断所述kafka调用接口中数据量的产生速度是否大于预定阈值;
若判断所述kafka调用接口中数据量的产生速度小于等于预定阈值,则将所述kafka调用接口中数据直接发送至kafka集群;
若判断所述kafka调用接口中数据量的产生速度大于预定阈值,则将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群。
2.如权利要求1所述的基于kafka集群的数据写入方法,其特征在于,所述kafka调用接口及所述基于kafka集群的数据写入方法封装为软件开发工具包。
3.如权利要求1所述的基于kafka集群的数据写入方法,其特征在于,将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群包括:
当所述kafka调用接口中数据量的产生速度小于等于预定阈值时,将所述本地文件中储存的数据发送至所述kafka集群直至所述本地文件为空,将所述kafka调用接口中数据发送至kafka集群。
4.如权利要求1所述的基于kafka集群的数据写入方法,其特征在于,将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将所述本地文件中储存的数据发送至所述kafka集群包括:
由所述本地文件按预定数据传输速度将述本地文件中储存的数据发送至所述kafka集群。
5.如权利要求1至4任一项所述的基于kafka集群的数据写入方法,其特征在于,所述将所述kafka调用接口中产生的数据写入本地文件中还包括:
至少将写入本地文件的数据的数据量和/或所监控的kafka调用接口中数据量的产生速度写入开发时间序列数据库。
6.如权利要求5所述的基于kafka集群的数据写入方法,其特征在于,所述至少将写入本地文件的数据的数据量写入开发时间序列数据库之后还包括:
图形化展示所述开发时间序列数据库中的数据。
7.如权利要求6所述的基于kafka集群的数据写入方法,其特征在于,所述图形化展示所述开发时间序列数据库中的数据包括:
将所述本地文件显示为容器,以所述容器中容纳的液体体积表示所述本地文件中储存的数据量,以色调变化显示所述容器的数据输入速度和数据输出速度,所述容器的输出端设置有一调节图标,所述调节图标供用户操作以调节所述本地文件向所述kafka集群传输数据的速度。
8.一种基于kafka集群的数据写入装置,其特征在于,包括:
监控模块,用于监控kafka调用接口中数据量的产生速度;
判断模块,用于判断所述kafka调用接口中数据量的产生速度是否大于预定阈值;
直接发送模块,若判断所述kafka调用接口中数据量的产生速度小于等于预定阈值,则所述直接发送模块用于将所述kafka调用接口中数据直接发送至kafka集群;
间接发送模块,若判断所述kafka调用接口中数据量的产生速度大于预定阈值,则所述间接发送模块用于将所述kafka调用接口中产生的数据写入本地文件中,由所述本地文件将述本地文件中储存的数据发送至所述kafka集群。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储器,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如权利要求1至7任一项所述的基于kafka集群的数据写入方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被所述处理器运行时执行如权利要求1至7任一项所述的基于kafka集群的数据写入方法。
CN201911151860.4A 2019-11-21 2019-11-21 基于kafka集群的数据写入方法、装置、电子设备、存储介质 Active CN110928940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911151860.4A CN110928940B (zh) 2019-11-21 2019-11-21 基于kafka集群的数据写入方法、装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911151860.4A CN110928940B (zh) 2019-11-21 2019-11-21 基于kafka集群的数据写入方法、装置、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN110928940A true CN110928940A (zh) 2020-03-27
CN110928940B CN110928940B (zh) 2022-10-04

Family

ID=69851550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911151860.4A Active CN110928940B (zh) 2019-11-21 2019-11-21 基于kafka集群的数据写入方法、装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN110928940B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112367384A (zh) * 2020-10-30 2021-02-12 上海哔哩哔哩科技有限公司 基于Kafka集群的动态限速方法、装置以及计算机设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487824A (zh) * 2015-12-07 2016-04-13 联想(北京)有限公司 信息处理方法、存储装置及电子设备
CN108234199A (zh) * 2017-12-20 2018-06-29 中国联合网络通信集团有限公司 基于Kafka的监控方法、装置及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487824A (zh) * 2015-12-07 2016-04-13 联想(北京)有限公司 信息处理方法、存储装置及电子设备
CN108234199A (zh) * 2017-12-20 2018-06-29 中国联合网络通信集团有限公司 基于Kafka的监控方法、装置及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112367384A (zh) * 2020-10-30 2021-02-12 上海哔哩哔哩科技有限公司 基于Kafka集群的动态限速方法、装置以及计算机设备
CN112367384B (zh) * 2020-10-30 2022-06-03 上海哔哩哔哩科技有限公司 基于Kafka集群的动态限速方法、装置以及计算机设备

Also Published As

Publication number Publication date
CN110928940B (zh) 2022-10-04

Similar Documents

Publication Publication Date Title
US20190205153A1 (en) System and method of dynamically assigning device tiers based on application
US9910707B2 (en) Interface for orchestration and analysis of a computer environment
US9684562B2 (en) Automatic serial starting of resource groups on failover based on the prediction of aggregate resource usage
CN107426022B (zh) 安全事件监测方法及装置、电子设备、存储介质
US9811443B2 (en) Dynamic trace level control
US20180032387A1 (en) Predictive Analytics on Database Wait Events
CN109726076B (zh) 一种小程序生命周期管理方法和系统
CN110717132A (zh) 全链路监控系统数据收集方法、推送方法及相关设备
CN111522703A (zh) 监控访问请求的方法、设备和计算机程序产品
US10007583B2 (en) Generating a data structure to maintain error and connection information on components and use the data structure to determine an error correction operation
US20180005152A1 (en) Technologies for correlation based data selection
CN110928940B (zh) 基于kafka集群的数据写入方法、装置、电子设备、存储介质
US20160050135A1 (en) Real-time measurement of user interface performance in a remote desktop environment
US20200142746A1 (en) Methods and system for throttling analytics processing
US11221938B2 (en) Real-time collaboration dynamic logging level control
CN113242148B (zh) 监控告警相关信息的生成方法、装置、介质及电子设备
CN109828719B (zh) 基于云监控的commitLog文件所在磁盘控制方法、装置及相关设备
WO2020092852A1 (en) Methods and system for throttling analytics processing
CN111061812B (zh) 大数据分布式存储方法、装置、电子设备、存储介质
US11755957B2 (en) Multitemporal data analysis
US11620173B2 (en) Optimizing application performance with machine learning
US20230409419A1 (en) Techniques for controlling log rate using policy
CN113794719A (zh) 一种基于Elasticsearch技术网络异常流量分析方法、装置和电子设备
CN113468127A (zh) 数据缓存方法、装置、介质及电子设备
CN114333256A (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