[发明专利]一种消息同步方法有效
| 申请号: | 201611241828.1 | 申请日: | 2016-12-29 |
| 公开(公告)号: | CN106598762B | 公开(公告)日: | 2020-04-17 |
| 发明(设计)人: | 项剑峰;邬来军;彭亮 | 申请(专利权)人: | 上海理想信息产业(集团)有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 上海国智知识产权代理事务所(普通合伙) 31274 | 代理人: | 潘建玲 |
| 地址: | 200135 上海市浦*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 消息 同步 方法 | ||
1.一种消息同步方法,包括如下步骤:
步骤一,主节点接收客户端的消息写入请求,存储消息,并同步消息到从节点;
步骤二,从节点接收主节点发来的同步消息请求,并存储消息;
步骤三,利用控制节点缓存同步超时的消息和消息标识,在主节点故障后,将相应的超时消息更新到新的主节点中;步骤三进一步包括:
步骤S1,若所有从节点的消息都同步成功,则更新主从一致的检查点信息并返回客户端消息发送成功;
步骤S2,若消息同步超时,则提取消息标识和消息内容发送到该控制节点;
步骤S3,若消息标识和消息发送给该控制节点成功,则返回客户端消息发送成功,否则进入步骤S4;
步骤S4,返回客户端Pendding状态和消息标识信息;
步骤S5,该客户端通过该控制节点判断主节点是否故障;
步骤S6,若判断结果为主节点故障,则在该控制节点上获取主节点故障时刻的主从一致的检查点信息,若返回的消息标识中偏移量小于检查点中的消息偏移量,则说明消息已同步成功,准备发送下一条消息,否则说明消息同步失败且新的主节点上无此消息,尝试重新发送;
步骤S7,若判断结果为主节点没有故障,则在主broker上查询主从一致的检查点信息,若返回的消息标识中偏移量小于检查点中的消息偏移量,则说明消息已经同步成功,准备发送下一条消息,否则重复本次操作直到确定消息同步成功。
2.如权利要求1所述的一种消息同步方法,其特征在于,步骤一进一步包括:
主节点接收客户端的消息写入请求生成WAL日志文件,并持久化到磁盘;
主节点上通过WAL日志文件生成消息存储文件和消息索引文件;
主节点同步WAL日志到所有的从节点。
3.一种消息同步方法,包括如下步骤:
步骤一,主节点的消息处理线程接收客户端的消息写入请求,于存储单元写入消息的WAL日志,生成批量同步请求至批量同步请求队列,并阻塞触发等待;
步骤二,主节点接收从节点定时发来的心跳信息,解析出其中包含的已经同步到从节点的WAL的最大偏移量信息;
步骤三,于本地WAL日志中读取从节点心跳中该偏移量之后的数据复制到相应的从节点;
步骤四,主节点将多个从节点发来心跳中的偏移量信息的最小值作为主从一致的检查点信息,持久化到磁盘上,并定时同步到所有从节点;
步骤五,主节点于批量同步请求队列中取出批量同步请求;
步骤六,若当前批量同步请求中的偏移量小于主从一致的检查点,则于批量同步队列中删除该批量同步请求,并唤醒对应的消息处理线程向客户端返回消息写入成功;
还包括在消息同步过程中防止消息丢失的处理步骤:
步骤S31,利用控制节点定时获取主从一致的检查点信息,删除所有缓存的偏移量小于检查点信息的消息及其消息标识;
步骤S32,控制节点检测主节点是否故障,如果没有故障则返回步骤S31,否则进入步骤S33;
步骤S33,控制节点在所有从节点中选出新的主节点,但先不改变它的角色;
步骤S34,控制节点将消息标识中偏移量大于新的主节点的WAL日志最大偏移量的所有消息按照顺序写入新主节点的WAL日志;
步骤S35,修改新主节点的角色为主节点,并将切换时刻的新主节点的WAL日志的最大偏移量作为主从一致的检查点信息;
步骤S36,故障节点恢复后,根据检查点信息回滚老主节点上的多余的消息。
4.如权利要求3所述的一种消息同步方法,其特征在于,于步骤六之后,还包括如下步骤:
判断消息同步是否超时,如果超时则根据超时处理方式进行处理;否则,主节点继续等待从节点定时发来的心跳信息,返回步骤二,直到消息同步成功或者同步超时。
5.如权利要求3所述的一种消息同步方法,其特征在于,步骤一进一步包括:
主节点的消息处理线程接收客户端的消息写入请求,在缓存中写入消息的WAL日志,并生成批量持久化请求给异步数据持久化线程,并阻塞触发等待;
该异步数据持久化线程将消息的WAL日志批量持久化到磁盘上,并唤醒持久化成功的消息对应的消息处理线程;
主节点上的消息处理线程继续生成批量同步请求发给批量同步请求队列,并阻塞触发等待。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海理想信息产业(集团)有限公司,未经上海理想信息产业(集团)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611241828.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于中间件的事务连接建立方法及装置
- 下一篇:BI报表测试方法





