[发明专利]基于zookeeper的事务实现方法及系统在审
申请号: | 202110099352.7 | 申请日: | 2021-01-25 |
公开(公告)号: | CN113051042A | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 鹿国照 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F16/21 |
代理公司: | 北京汇信合知识产权代理有限公司 11335 | 代理人: | 王维新 |
地址: | 100086 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 zookeeper 事务 实现 方法 系统 | ||
本发明公开了一种基于zookeeper的事务实现方法及系统,方法包括:对zookeeper进行封装形成支持事务的zookeeperWrapper操作类,提供事务操作函数和节点操作封装函数;利用事务操作函数的beginTransaction函数启动事务;在事务处理过程中,利用节点操作封装函数按照缓存的zookeeper操作列表对目录节点进行操作;利用事务操作函数的commit函数将所有操作作为入参提交至zookeeper;在函数操作异常时,利用事务操作函数的回滚函数对所有操作进行回滚操作。通过本发明的技术方案,极大方便基于zookeeper多目录的操作,不会出现数据不一致,简化了业务操作过程。
技术领域
本发明涉及数据库事务技术领域,尤其涉及一种基于zookeeper的事务实现方法和一种基于zookeeper的事务实现系统。
背景技术
Zookeeper的存储结构是目录结构。为了保证业务数据的一致性,一些应用需要在一个原子操作中同时完成多个zookeeper目录的操作。
在Zookeeper的客户端API Curator包中,提供了一个打包函数,在一次调用中,可同时提交多个目录的修改,并且保证是原子性的。
但在现有技术中,zookeeper中不能应用于事务处理,而且,由于事务操作过程中对节点判断不准确,可能会出现数据不一致,还需要考虑数据反向操作的问题,业务操作繁琐。
发明内容
针对上述问题,本发明提供了一种基于zookeeper的事务实现方法及系统,通过对zookeeper进行封装设计形成类似数据库的事务操作函数集,支持事务的开始、事务中函数操作、事务提交、事务回滚操作,极大方便基于zookeeper多目录的操作,由于zookeeper的事务操作函数和节点操作封装函数的特性和功能,不会出现数据不一致,且业务不需要考虑数据反向操作,只需要调用回滚函数即可回滚所有历史操作,简化了业务操作过程,且同时支持事务和非事务类的操作,zookeeper的操作和业务其他函数可交叉进行,不影响事务操作。
为实现上述目的,本发明提供了一种基于zookeeper的事务实现方法,包括:对zookeeper进行封装形成支持事务的zookeeperWrapper操作类,所述操作类提供事务操作函数和节点操作封装函数;利用所述事务操作函数的beginTransaction函数启动事务;在事务处理过程中,利用所述节点操作封装函数按照缓存的zookeeper操作列表对目录节点进行操作;利用所述事务操作函数的commit函数将所述zookeeper操作列表中的所有操作作为入参提交至zookeeper;在事务处理过程中函数操作异常时,利用所述事务操作函数的回滚函数对所述zookeeper操作列表中的所有操作进行回滚操作。
在上述技术方案中,优选地,所述利用所述节点操作封装函数按照缓冲的zookeeper操作列表对目录节点进行操作具体包括:利用节点操作封装函数中的createNode函数、setData函数和/或deleteNode函数分别对目录节点进行添加、修改和/或删除操作。
在上述技术方案中,优选地,利用所述setData函数进行节点修改过程中:对所述zookeeper操作列表中最新加入的数据进行搜索,判断操作类型参数的记录值;若所述操作类型参数存在,判断记录值类型为DELETE或CREATE,若记录值类型为DELETE则调用CREATE执行创建节点操作,若记录值类型为CREATE则调用SET_DATA执行数据操作;若所述操作类型参数不存在,调用zookeeper的exists方法校验判断是否存在节点,若存在则调用SET_DATA执行数据操作,若不存在则调用CREATE执行创建节点操作。
在上述技术方案中,优选地,利用所述deleteNode函数进行节点删除过程中:调用addCuratorOp函数在所述zookeeper操作列表中增加操作类型为DELETE的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110099352.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于灌溉的污水杂物和油污分离装置及方法
- 下一篇:工程设计展示系统