[发明专利]一种基于Java的大规模并发解决方法及系统在审
申请号: | 202010700330.7 | 申请日: | 2020-07-20 |
公开(公告)号: | CN111881149A | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 王骏;樊迪;孙攀;刘奋 | 申请(专利权)人: | 武汉中海庭数据技术有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/25 |
代理公司: | 武汉蓝宝石专利代理事务所(特殊普通合伙) 42242 | 代理人: | 严超 |
地址: | 430000 湖北省武汉市*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 java 大规模 并发 解决方法 系统 | ||
本发明提供一种基于Java的大规模并发解决方法及系统,方法包括:读取数据的版本号状态字,并保存为本地版本号状态字;当检测到数据修改时,检测当前版本号状态字;将所述当前版本号状态字与所述本地版本号状态字进行比较,若不相同,则取消相关业务处理。本发明实施例提供的一种基于Java的大规模并发解决方法及系统,采用版本号只能递增而不能递减机制,规避使用数据库的相关锁,也不阻塞线程并发。
技术领域
本发明涉及互联网高并发技术领域,更具体地,涉及一种基于Java的大规模并发解决方法及系统。
背景技术
在2019中国互联网发展报告中,网民的规模达到8.29亿,互联网普及率达到59.6%,在中国互联网飞速发展的大环境下,网民对Web系统也提出了新的需求。秒杀,抢购的场景不断重复的出现在我们使用的系统中,比如在线的购物,在线抢购火车票等等。对高并发,必须进行不断的优化,否则不但会轻而易举的陷入到异常状态,甚至会引起一系列的“雪崩”。
传统开发会借用数据库中的悲观锁来解决超发的问题。如果发送一个请求时会启动一个数据库事务,读取到数据后会直接将数据锁定,不允许其他请求线程进行读写操作,直至当前事务完成了之后才释放这条数据的锁。这样就会大量的请求线程被挂起和等待,系统性能会收到严重影响,用户的体验也会下降。
因此,现在亟需一种新的基于Java的大规模并发解决方法来解决上述问题。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的一种基于Java的大规模并发解决方法及系统,根据本发明提供的第一方面,本发明提供一种基于Java的大规模并发解决方法,包括:
读取数据的版本号状态字,并保存为本地版本号状态字;
当检测到数据修改时,检测当前版本号状态字;
将所述当前版本号状态字与所述本地版本号状态字进行比较,若不相同,则取消相关业务处理。
进一步,所述方法还包括:
当取消相关业务处理后,进行重新更新。
进一步,所述当取消相关业务处理后,进行重新更新,包括:
根据预设的重新更新限制次数,进行重新更新。
进一步,所述根据预设的重新更新限制次数,进行重新更新,包括:
当更新失败的概率超过预设阈值时,调整所述预设的重新更新限制次数。
进一步,所述当检测到数据修改时,检测当前版本号状态字,包括:
读取数据的版本号状态字;
计算数据总价,并检测当扣减库存时,记录版本号状态字变更。
进一步,所述方法还包括:
多个线程进行任何数据库写操作时,所述版本号状态字递增。
根据本发明提供的第二方面,本发明提供一种基于Java的大规模并发解决系统,包括:
读取模块,用于读取数据的版本号状态字,并保存为本地版本号状态字;
检测模块,用于当检测到数据修改时,检测当前版本号状态字;
判决模块,用于将所述当前版本号状态字与所述本地版本号状态字进行比较,若不相同,则取消相关业务处理。
根据本发明提供的第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所提供的一种基于Java的大规模并发解决方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉中海庭数据技术有限公司,未经武汉中海庭数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010700330.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种车载导航仪的液冷循环系统
- 下一篇:一种环保型橡塑跑道生产工艺