一种消息队列收发系统及方法技术方案

技术编号:21913771 阅读:34 留言:0更新日期:2019-08-21 12:22
本发明专利技术的技术方案包括一种消息队列收发系统及方法,用于实现:包括程序执行模块,用于开启本地事务以及事务提交、执行业务操作、消息收发和管理;服务器,用于接收任务模块和程序执行模块发送的消息并回应消息;消息数据库,用于接收程序执行模块和任务模块发送的消息并进行处理事务;任务模块,用于向服务器发送消息并对消息数据库中的消息执行扫描和删除操作。本发明专利技术的有益效果为:提供一套完善的消息队列管理平台,保证交易顺畅和为用户提供稳定服务,提供一致性保证,确保业务操作和发消息是一致的,同时保证消息的送达和及时反馈,减少消息冗余。

A Message Queue Receiving and Sending System and Method

【技术实现步骤摘要】
一种消息队列收发系统及方法
本专利技术涉及一种消息队列收发系统及方法,属于计算机

技术介绍
随着公司业务的快速增长,传统的单体应用架构很难满足业务快速增长的要求,需要进行服务化改造,按照业务等要素将原来庞大的单体应用拆分成不同的服务。那么在进行服务化改造之前首先就是面临是服务化基础设施的技术选型,其中最重要的就是服务之间的通信中间件。一般来讲服务之间的通信可以分为同步方式和异步方式。同步的方式的代表就是RPC,异步方式的代表就是消息队列(MessageQueue),MQ在当时也有很多开源的选择:RabbitMQ,ActiveMQ,Kafka,MetaQ(RocketMQ的前身)。首先因为技术栈我们排除了erlang开发的RabbitMQ,而Kafka以及Java版Kafka的MetaQ在当时还并不成熟和稳定。而ActiveMQ已经有很多应用在使用了,但是使用过程中并不一帆风顺:宕机,消息丢失,消息堵塞等问题屡见不鲜,而且ActiveMQ发展多年,代码也非常复杂,想要完全把控也不容易。在电商交易中数据的一致性是非常关键的要素。那么必须提供一致性保证。供一致性保证又分为两个方面:发消息时我们如何确保业务操作和发消息是一致的,也就是不能出现业务操作成功消息未发出或者消息发出了但是业务并没有成功的情况。因此,建立一套完善的消息队列管理平台,保证交易顺畅和为用户提供稳定服务,在面对各大企业业务快速增长的情况下,迫在眉睫。
技术实现思路
为解决上述问题,本专利技术的目的在于提供一种消息队列收发系统及方法,包括程序执行模块,用于开启本地事务以及事务提交、执行业务操作、消息收发和管理;服务器,用于接收任务模块和程序执行模块发送的消息并回应消息;消息数据库,用于接收程序执行模块和任务模块发送的消息并进行处理事务;任务模块,用于向服务器发送消息并对消息数据库中的消息执行扫描和删除操作。本专利技术解决其问题所采用的技术方案一方面是:一种消息队列收发系统,其特征在于,包括:程序执行模块,用于开启本地事务以及事务提交、执行业务操作、消息收发和管理;服务器,用于接收任务模块和程序执行模块发送的消息并回应消息;消息数据库,用于接收程序执行模块和任务模块发送的消息并进行处理事务;任务模块,用于向服务器发送消息并对消息数据库中的消息执行扫描和删除操作。进一步的,所述消息数据库还包括共享接口模块,用于共享同一端口并在同一事务中运行对应代码。进一步的,所述服务器还包括存储模型模块,用于将服务器接收到的消息分发给处理单元,处理单元将处理后的消息分发给对应的用户接口。进一步的,所述存储模型模块还包括:映射单元,用于动态映射处理单元与用户接口的逻辑关系;耦合单元,用于管理和建立处理单元与用户接口的耦合关系。进一步的,所述存储模型模块还包括:延时单元,用于控制消息在一定时间内延时发送,其中一定时间可自定义。进一步的,所述延时单元还包括:第一存储子单元,用于在磁盘中以一定时间为刻度,在每个刻度生成对应的日志文件,其中一定时间可自定义;第二存储子单元,用于在内存中实时监测消息,当消息的投递时间即将到来的时候,会将这个刻度的消息索引,从磁盘文件加载到内存中,其中消息索引包括但不限于偏移量和投递时间。本专利技术解决其问题所采用的技术方案另一方面是:一种消息队列收发方法,其特征在于,包括以下步骤:S100、程序执行模块开启本地事务以及事务提交、执行业务操作并将事务消息发送给消息数据库和服务器;S200、服务器接收任务模块发送的事务消息,若服务器接收事物信息成功并向程序执行模块回传反馈后,程序执行模块向消息数据库发送删除事务消息的命令,否则执行步骤S300;S300、任务模块向消息数据库中的消息执行扫描并向服务器发送对应事务消息,若程序执行模块成功接收到服务器回传反馈后,任务模块删除消息数据库中存储的对应事务消息,否则反复向消息数据库中的消息执行扫描并向服务器发送对应事务消息。进一步的,所述S200还包括:S210、服务器接收到的消息分发给处理单元,处理单元将处理后的消息分发给对应的用户接口。进一步的,所述S200还包括:S210、处理单元与用户接口建立耦合关系和逻辑关系;S220、处理单元将处理后的消息映射给建立耦合关系的对应用户接口。进一步的,所述S200还包括处理单元将处理后的消息延时一定时间后发送给对应用户接口,其中一定时间可自定义。本专利技术的有益效果是:提供一套完善的消息队列管理平台,保证交易顺畅和为用户提供稳定服务,提供一致性保证,确保业务操作和发消息是一致的,同时保证消息的送达和及时反馈,减少消息冗余。附图说明图1是根据本专利技术优选实施例的系统结构示意图;图2是根据本专利技术优选实施例的方法流程示意图;图3是根据本专利技术优选实施例的消息数据库示意图;图4是根据本专利技术优选实施例的存储模型模块中的映射单元示意图;图5是根据本专利技术优选实施例的存储模型模块中的延时单元示意图。具体实施方式以下将结合实施例和附图对本专利技术的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本专利技术的目的、方案和效果。需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本
的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本专利技术。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本专利技术的实施例,并且除非另外要求,否则不会对本专利技术的范围施加限制。参照图1是根据本专利技术优选实施例的系统结构示意图,1.begintx开启本地事务2.dowork执行业务操作3.insertmessage向同实例消息库插入消息4.endtx事务提交5.sendmessage网络向server发送消息6.reponseserver回应消息7.deletemessage如果server回复成功则删除消息8.scanmessages补偿任务扫描未发送消息9.sendmessage补偿任务补偿消息10.deletemessages补偿任务删除补偿成功的消息参照图2是根据本专利技术优选实施例的方法流程示意图,S100、程序执行模块开启本地事务以及事务提交、执行业务操作并将事务消息发送给消息数据库和服务器;S200、服务器接收任务模块发送的事务消息,若服务器接收事物信息成功并向程序执行模块回传反馈后,程序执行模块向消息数据库发送删除事务消息的命令,否则执行步骤S300;S300、任本文档来自技高网
...

