[发明专利]一种消息订阅处理装置、系统及方法在审
申请号: | 201611241723.6 | 申请日: | 2016-12-29 |
公开(公告)号: | CN106657349A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 胡忠顺;徐玉清;曾康 | 申请(专利权)人: | 上海理想信息产业(集团)有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 上海国智知识产权代理事务所(普通合伙)31274 | 代理人: | 潘建玲 |
地址: | 200135 上海市浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 订阅 处理 装置 系统 方法 | ||
技术领域
本发明关于一种互联网消息交互技术领域,特别是涉及一种高可靠的消息订阅处理装置、系统及方法。
背景技术
企业和政府部门的IT系统环境中拥有多种操作系统、数据库、异构的网络环境和多种应用。在当前信息数据大爆炸的背景下,各个系统应用之间存在非常多的数据共享和数据交换需求。如何把不同的平台的异构系统结合成一个有机的协同工作整体,真正实现跨平台分布式应用成为当务之急。消息中间件正是为解决多方应用系统之间信息互通、信息孤岛、应用数据丢失、网络环境差导致的数据传输不稳定、应用资源隔离、应用系统可扩展性等一系列问题而生的中间件产品。
Kafka是当前比较出色的一款高吞吐量的分布式发布订阅消息系统。Kafka的消息订阅者通常将从某个Partition(分区)读取的最后一条消息的offset(偏移量)存于ZooKeeper(或消息存储节点)中,当消费完消息后,再次将最后一条消息的offset信息更新到ZooKeeper(或消息存储节点)中,这样可以保证不断消费到新的消息而不重复消费。
可是,在实际应用中,常常会有如下复杂的消息消费需求:当一个消息订阅者读取了一批消息后还没有完全消费完毕就异常终止了,如果从原来的offset之后重新读取消息进行消费就会重复消费那些已经消费的消息;而如果从上一次异常时读取到的最后一条消息的offset之后读取新的消息就会因为有部分消息没有被消费而发生消息丢失的问题。在某些场景下,我们读取的一批消息,不希望一下子完全消费完再读取下一批消息,而是希望允许某些消息还没有消费完毕的情况下,继续读取下一批消息。有时,消息订阅者读取到一批消息后,希望根据自己的处理情况在指定的时间之后重新消费某些消息。如上这些情况下,如果采用现有的技术方案,包含Kafka系统,均无法解决“订阅者异常造成的消费消息丢失”、“跳跃消费消息”和“定时重投消息”等问题。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种消息订阅处理装置、系统及方法,以解决现有技术存在的订阅者异常造成的消费消息丢失、跳跃消费消息和定时重投消息等问题。
为达上述及其它目的,本发明提出一种消息订阅处理装置,应用于消息服务器,包括:
消息存储模块,用于存储具体的消息,并向其他模块提供消息存取服务;
消息配置管理模块,用于管理被订阅主题和订阅消息的消息订阅端的配置信息;
消费状态管理模块,用于存储消费状态为待消费或消费中的消息,并记录当前消息服务器上所有被订阅主题里面所属队列中的所有消息被某个订阅端的消费情况,根据订阅端对消息的消费和签收情况对被订阅主题中的消息的消费情况进行管理;
消费进度管理模块,用于管理某个订阅者消费某个主题的进度信息;
订阅请求接收模块,用于接收消息订阅端发送的订阅消息的请求;
消费进度查询模块,根据该请求中的主题和队列信息于所述消费进度管理模块中查询消费进度;
待消费消息获取模块,于该消息状态管理模块中获取消费进度对应偏移量之后的待消费的消息;
消息发送模块,用于将获取的消息发送给消息订阅端。
反馈处理模块,用于接收消息订阅端的反馈信息,并根据消息订阅端的反馈信息于修改消息的消费状态及消费进度。
进一步地,该消息订阅处理装置还包括判断处理模块,该判断处理模块用于判断该待消费消息获取模块获取的待消费消息个数是否小于订阅请求中指定的消息个数,若判断结果为获取的待消费消息个数小于订阅请求中指定的消息个数,则从该消息存储模块中继续获取消息后,再进入该消息发送模块。
进一步地,从该消息存储模块中继续获取消息的步骤如下:
从该消息状态管理模块中获取对应主题对应队列中缓存消息的最大偏移量;
从该消息存储模块中取出该偏移量之后的若干条消息,将该些消息缓存到消息状态管理模块中,并标记该些消息的消费状态为消费中。
进一步地,该反馈处理模块进一步包括:
重试请求处理模块,若接收到的消息订阅端的反馈信息为重试请求,则于该消费状态管理模块中将对应消息的消息状态由消费中改为待消费,处理结束;
签收请求处理模块,若接收到的消息订阅端的反馈信息为签收请求,则于该消费状态管理模块中删除对应消息,并于该消费状态管理模块中没有小于该消息对应偏移量的待消费或者消费中的消息时,设置消费进度为该消息对应的偏移量。
进一步地,该重试请求处理模块进一步执行如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海理想信息产业(集团)有限公司,未经上海理想信息产业(集团)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611241723.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于二维码的文件协同处理方法及系统
- 下一篇:数据复制方法及装置