CN116149814A - 一种基于kafka的数据持久化任务分布式调度方法及系统 - Google Patents
一种基于kafka的数据持久化任务分布式调度方法及系统 Download PDFInfo
- Publication number
- CN116149814A CN116149814A CN202310002375.0A CN202310002375A CN116149814A CN 116149814 A CN116149814 A CN 116149814A CN 202310002375 A CN202310002375 A CN 202310002375A CN 116149814 A CN116149814 A CN 116149814A
- Authority
- CN
- China
- Prior art keywords
- task
- persistent
- persistence
- kafka
- executor
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于KAFKA的数据持久化任务分布式调度方法及系统,该方法通过KAFKA向任务管理模块新增持久化任务,持久化任务执行器向NACOS注册服务信息,任务管理模块通过监听NACOS获取持久化任务执行器的上下线信息,并根据持久化任务执行器上下线情况动态分配任务,持久化任务执行器执行任务并将待持久化数据写入持久化存储组件中。本发明具有横向易于扩展、资源利用合理的特性,解决了当需要持久化的数据种类变多的时候,单体应用无法满足性能要求的问题,具有较高的实用价值。本发明采用任务调度集中管理的模式,持久化任务执行器采用分布式部署的方式,各个持久化任务执行器之间互不影响。本发明能够有效利用分布式资源,提高了系统的扩展性和健壮性。
Description
技术领域
本发明属于大数据应用技术领域,具体涉及一种基于KAFKA的数据持久化任务分布式调度方法及系统。
背景技术
随着数据接入种类越来越多,通过多线程的单体数据持久化应用使用的内存及线程越来越多,对服务器的性能等要求越来要高,服务器无法支撑单体应用的运行要求,且单体数据持久化应用无法满足分布式的要求。
Nacos是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施,致力于微服务的发现、管理和信息配置,能帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理,从而更敏捷、更容易的构建、交付和管理微服务平台。Nacos支持几乎所有主流类型(诸如:KubernetesService、gRPC&DubboRPCService、SpringCloudRESTfulService)的服务的发现、配置和管理。Nacos是开源的用于服务注册发现的组件。
Kafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue),主要应用于大数据实时处理领域。
持久化就是将有用的数据以某种技术保存起来,将来可以再次取出来应用,包括和数据库相关的各种操作。持久化是一种数据库技术,将内存数据以文件的形式保存在永久介质中(磁盘等)。
Topic是消息发布(Pub)者和订阅(Sub)者之间的传输中介。设备可通过Topic实现消息的发送和接收,从而实现服务端与设备端的通信。
发明内容
本发明的目的在于克服现有技术之缺陷,本发明提供了一种基于KAFKA的数据持久化任务分布式调度方法及系统,将单体应用改进成分布式持久化任务系统,以更好地利用资源,提高系统的扩展性和健壮性。
为了到达预期效果,本发明采用了以下技术方案:
本发明公开了一种基于KAFKA的数据持久化任务分布式调度方法,包括:通过KAFKA向任务管理模块新增持久化任务,持久化任务执行器向NACOS注册服务信息,任务管理模块通过监听NACOS获取持久化任务执行器的上下线信息,并根据持久化任务执行器上下线情况动态分配任务,持久化任务执行器执行任务并将待持久化数据写入持久化存储组件中。
进一步地,通过KAFKA向任务管理模块新增持久化任务具体包括:通过持久化任务管理界面配置KAFKA地址,创建包含需要监听的KAFKA的TOPIC和对应字段的任务,将任务信息下发给任务管理模块。
进一步地,任务管理模块根据任务的TOPIC分区情况及各个持久化任务执行器负载情况动态分配任务,其中,优先将任务分配给负载较低的持久化任务执行器。
进一步地,任务管理模块根据各个持久化任务执行器的负载情况进行负载均衡处理,具体包括:向负载较高的持久化任务执行器发送取消执行部分任务的消息指令,并向负载较低的执行器发送新增执行任务的消息指令以执行被取消的任务。
进一步地,根据监听的KAFKA的TOPIC的分区数生成对应数量的消费者,不同的消费者分布到不同的持久化任务执行器中进行任务执行。
进一步地,持久化任务执行器采用分布式部署以实现任务调度集中管理,并支持动态扩展。
进一步地,当整个持久化任务执行器集群负载过高时,会自动启动一个全新的持久化任务执行器分担任务。
进一步地,当持久化任务执行器因不可控的原因下线后,该持久化任务执行器上尚未执行完毕的任务需要分配到其他持久化任务执行器继续执行。
本发明还公开了一种基于KAFKA的数据持久化任务分布式调度系统,包括:
KAFKA组件,用于向任务管理模块新增持久化任务;
NACOS组件,用于给持久化任务执行器注册服务信息;
任务管理模块,通过监听NACOS获取持久化任务执行器上下线信息,并根据持久化任务执行器上下线情况动态分配任务;
持久化任务执行器,用于执行任务并将任务数据写入持久化存储组件中;
存储组件,用于存储待持久化数据。
进一步地,持久化任务执行器采用分布式部署以实现任务调度集中管理,并支持动态扩展。
与现有技术相比,本发明的有益效果是:本发明提供了一种基于KAFKA的数据持久化任务分布式调度方法及系统,该方法通过KAFKA向任务管理模块新增持久化任务,持久化任务执行器向NACOS注册服务信息,任务管理模块通过监听NACOS获取持久化任务执行器的上下线信息,并根据持久化任务执行器上下线情况动态分配任务,持久化任务执行器执行任务并将待持久化数据写入持久化存储组件中。本发明具有横向易于扩展、资源利用合理的特性,解决了当需要持久化的数据种类变多的时候,单体应用无法满足性能要求的问题,具有较高的实用价值。本发明采用任务调度集中管理的模式,持久化任务执行器采用分布式部署的方式,各个持久化任务执行器之间互不影响。本发明能够有效利用分布式资源,提高了系统的扩展性和健壮性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明提供的一种基于KAFKA的数据持久化任务分布式调度方法的流程图。
图2是本发明提供的一种基于KAFKA的数据持久化任务分布式调度系统的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
参见图1,本发明公开了一种基于KAFKA的数据持久化任务分布式调度方法,包括:首先,通过KAFKA向任务管理模块新增持久化任务,优选的实施例中,具体包括:通过持久化任务管理界面配置KAFKA地址,创建包含需要监听的KAFKA的TOPIC和对应字段的任务,将任务信息下发给任务管理模块。
然后,持久化任务执行器向NACOS组件服务注册发现中心注册服务信息,任务管理模块通过监听NACOS获取持久化任务执行器的上下线信息,并根据持久化任务执行器上下线情况动态分配任务;优选的实施例中,任务管理模块根据任务的TOPIC分区情况及各个持久化任务执行器负载情况动态分配任务,具体包括:优先将任务分配给负载较低的持久化任务执行器,根据监听的KAFKA的TOPIC的分区数生成对应数量的消费者,不同的消费者分布到不同的持久化任务执行器中进行任务执行,以防止某一个持久化任务执行器停止工作,导致整个消费任务终止。一个消费者对应一个任务,一个任务也对应着一个消费者。
其次,持久化任务执行器执行任务并将待持久化数据写入ElasticSearch、Hive、Impala、ClickHouse等大数据持久化存储组件中,优选的实施例中,持久化任务执行器采用分布式部署以实现任务调度集中管理,并支持动态扩展。优选的实施例中,当整个持久化任务执行器集群负载过高时,会自动启动一个全新的持久化任务执行器分担任务,以实现动态扩容。优选的实施例中,当持久化任务执行器因不可控的原因下线后,例如更换服务器、系统扩容等,该持久化任务执行器上尚未执行完毕的任务需要分配到其他持久化任务执行器继续执行,以达到容错的目的。优选的实施例中,当有新的持久化任务执行器上线时,任务管理模块重新计算各个持久化任务执行器执行任务的情况,任务管理模块根据各个持久化任务执行器的负载情况进行负载均衡处理,优选的实施例中,具体包括:向负载较高的持久化任务执行器发送取消执行部分任务的消息指令,并向负载较低的执行器发送新增执行任务的消息指令以执行被取消的任务。
参见图2,本发明还公开了一种基于KAFKA的数据持久化任务分布式调度系统,包括:
KAFKA组件,用于向任务管理模块新增持久化任务;优选的实施例中,具体包括:通过持久化任务管理界面配置KAFKA地址,创建包含需要监听的KAFKA的TOPIC和对应字段的任务,将任务信息下发给任务管理模块。
NACOS组件,用于给持久化任务执行器注册服务信息;优选的实施例中,具体包括:持久化任务执行器向NACOS组件服务注册发现中心注册服务信息。
任务管理模块,通过监听NACOS获取持久化任务执行器上下线信息,并根据持久化任务执行器上下线情况动态分配任务;优选的实施例中,具体包括:任务管理模块根据任务的TOPIC分区情况及各个持久化任务执行器负载情况动态分配任务,优选的实施例中,优先将任务分配给负载较低的持久化任务执行器,根据监听的KAFKA的TOPIC的分区数生成对应数量的消费者,不同的消费者分布到不同的持久化任务执行器中进行任务执行,以防止某一个持久化任务执行器停止工作,导致整个消费任务终止。优选的实施例中,一个消费者对应一个任务,一个任务也对应着一个消费者。
持久化任务执行器,用于执行任务并将待持久化数据写入持久化存储组件中;优选的实施例中,持久化任务执行器采用分布式部署以实现任务调度集中管理,并支持动态扩展。优选的实施例中,当整个持久化任务执行器集群负载过高时,会自动启动一个全新的持久化任务执行器分担任务,以实现动态扩容。优选的实施例中,当持久化任务执行器因不可控的原因下线后,例如更换服务器、系统扩容等,该持久化任务执行器上尚未执行完毕的任务需要分配到其他持久化任务执行器继续执行,以达到容错的目的。优选的实施例中,当有新的持久化任务执行器上线时,任务管理模块重新计算各个持久化任务执行器执行任务的情况,任务管理模块根据各个持久化任务执行器的负载情况进行负载均衡处理,优选的实施例中,具体包括:向负载较高的持久化任务执行器发送取消执行部分任务的消息指令,并向负载较低的执行器发送新增执行任务的消息指令以执行被取消的任务。
存储组件,用于存储待持久化数据,优选的实施例中,所述存储组件为ElasticSearch、Hive、Impala、ClickHouse等大数据持久化存储组件。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于KAFKA的数据持久化任务分布式调度方法,其特征在于,包括:通过KAFKA向任务管理模块新增持久化任务,持久化任务执行器向NACOS注册服务信息,任务管理模块通过监听NACOS获取持久化任务执行器的上下线信息,并根据持久化任务执行器上下线情况动态分配任务,持久化任务执行器执行任务并将待持久化数据写入持久化存储组件中。
2.如权利要求1所述的一种基于KAFKA的数据持久化任务分布式调度方法,其特征在于,通过KAFKA向任务管理模块新增持久化任务具体包括:通过持久化任务管理界面配置KAFKA地址,创建包含需要监听的KAFKA的TOPIC和对应字段的任务,将任务信息下发给任务管理模块。
3.如权利要求2所述的一种基于KAFKA的数据持久化任务分布式调度方法,其特征在于,任务管理模块根据任务的TOPIC分区情况及各个持久化任务执行器负载情况动态分配任务,其中,优先将任务分配给负载较低的持久化任务执行器。
4.如权利要求3所述的一种基于KAFKA的数据持久化任务分布式调度方法,其特征在于,任务管理模块根据各个持久化任务执行器的负载情况进行负载均衡处理,具体包括:向负载较高的持久化任务执行器发送取消执行部分任务的消息指令,并向负载较低的执行器发送新增执行任务的消息指令以执行被取消的任务。
5.如权利要求2所述的一种基于KAFKA的数据持久化任务分布式调度方法,其特征在于,根据监听的KAFKA的TOPIC的分区数生成对应数量的消费者,不同的消费者分布到不同的持久化任务执行器中进行任务执行。
6.如权利要求1所述的一种基于KAFKA的数据持久化任务分布式调度方法,其特征在于,持久化任务执行器采用分布式部署以实现任务调度集中管理,并支持动态扩展。
7.如权利要求6所述的一种基于KAFKA的数据持久化任务分布式调度方法,其特征在于,当整个持久化任务执行器集群负载过高时,会自动启动一个全新的持久化任务执行器分担任务。
8.如权利要求1所述的一种基于KAFKA的数据持久化任务分布式调度方法,其特征在于,当持久化任务执行器因不可控的原因下线后,该持久化任务执行器上尚未执行完毕的任务需要分配到其他持久化任务执行器继续执行。
9.一种基于KAFKA的数据持久化任务分布式调度系统,其特征在于,包括:
KAFKA组件,用于向任务管理模块新增持久化任务;
NACOS组件,用于给持久化任务执行器注册服务信息;
任务管理模块,通过监听NACOS获取持久化任务执行器上下线信息,并根据持久化任务执行器上下线情况动态分配任务;
持久化任务执行器,用于执行任务并将任务数据写入持久化存储组件中;
存储组件,用于存储待持久化数据。
10.如权利要求9所述的一种基于KAFKA的数据持久化任务分布式调度系统,其特征在于,持久化任务执行器采用分布式部署以实现任务调度集中管理,并支持动态扩展。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310002375.0A CN116149814A (zh) | 2023-01-03 | 2023-01-03 | 一种基于kafka的数据持久化任务分布式调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310002375.0A CN116149814A (zh) | 2023-01-03 | 2023-01-03 | 一种基于kafka的数据持久化任务分布式调度方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116149814A true CN116149814A (zh) | 2023-05-23 |
Family
ID=86350130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310002375.0A Pending CN116149814A (zh) | 2023-01-03 | 2023-01-03 | 一种基于kafka的数据持久化任务分布式调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149814A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116339958A (zh) * | 2023-05-30 | 2023-06-27 | 支付宝(杭州)信息技术有限公司 | 一种任务执行方法、装置以及设备 |
-
2023
- 2023-01-03 CN CN202310002375.0A patent/CN116149814A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116339958A (zh) * | 2023-05-30 | 2023-06-27 | 支付宝(杭州)信息技术有限公司 | 一种任务执行方法、装置以及设备 |
CN116339958B (zh) * | 2023-05-30 | 2023-09-08 | 支付宝(杭州)信息技术有限公司 | 一种任务执行方法、装置以及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110290189B (zh) | 一种容器集群管理方法、装置及系统 | |
CN107451147B (zh) | 一种kafka集群动态切换的方法和装置 | |
US9749445B2 (en) | System and method for updating service information for across-domain messaging in a transactional middleware machine environment | |
CN106503058B (zh) | 一种数据加载方法、终端和计算集群 | |
CN110308983A (zh) | 资源负载均衡方法及系统、服务节点和客户端 | |
CN104503845A (zh) | 一种任务分发方法和系统 | |
US20130031221A1 (en) | Distributed data storage system and method | |
US20090276519A1 (en) | Method and System for Achieving Better Efficiency in a Client Grid Using Node Resource Usage and Tracking | |
US8832215B2 (en) | Load-balancing in replication engine of directory server | |
US20230266999A1 (en) | Resource scheduling method, resource scheduling system, and device | |
CN116149814A (zh) | 一种基于kafka的数据持久化任务分布式调度方法及系统 | |
CN111078516A (zh) | 分布式性能测试方法、装置、电子设备 | |
CN113420076A (zh) | 一种政务服务平台的服务调度方法及调度模型系统 | |
CN111221653B (zh) | 一种服务处理方法、装置及计算机可读存储介质 | |
CN110519354A (zh) | 一种分布式对象存储系统及其业务处理方法和存储介质 | |
US20070174836A1 (en) | System for controlling computer and method therefor | |
CN111400028B (zh) | 一种列车管理的负载均衡处理方法 | |
US10990385B1 (en) | Streaming configuration management | |
CN108681578B (zh) | 一种业务数据存储方法、装置、服务器及存储介质 | |
CN115562933A (zh) | 作业监控数据的处理方法及装置、存储介质、电子设备 | |
CN115421920A (zh) | 金融产品的任务管理方法及装置、电子设备、存储介质 | |
CN106997304B (zh) | 输入输出事件的处理方法及设备 | |
CN114500546A (zh) | 基于负载均衡集群的通信消息发送方法、装置及设备 | |
CN110399206B (zh) | 一种基于云计算环境下idc虚拟化调度节能系统 | |
CN111629111B (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 |