【技术保护点】
1.一种消息队列收发系统,其特征在于,包括:程序执行模块,用于开启本地事务以及事务提交、执行业务操作、消息收发和管理;服务器,用于接收任务模块和程序执行模块发送的消息并回应消息;消息数据库,用于接收程序执行模块和任务模块发送的消息并进行处理事务;任务模块,用于向服务器发送消息并对消息数据库中的消息执行扫描和删除操作。

【技术特征摘要】
1.一种消息队列收发系统,其特征在于,包括:程序执行模块,用于开启本地事务以及事务提交、执行业务操作、消息收发和管理;服务器,用于接收任务模块和程序执行模块发送的消息并回应消息;消息数据库,用于接收程序执行模块和任务模块发送的消息并进行处理事务;任务模块,用于向服务器发送消息并对消息数据库中的消息执行扫描和删除操作。2.根据权利要求1所述的消息队列收发系统,其特征在于,所述消息数据库还包括共享接口模块,用于共享同一端口并在同一事务中运行对应代码。3.根据权利要求1所述的消息队列收发系统,其特征在于,所述服务器还包括存储模型模块,用于将服务器接收到的消息分发给处理单元,处理单元将处理后的消息分发给对应的用户接口。4.根据权利要求3所述的消息队列收发系统,其特征在于,所述存储模型模块还包括:映射单元,用于动态映射处理单元与用户接口的逻辑关系;耦合单元,用于管理和建立处理单元与用户接口的耦合关系。5.根据权利要求3所述的消息队列收发系统,其特征在于,所述存储模型模块还包括:延时单元,用于控制消息在一定时间内延时发送,其中一定时间可自定义。6.根据权利要求5所述的消息队列收发系统,其特征在于,所述延时单元还包括:第一存储子单元,用于在磁盘中以一定时间为刻度,在每个刻度生成对应的日志文件,其中一定时间可自定义;第二存储子单元,用于在内存中实时监测消息,当消...

【专利技术属性】
技术研发人员:夏进陈顺平陈荣亮
申请(专利权)人:珠海市珠澳跨境工业区好易通科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1