[发明专利]一种基于Kafka的同步消息服务系统及实现方法有效
申请号: | 202010227547.0 | 申请日: | 2020-03-26 |
公开(公告)号: | CN111555957B | 公开(公告)日: | 2022-08-19 |
发明(设计)人: | 陈剑;刘航 | 申请(专利权)人: | 孩子王儿童用品股份有限公司 |
主分类号: | H04L51/00 | 分类号: | H04L51/00;H04L7/00;H04L9/40;H04L67/55;H04L67/56;H04L67/10 |
代理公司: | 北京市兰台律师事务所 11354 | 代理人: | 张峰 |
地址: | 210000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kafka 同步 消息 服务 系统 实现 方法 | ||
1.一种基于Kafka的同步消息服务系统,其特征在于包括:
主题管理模块,用于申请创建主题,为主题分配具体的生产者代理服务节点和Cache节点,为每个主题分配唯一的密钥标识,提供主题和密钥的认证服务;
消费管理模块,用于申请创建消费组,对消费组进行约束,为消费组分配具体的消费者代理服务节点,并为每个消费组分配唯一的密钥标识,提供消费组和接入密钥的认证服务;
生产者代理模块,用于接收主题消息,接收到消息时,首先进行主题权限认证,认证通过后,为每个消息生成唯一的消息ID,并对消息key进行hash分组,将分组后消息写入本地队列和Cache队列;写入成功后,客户端响应成功,同时启动一个核心守护线程,批量将队列消息同步发送到Kafka,由核心守护线程与Kafka集群进行交互;如果接受到消息,守护线程就会不停的发送消息到Kafka,直到用户线程退出了,守护线程才会退出;以及,
消费者代理模块,负责消费主题消息并做权限认证,消费消息时,记录历史消息ID,并基于历史消息ID对后续的消息进行处理。
2.如权利要求1所述的基于Kafka的同步消息服务系统,其特征在于:所述生产者代理模块中,核心守护线程按照先进先出的顺序从本地队列中取出消息串行发送到Kafka。
3.如权利要求1所述的基于Kafka的同步消息服务系统,其特征在于:所述生产者代理模块中,如果接收到消息,核心守护线程会不停地发送消息到Kafka,直到用户线程退出,核心守护线程才会退出。
4.如权利要求1所述的基于Kafka的同步消息服务系统,其特征在于:所述系统还包括延时消息模块,延时消息模块内设置有调度主题,接收的延时消息首先转发调度主题,同时启动时间调度器对延时消息进行调度,触发调度时间时,将延时消息投递到目标主题。
5.一种基于Kafka的同步消息实现方法,其特征在于:包括将主题消息发送至Kafka集群和从Kafka集群消费主题消息;
将主题消息发送至Kafka集群包括如下步骤:
步骤A1,创建主题,并为其分配具体的生产者代理服务节点和Cache节点,以及唯一的密钥标识;
步骤A2,对发送的主题消息进行主题权限认证,认证通过后,为每个消息生成唯一的消息ID,并对消息key进行hash分组,将分组后消息写入本地队列和Cache队列;
步骤A3,启动一个核心守护线程,批量将队列消息同步发送到Kafka,由核心守护线程与Kafka集群进行交互;
从Kafka集群消费主题消息包括如下步骤:
步骤B1,每个消费组分配有具体的消费组代理服务节点,并具有唯一的密钥标识,某一消费组中的消费者向服务节点发送消费主题消息请求;
步骤B2,服务节点收到请求后,启动一个守护线程从Kafka拉取消息,放入到本地队列Brokers,服务节点从本地队列获取消费返回给消费者。
6.如权利要求5所述的基于Kafka的同步消息实现方法,其特征在于:所述步骤A2中,将分组后消息写入本地队列和Cache队列时,验证是否写入成功,如果写入成功,则转步骤A3;如果写入失败,报错给客户端,此时客户端必须通过重试的方式,对原有的消息进行重新推送。
7.如权利要求5所述的基于Kafka的同步消息实现方法,其特征在于:从Kafka集群消费主题消息时,对消费的消息进行分组并记录历史消息ID,并对消息ID进行过滤处理。
8.如权利要求5所述的基于Kafka的同步消息实现方法,其特征在于:所述步骤A3中,核心守护线程按照先进先出的顺序从本地队列中取出消息串行发送到Kafka。
9.如权利要求5所述的基于Kafka的同步消息实现方法,其特征在于:所述步骤B1中,消费者先向Nginx代理节点发送请求,Nginx代理节点进行权限认证,认证通过后,转发到相应的服务节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于孩子王儿童用品股份有限公司,未经孩子王儿童用品股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010227547.0/1.html,转载请声明来源钻瓜专利网。