[发明专利]一种流计算应用中实现持久化的方法及装置在审
申请号: | 201310362269.X | 申请日: | 2013-08-19 |
公开(公告)号: | CN104424186A | 公开(公告)日: | 2015-03-18 |
发明(设计)人: | 刘健男 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 解婷婷;栗若木 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 计算 应用 实现 持久 方法 装置 | ||
1.一种流计算应用中实现持久化的方法,其特征在于,包括:
当前批次消息消费成功,根据用于保存当前正在消费的批次消息在消息队列中的起始位置的第一起始偏移量和预先设置的持久化间隔,判断是否需要进行持久化操作;
在需要进行持久化操作时,按照用于保存最近一次持久化操作的下一批次消息在消息队列中的起始位置的第二起始偏移量指示的消息位置进行持久化处理;
持久化操作成功后,分别更新第一起始偏移量和第二起始偏移量为下一批次消息的起始偏移量。
2.根据权利要求1所述的方法,其特征在于,所述流计算应用正常启动,或者故障恢复后启动时,该方法还包括:
根据所述第二起始偏移量请求消息,同时将所述第一起始偏移量的值更改为第二起始偏移量的值。
3.根据权利要求2所述的方法,其特征在于,所述第二起始偏移量的值为空或者未保存有第二起始偏移量时,所述当前批次消息位于消息中间件的消息队列的起始位置;
同时还包括:设置所述第一起始偏移量的值为空。
4.根据权利要求1所述的方法,其特征在于,所述持久化操作失败,该方法还包括:按照所述第一起始偏移量指示,重新对所述当前批次消息中的消息进行消费。
5.根据权利要求2或4所述的方法,其特征在于,所述判断是否需要进行持久化操作包括:将所述当前批次的ID除以持久化间隔,当其余数为零时,判断出需要进行持久化操作;
其中,批次ID为从1开始以递增步长为1的整数。
6.根据权利要求5所述的方法,其特征在于,所述流计算应用正常启动,或者故障恢复后启动时,所述批次ID接着流计算应用停止前的最后一个成功持久化过的批次ID继续递增步长为1递增。
7.一种流计算应用中实现持久化的装置,其特征在于,至少存储模块、判断模块,以及处理模块,其中,
存储模块,其中保存有持久化间隔、用于保存当前正在消费的批次消息在消息队列中的起始位置的第一起始偏移量,以及用于保存最近一次持久化操作的下一批次消息在消息队列中的起始位置的第二起始偏移量;
判断模块,当前批次消息消费成功,根据存储模块中保存的第一起始偏移量和预先设置的持久化间隔,判断出需要进行持久化操作时向处理模块发送持久化通知;
处理模块,接收到来自判断模块的持久化通知,按照存储模块中保存的第二起始偏移量指示的消息位置进行持久化操作;并在持久化操作成功后,将第一起始偏移量和第二起始偏移量均更新为下一批次消息的起始偏移量。
8.根据权利要求7所述的装置,其特征在于,所述处理模块进一步用于:
在流计算应用正常启动,或者故障恢复后启动时,根据所述存储模块中保存的第二起始偏移量从消息中间件中请求消息,同时将所述存储模块中保存的第一起始偏移量的值更改为第二起始偏移量的值。
9.根据权利要求7所述的装置,其特征在于,所述处理模块还进一步用于,在所述持久化操作失败时,按照所述存储模块中保存的第一起始偏移量指示,重新对从消息中间件中当前批次消息中的消息进行消费。
10.根据权利要求7~9任一项所述的装置,其特征在于,所述判断模块具体用于:将所述第一起始偏移量所指示的当前批次的ID除以所述持久化间隔,当其余数为零时,判断出需要进行持久化操作,向所述处理模块发送持久化通知;其中,批次ID为从1开始以递增步长为1的整数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310362269.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:塑胶检查井
- 下一篇:一种液压混合动力挖掘机回转系统