System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,具体为一种基于消息中间件的分布式跑批方法及系统。
技术介绍
1、随着大数据技术的飞速发展,数据量呈现出爆炸式增长的趋势。传统的单节点计算方式在处理大规模数据集时,由于计算资源有限,往往无法满足高效、实时的数据处理需求。因此,分布式计算框架应运而生,成为处理大规模数据集的重要手段。
2、目前,市场上已经存在多种成熟的分布式计算框架,如hadoop、spark等,它们通过集群计算的方式,有效提升了数据处理的效率和可扩展性。然而,这些框架在实际应用中也存在一些不足之处。首先,hadoop等分布式计算框架通常需要较高的部署和运维成本,包括硬件资源的投入、集群的搭建与维护等,这对于一些小型项目或初创企业来说可能过于庞大和昂贵。其次,这些框架虽然功能强大,但往往侧重于批处理任务,对于需要实时处理或高频次更新的业务类跑批场景,可能并不完全适用。
3、此外,分布式计算框架在处理数据时,还面临着数据倾斜的问题。数据在分布式系统中分布不均,导致某些节点负载过重,而其他节点负载较轻的现象。这不仅会影响数据处理的速度和效率,还可能引发资源竞争和故障等问题。
技术实现思路
1、本专利技术的目的在于:提出一种基于消息中间件的分布式跑批方法及系统,该技术方案提供一种高效、可靠的数据处理系统,能够降低分布式跑批的部署门槛和运维成本。
2、为实现上述目的,第一方面,本公开实施例提供一种基于消息中间件的分布式跑批方法,包括:使用规则生成至少两个topic名称
3、基础方案的有益效果:本技术方案通过简化系统组件和依赖,更容易进行部署和使用分布式跑批系统;通过优化数据分片和处理机制,系统能够更高效地处理大规模数据,提高整体的数据处理能力。通过依赖现有中间件的特性,如kafka的partition机制和redis的键值存储,确保数据的均匀分布,避免数据倾斜,从而提高系统的整体性能和稳定性。本系统设计灵活,能够根据业务需求进行横向扩展,适应不同规模的数据处理需求。
4、具体地,通过创建kafkatopic并分页查询授信用户数据发送到kafka中间件,系统能够高效地将大量数据从数据源异步地转移到处理系统,避免了直接处理可能导致的系统阻塞或性能下降。kafka的高吞吐量和低延迟特性确保了数据能够快速、可靠地传输,支持大数据量的实时处理需求。
5、本技术方案配置有多个消费线程,每个线程负责一个或多个partition的数据处理,充分利用了计算资源,提高了数据处理能力。kafka的分区(partition)机制使得系统能够水平扩展,通过增加消费线程和kafka集群中的节点数量来应对更高的数据处理需求。
6、在消费前进行幂等性检查,确保消息不会因为重复处理而导致数据不一致或业务逻辑错误,确保了系统的稳定性和数据的准确性。
7、调用决策引擎接口,根据决策结果进行业务处理,实现了业务逻辑的灵活配置和快速响应。决策引擎可以基于复杂的业务规则、机器学习模型或ai算法,为每个用户数据提供个性化的处理策略。
8、启动监控线程定期检查任务执行情况,能够及时发现并处理任务执行中的异常或失败情况,保证系统的稳定性和可靠性。监控线程还负责清理不再需要的资源,如关闭无用的网络连接、释放内存等,避免了资源泄露和浪费。
9、通过任务监控和日志记录,方便跟踪系统的运行状态和性能指标,快速定位和解决潜在问题。监控和日志系统提高了系统的可观察性,使得系统的维护和优化变得更加容易。
10、作为一种可实施的优选方案,使用规则生成至少两个topic名称,并创建相应的kafkatopic,包括以下内容:
11、使用kafkaadminapi或命令行工具创建kafkatopic,并自定义partition个数和副本数量。
12、作为一种可实施的优选方案,分页查询授信用户数据并发送到kafka中间件,包括以下内容:
13、使用sql语句分页查询授信用户表,将查询到的用户数据发送到kafka中间件,并存储总数据量到redis。
14、作为一种可实施的优选方案,在消费前进行幂等性检查,调用决策引擎接口,根据决策结果进行业务处理,包括以下内容:
15、根据消费到的主体信息,组装必要的附属信息;调用决策引擎接口,传入组装好的数据,获取决策结果。
16、作为一种可实施的优选方案,在消费前进行幂等性检查,包括以下内容:
17、为每个消息分配一个唯一的标识符,在处理消息之前,检查该标识符是否已经被处理过;对于需要根据用户和业务逻辑进行处理的场景,使用用户id或业务id的组合作为检查依据。
18、作为一种可实施的优选方案,还包括任务暂停、恢复和重试机制,包括以下内容:
19、当接收到暂停命令时,所有的消费线程将当前的offset持久化到redis,并停止消费线程;当接收到恢复命令时,根据redis中保存offset重新启动消费线程,从上次停止的位置继续消费。
20、作为一种可实施的优选方案,还包括失败消息处理机制,包括以下内容:
21、对消费失败的消息进行多次尝试,并记录重试次数;如果重试均失败,则将该数据发送到死信队列topic中;启动另一个消费任务专门处理topic中的数据,进行进一步的处理或记录;如果最终处理均失败,则将数据记录到数据库中,供后续排查。
22、作为一种可实施的优选方案,还包括任务完成机制,包括以下内容:
23、任务监控线程间隔检查任务执行情况,对比redis中记录的总条数与数据库中成功和失败的数据条数之和;如果数据一致则任务完成并记录元数据;清理资源,删除topic,停止所有消费任务,并释放相关资源。
24、第二方面,本公开实施例还提供一种基于消息中间件的分布式跑批系统,运用了上述一种基于消息中间件的分布式跑批方法。
本文档来自技高网...【技术保护点】
1.一种基于消息中间件的分布式跑批方法,其特征在于:包括:使用规则生成至少两个Topic名称,并创建相应的KafkaTopic,同时启动监控线程监控任务执行状态;分页查询授信用户数据并发送到Kafka中间件;配置多个消费线程,每个线程负责一个或多个Partition数据;在消费前进行幂等性检查,调用决策引擎接口,根据决策结果进行业务处理;任务监控线程定期检查任务执行情况并清理资源。
2.根据权利要求1所述的一种基于消息中间件的分布式跑批方法,其特征在于:使用规则生成至少两个Topic名称,并创建相应的KafkaTopic,包括以下内容:
3.根据权利要求1所述的一种基于消息中间件的分布式跑批方法,其特征在于:分页查询授信用户数据并发送到Kafka中间件,包括以下内容:
4.根据权利要求1所述的一种基于消息中间件的分布式跑批方法,其特征在于:在消费前进行幂等性检查,调用决策引擎接口,根据决策结果进行业务处理,包括以下内容:
5.根据权利要求4所述的一种基于消息中间件的分布式跑批方法,其特征在于:在消费前进行幂等性检查,包括以下内容:<
...【技术特征摘要】
1.一种基于消息中间件的分布式跑批方法,其特征在于:包括:使用规则生成至少两个topic名称,并创建相应的kafkatopic,同时启动监控线程监控任务执行状态;分页查询授信用户数据并发送到kafka中间件;配置多个消费线程,每个线程负责一个或多个partition数据;在消费前进行幂等性检查,调用决策引擎接口,根据决策结果进行业务处理;任务监控线程定期检查任务执行情况并清理资源。
2.根据权利要求1所述的一种基于消息中间件的分布式跑批方法,其特征在于:使用规则生成至少两个topic名称,并创建相应的kafkatopic,包括以下内容:
3.根据权利要求1所述的一种基于消息中间件的分布式跑批方法,其特征在于:分页查询授信用户数据并发送到kafka中间件,包括以下内容:
4.根据权利要求1所述的一种基于消息中间件的分布式...
【专利技术属性】
技术研发人员:黎杰,吴弟忠,
申请(专利权)人:重庆富民银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。