[发明专利]基于消息队列的高并发抢单功能实现方法在审
申请号: | 201710458376.0 | 申请日: | 2017-06-16 |
公开(公告)号: | CN107273225A | 公开(公告)日: | 2017-10-20 |
发明(设计)人: | 李波;胡嘉;许岩龙;刘东;唐军 | 申请(专利权)人: | 深圳易嘉恩科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06Q30/06 |
代理公司: | 成都虹桥专利事务所(普通合伙)51124 | 代理人: | 吴中伟 |
地址: | 518057 广东省深圳市南山区高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 消息 队列 并发 功能 实现 方法 | ||
技术领域
本发明涉及嵌入式软件中间件,具体涉及一种基于消息队列的高并发抢单功能实现方法。
背景技术
中间件是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不同的技术之间共享资源,管理计算资源和网络通讯。它在计算机系统中是一个关键软件,它能实现应用的互连和互操作性,能保证系统的安全、可靠、高效的运行。中间件位于用户应用和操作系统及网络软件之间,它为应用提供了公用的通信手段,并且独立于网络和操作系统。中间件为开发者提供了公用于所有环境的应用程序接口,当应用程序中嵌入其函数调用,它便可利用其运行的特定操作系统和网络环境的功能,为应用执行通信功能。
RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点:
(1)能够保证严格的消息顺序;
(2)提供丰富的消息拉取模式;
(3)高效的订阅者水平扩展能力;
(4)实时的消息订阅机制;
(5)亿级消息堆积能力;
MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。具备高性能、易部署、易使用等特点。
主要功能特性有:
(1)面向集合存储,易存储对象类型的数据;
(2)模式自由;
(3)支持动态查询;
(4)支持完全索引,包含内部对象;
(5)支持查询;
(6)支持复制和故障恢复;
(7)使用高效的二进制数据存储,包括大型对象(如视频等);
(8)自动处理碎片,以支持云计算层次的扩展性;
(9)支持RUBY,PYTHON,JAVA,C++,PHP等多种语言;
(10)文件存储格式为BSON(一种JSON的扩展);
(11)可通过网络访问;
如何有机结合消息队列中间件及高速内存数据库实现高并发抢单功能是嵌入式软件领域当前一项研究热点问题。
发明内容
本发明所要解决的技术问题是:提出一种基于消息队列的高并发抢单功能实现方法,基于消息队列的特性,结合高速内存数据库实现高可靠、高并发、易维护、分布式的抢单功能。
本发明解决其技术问题所采用的技术方案是:
作为一种实施例,本发明的基于消息队列的高并发抢单功能的实现方法,包括加入抢单方法,所述加入抢单方法包括:
为需要参加抢单的业务划分不同的类型,并设置对应的不同的优先级抢单队列;
将需要参加抢单的业务根据其类型加入对应的优先级抢单队列中;
如果加入成功,则保存入列记录,如果加入失败,则记录失败信息并保存到数据库。
作为进一步优化,所述抢单队列采用先进先出机制。
作为进一步优化,通过设置多个Topic来设置不同的优先级抢单队列。
作为进一步优化,所述抢单业务的类型包括:预处理抢单、要素纠偏抢单、全图纠偏抢单、规则检查抢单、模拟记账抢单、复核抢单。
作为进一步优化,所述保存入列记录的方式为:采用异步刷盘方式结合内存数据库,记录已加入队列的抢单业务,若发生程序中断、服务器宕机事件,在重启应用后自动从内存数据库中读取未消费的信息,自动加入队列。
作为进一步优化,通过入列失败信息表来记录抢单业务加入失败信息,对于第一次写入失败信息表的抢单业务,通过定时程序在定时时间到来时,再次将该抢单业务加入到队列中,若仍然加入失败,则通知人工干预。
作为另一种实施例,本发明的基于消息队列的高并发抢单功能的实现方法,包括撤销抢单方法,所述撤销抢单方法包括:
通过创建撤销记录表来记录需要撤销的业务单,在进行抢单处理时,从抢单队列中取出业务单,若该取出的业务单在撤销记录表中,则直接丢弃该业务单,从而达到撤销该业务单的目的,若撤销业务单失败,则记录撤销业务单失败信息,并保存到数据库。
作为进一步优化,对于第一次保存的撤销业务单失败信息,通过定时程序在定时时间到来时,再次对业务单进行撤销,若仍然撤销业务单失败,则通知人工干预。
作为第三种实施例,本发明的基于消息队列的高并发抢单功能的实现方法,包括抢单方法,所述抢单方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳易嘉恩科技有限公司,未经深圳易嘉恩科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710458376.0/2.html,转载请声明来源钻瓜专利网。