一种基于Kafka实现全自动负载均衡消费消息的方法及系统技术方案

技术编号:37229279 阅读:24 留言:0更新日期:2023-04-20 23:12
本发明专利技术提供了一种基于Kafka实现全自动负载均衡消费消息的方法及系统,该方法包括步骤:S1、对kafka对应主题topic信息进行可视化管理;S2、应用服务器启动时,获取本地IP信息,标记该应用服务器在集群内在线运行;S3、每间隔第一特定时间,集群内应用服务器的其中一个在线运行的应用服务器负责检查所有kafka的topic信息表变动情况,并更新topic消费者表;S4、每间隔第二特定时间,所有集群内应用服务器基于topic信息表变动情况按照负载均衡算法进行负载均衡kafka消费者进程并同步更新topic消费者表。本申请集群应用服务器自动化读取并按照动态变化的topic信息进行启停服务器,应用系统不再需要通过新增代码去触发创建消费者进程,高效提高了开发的工作效率和系统的稳定性。的稳定性。的稳定性。

【技术实现步骤摘要】
一种基于Kafka实现全自动负载均衡消费消息的方法及系统


[0001]本专利技术涉及微服务网关
,具体涉及一种基于Kafka实现全自动负载均衡消费消息的方法及系统。

技术介绍

[0002]Kafka作为一种消息中间件,是解决分布式系统消息传递问题的重要手段。Kafka中主要有生产者(Producer)、消费者(Consumer)和代理(Broker),一般来说Kafka的集群有多个代理节点组成,当生产者产生新的消息的时候,都会被划分并归类到某个主题中,每个主题被划分为多个分区,这些分区被部署在多个Broker上,由生产者持续不断地向某个类型的主题(Topic)发送消息,由代理服务器暂时存储不同主题的消息,然后转发给消费者,最后由消费者处理生产者产生的消息。随着大数据时代的到来,越来越多的场景都在使用消息中间件,而Kafka最大的特点就是收发消息非常快。在大数据时代,它可以快速处理基于不同数据源或终端消费者行为而产生的海量流数据。
[0003]由于公司业务不断多元化、复杂化,且随着技术快速的发展和迭代,可视化简单配置化,即可实现可扩本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于Kafka实现全自动负载均衡消费消息的方法,其特征在于,包括步骤:S1、通过可视化配置模块对kafka对应主题topic信息进行可视化管理;S2、应用服务器启动时,获取本地IP信息,通过IP作为唯一标识,标记该应用服务器在集群内在线运行;S3、每间隔第一特定时间,集群内应用服务器的其中一个在线运行的应用服务器负责检查所有kafka的topic信息表变动情况,根据topic信息表变动情况将topic消费者表配置做更新调整;S4、每间隔第二特定时间,所有集群内应用服务器基于topic信息表变动情况,在应用服务器集群内按照负载均衡算法进行负载均衡kafka消费者进程并同步更新topic消费者表;第二特定时间小于第一特定时间。2.根据权利要求1所述的基于Kafka实现全自动负载均衡消费消息的方法,其特征在于,所述步骤S1包括以下步骤:S11、可视化查询所有topic数据并创建新的topic信息,topic信息包括topic名称、分区数、是否在线状态、启停状态、有效期截至日和创建时间等;S12、可视化修改topic分区数,来动态创建消费者提升消息的吞吐量;S13、可视化启停topic对应消费者,来实现实时上线/下线消费者进程,并可设置有效期来控制topic对应消费者生命周期;S14、可视化查询topic对应消费者进程在应用服务器集群的分布情况,对消费者进程进行全方位把控。3.根据权利要求1所述的基于Kafka实现全自动负载均衡消费消息的方法,其特征在于,所述步骤S2包括以下分步骤:S21、获取该应用服务器本地的IP地址;S22、查询MySQL数据库中的应用服务器表是否存在对应IP,如果不存在,则表示新应用机器,进行新增一条应用服务器记录;如果存在,则再次更新该应用服务器记录的心跳时间以及将状态标识为在线。4.根据权利要求1所述的基于Kafka实现全自动负载均衡消费消息的方法,其特征在于,所述步骤S3包括以下分步骤:S31、集群内服务器通过redis锁机制,抢到redis锁的应用服务器每间隔第一特定时间定时任务查询MySQL数据库中的topic信息表,并获取在用topic信息,在用topic信息包括topic名称、分区数量、有效期截至日期和启停状态;S32、轮询步骤S31中查询出的topic信息表,通过topic名称,查询topic消费者表对应记录信息,判断分区数量topic消费者表记录数是否一致,如果分区数量大于topic消费者表记录数,则新增topic消费者表记录;如果分区数量小于topic消费者表记录数,则删除最大分区编号对应的topic消费者记录;S33、移除下线的topic信息配置,将步骤S31中查询出的topic信息表与当前应用服务器已存在的topic信息对比,如果当前应用服务器已存在的topic信息数据,而查询出的topic信息表不存在该topic信息,则表示该topic信息下线,移除当前应用服务器的topic信息以及对应的消费者相关信息数据。5.根据权利要求1所述的基于Kafka实现全自动负载均衡消费消息的方法,其特征在
于,所述步骤S4包括以下分步骤:S41、每间隔第二特定时间,所有集群内应用服务器检查其他应用服务器心跳是否超时,查询所有在线状态应用服务器,如果应用服务器的心跳最新时间与当前时间的间隔大于第一阈值,则标记该应用服务器为下线并更新应用服务器表;第一阈值小于第二阈值;如果应用服务器的心跳最新时间与当前时间的间隔大于第二阈值;S42、每间隔第二特定时间,检查本应用服务器所有消费者是否存在标记下线情况,如果是,则将该消费者进行下线处理,同时记录下线日志;S43、每间隔第二特定时间,检查应用服务器kafka分区负载情况与实际负载数是否发生变化,如果存在不一样,则按照负载均衡算法将对应的消费者进行下线或上线处理。6.根据权利要求5所述的基于Kafka实现全自动负载均衡消费消息的方法,其特征在于,如果存在需要上线的消费者,会按照以下负载均衡算法逻辑在应用集群内进行负载均衡:当topic分区数等于应用服务器数量时,在集群每一个应用服务器上线一个消费者进程;当topic分区数大于集群数...

【专利技术属性】
技术研发人员:刘建雄郭强谢汶达桂进康梁松竹
申请(专利权)人:海纳致远数字科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1