CN104731912A - 一种消息中间件mq的消息传输方法和装置 - Google Patents

一种消息中间件mq的消息传输方法和装置 Download PDF

Info

Publication number
CN104731912A
CN104731912A CN201510129842.1A CN201510129842A CN104731912A CN 104731912 A CN104731912 A CN 104731912A CN 201510129842 A CN201510129842 A CN 201510129842A CN 104731912 A CN104731912 A CN 104731912A
Authority
CN
China
Prior art keywords
message
target message
transmission
label information
bust
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510129842.1A
Other languages
English (en)
Other versions
CN104731912B (zh
Inventor
刘艺
于振梅
刘传浩
张田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Group Co Ltd filed Critical Inspur Group Co Ltd
Priority to CN201510129842.1A priority Critical patent/CN104731912B/zh
Publication of CN104731912A publication Critical patent/CN104731912A/zh
Application granted granted Critical
Publication of CN104731912B publication Critical patent/CN104731912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种消息中间件MQ的传输方法和装置,其方法包括:获取所需要传输的目标消息,并确定与所述目标消息相邻的消息在日志数据库中的标记信息是否为传输失败,如果是,则将所述目标消息转存入日志数据库中,否则,对所述目标消息进行传输,并判断传输结果;在传输结果为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败,在传输结果为传输成功时,将所述目标消息存入消息队列,并同步到日志数据库中,并标记所述目标消息传输成功;根据预先设置的重试机制,对所述日志数据库中标记信息为传输失败的消息进行重新传输,以提高消息的可靠性。

Description

一种消息中间件MQ的消息传输方法和装置
技术领域
本发明涉及计算机应用领域,特别涉及一种消息中间件MQ的消息传输方法和装置。
背景技术
MQ(通信队列)作为一种消息中间件,用于将发送端的消息转发给消费端,以实现发送端与消费端之间的通信。
目前,利用消息中间件MQ的消息传输方式可以包括:发送端成功将多个消息依次发送给消息中间件MQ,以使消息中间件MQ在接收到每个消息时,将接收到的消息传入消息队列中,然后将消息队列中的多个消息依次发送给消费端,以供消息消费端消费。当发送端发送消息失败时,则舍弃该发送失败的消息,或,消费端消费消息失败时,则舍弃该消费失败的消息。由于舍弃了发送失败的消息或消费失败的消息,对发送端向消费端发送消息的完整性造成了影响,因此,现有的消息中间件MQ消息传输技术使消息的可靠性较低。
发明内容
本发明提供一种消息中间件MQ的消息传输方法和装置,以提高消息的可靠性。
一种消息中间件MQ的传输方法,包括:
获取所需要传输的目标消息,并确定与所述目标消息相邻的消息在日志数据库中的标记信息;
在确定所述标记信息为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败;否则,对所述目标消息进行传输,并判断传输结果;在传输结果为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败,在传输结果为传输成功时,将所述目标消息存入消息队列,并同步到日志数据库中,并标记所述目标消息传输成功;
根据预先设置的重试机制,对所述日志数据库中标记信息为传输失败的消息进行重新传输。
优选地,对所述日志数据库中标记信息为传输失败的消息进行重新传输之后,进一步包括:
在所述日志表中对重新传输成功的消息所对应的标记信息修改为传输成功。
优选地,所述目标消息的传输包括:发送,和/或,消费;
进一步包括:所述日志数据库利用发送端日志表保存发送的目标消息以及标记信息,和/或,所述日志数据库利用消费端日志表保存消费的目标消息以及标记信息;
确定与所述目标消息相邻的消息在日志数据库中的标记信息,包括:确定与所述发送状态的目标消息相邻的消息在所述发送端日志表中的标记信息,和/或,确定与所述消费状态目标消息相邻的消息在所述消费端日志表中的标记信息;
将所述目标消息转存入日志数据库中,包括:将所述发送状态目标消息转存入所述发送端日志表中,和/或,将所述消费状态目标消息转存入所述消费端日志表中。
优选地,所述重试机制进一步包括:定时器;
在将所述目标消息进行重新传输失败时,继续等待定时器所设定的时间,并在到达定时器所设定的时间时,将所述目标消息进行重新传输;
或,
在将所述目标消息进行重新传输失败时,将日志数据库中其他等待重新传输的消息进行逐个传输。
优选地,进一步包括:在将所述目标消息进行重新传输的次数达到重试机制中所设定的阈值次数时,调用预警接口进行预警提示。
一种消息中间件MQ的传输装置,包括:
确定单元,用于获取所需要传输的目标消息,并确定与所述目标消息相邻的消息在日志数据库中的标记信息;
转存单元,用于在所述确定单元确定所述标记信息为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败;
传输单元,用于在在所述确定单元确定所述标记信息为传输成功时,对所述目标消息进行传输,触发判断单元;
所述判断单元,用于判断所述传输单元的传输结果,在传输结果为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败,在传输结果为传输成功时,将所述目标消息存入消息队列,并同步到日志数据库中,并标记所述目标消息传输成功;
重试单元,用于根据预先设置的重试机制,对所述日志数据库中标记信息为传输失败的消息进行重新传输。
优选地,该装置进一步包括:修改单元,
所述修改单元,用于将所述重试单元重试传输成功的消息所对应的标记信息修改为传输成功。
优选地,该装置进一步包括:保存单元,其中,
所述目标消息的传输包括:发送,和/或,消费;
所述保存单元,用于所述日志数据库利用发送端日志表保存发送的目标消息以及标记信息,和/或,所述日志数据库利用消费端日志表保存消费的目标消息以及标记信息;
所述确定单元,进一步用于确定与所述发送状态的目标消息相邻的消息在所述发送端日志表中的标记信息,和/或,确定与所述消费状态目标消息相邻的消息在所述消费端日志表中的标记信息;
所述转存单元,进一步用于将所述发送状态目标消息转存入所述发送端日志表中,和/或,将所述消费状态目标消息转存入所述消费端日志表中。
优选地,所述重试单元,进一步用于:
在将所述目标消息进行重新传输失败时,继续等待定时器所设定的时间,并在到达定时器所设定的时间时,将所述目标消息进行重新传输;
或,
在将所述目标消息进行重新传输失败时,将日志数据库中其他等待重新传输的消息进行逐个传输。
优选地,该装置进一步包括:预警单元,
所述预警单元,用于在将所述目标消息进行重新传输的次数达到重试机制中所设定的阈值次数时,调用预警接口进行预警提示。
本发明实施例提供了一种消息中间件MQ的消息传输方法和装置,其通过获取所需要传输的目标消息,并确定与所述目标消息相邻的消息在日志数据库中的标记信息;在确定所述标记信息为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败;否则,对所述目标消息进行传输,并判断传输结果;在传输结果为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败,在传输结果为传输成功时,将所述目标消息存入消息队列,并同步到日志数据库中,并标记所述目标消息传输成功;根据预先设置的重试机制,对所述日志数据库中标记信息为传输失败的消息进行重新传输。在这一过程中,由于传输失败的消息将转存入所述日志数据库,与现有技术相比,其不会丢失所述传输失败的消息,因此,有效提高了提高消息的可靠性。
本发明实施例通过重试机制和具有阀值的预警接口,可以将日志数据库中传输失败的消息自动重试,通过预警接口可以发送预警信息,提醒工作人员处理传输过程中的问题,也进一步提高了消息的可靠性。
本发明实施例通过对发送端发送失败消息进行转存,可以防止发送消息的丢失,对消费端消费失败消息进行转存,不仅可有效防止消费消息丢失,而且可以有效防止消息循环造成的队列堵塞。
附图说明
图1是本发明实施例提供的消息中间件MQ的消息传输方法流程图;
图2是本发明另一实施例提供的消息中间件MQ接收发送端发送消息的方法流程图;
图3是本发明又一实施例提供的消息中间件MQ为消费端发送消费消息的方法流程图;
图4是本发明实施例提供的消息中间件MQ的传输装置所在架构示意图;
图5是本发明实施例提供的消息中间件MQ的传输装置结构示意图;
图6是本发明另一实施例提供的消息中间件MQ的传输装置结构示意图;
图7是本发明又一实施例提供的消息中间件MQ的传输装置结构示意图;
图8是本发明又一实施例提供的消息中间件MQ的传输装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种消息中间件MQ的消息传输方法,该方法可以包括以下步骤:
步骤101:获取所需要传输的目标消息,并确定与所述目标消息相邻的消息在日志数据库中的标记信息;
步骤102:在确定所述标记信息为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败;否则,对所述目标消息进行传输,并判断传输结果;在传输结果为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败,在传输结果为传输成功时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输成功;
步骤103:根据预先设置的重试机制,对所述日志数据库中标记信息为传输失败的消息进行重新传输。
在本发明一个是实施例中,为了更加准确区分重新传输成功与重新传输失败的消息,在步骤103之后,可在所述日志表中对重新传输成功的消息所对应的标记信息修改为传输成功。
在本发明一个实施例中,消息中间件MQ的传输包括接收发送端发送消息记为发送消息,和/或,发送消费端消费消息记为消费消息,为了区别发送消息与消费消息,所述日志数据库是利用发送端日志表保存发送端发送的目标消息以及标记信息,和/或,所述日志数据库是利用消费端日志表保存消费端发送的目标消息以及标记信息。而确定与所述目标消息相邻的消息在日志数据库中的标记信息的具体实现方式是确定与所述发送状态的目标消息相邻的消息在所述发送端日志表中的标记信息,和/或,确定与所述消费状态目标消息相邻的消息在所述消费端日志表中的标记信息。
在本发明一个实施例中,为了使传输失败的消息重新发送具有一定规则,在步骤103中,重试机制通过定时器来实现,其具体的实现方式:在将所述目标消息进行重新传输失败时,继续等待定时器所设定的时间,并在到达定时器所设定的时间时,将所述目标消息进行重新传输,或,在将所述目标消息进行重新传输失败时,将日志数据库中其他等待重新传输的消息进行逐个传输。
在本发明一个实施例中,为了提高数据传输的效率,使用户能够清楚了消息传输情况,在步骤103之后,在将所述目标消息进行重新传输的次数达到重试机制中所设定的阈值次数时,调用预警接口进行预警提示,以使用户能够及时处理异常状况。
由于消息中间件MQ的传输过程包括:接收发送端发送的目标消息记为发送过程,和/或,发送消费端消费的目标消息记为消费过程,为了能够清楚展现消息中间件MQ在传输过程中的具体实现方式,本发明实施例将分别对发送过程和消费过程展开说明。
在现有技术中,当消息已经进入服务器队列,当服务器由于刷盘超时或同步到Slave超时等原因导致服务器宕机,将导致消息丢失。
在本发明实施例中,建立了日志数据库,用以存放发送端日志数据表和消费端日志数据表,用以备份发送端发送的数据和消费端消费的数据同时对备份消息是否发送成功进行标记,这一过程可保证消息不会丢失。
如图2所示,本发明实施例提供了消息中间件MQ接收发送端发送的消息的方法,该方法可以包括以下步骤:
步骤201:接收发送端发送的目标消息,并确定与目标消息相邻的消息在发送端日志表中的标记信息是否为发送失败,如果标记信息为发送失败,则触发步骤202,否则,触发步骤203;
在发送端在通过中间件MQ发送目标消息过程中,首先,根据目标消息的标识如key值、MD5值等,遍历发送端日志数据表,查看是否存在与目标消息标识一致的未发送成功的消息,下面将以订单采集应用为发送端,以配送应用和物流应用为消费端,主要业务是主要业务是订单采集应用发送具有关联和顺序的订单消息1和订单消息2,以供配送应用和物流应用消费,展开说明本发明实施例的具体实现过程。本发明实施例将以订单号作为发送端和消费端的key值,当发送端通过中间件MQ发送目标消息时,将首先根据目标消息的订单号遍历发送端日志表,检索是否存在未发送成功的与该目标消息相邻的消息,如:订单消息2是对订单消息1的更新,其只携带了订单号及更新数据,而并未携带订单的属性信息,那么,如果订单消息1未发送成功,将导致订单消息2不可用,通过该步骤,以确保消息的顺序性和完整性。尤其对于同步业务来说,保证数据的顺序性和完整性显得尤为重要。
本发明实施例中,只有当消息被消息队列接收并落盘才会在日志数据表中被标记为发送成功,除此以外的返回状态及抛出的异常均可视为发送不成功,如:中间件的服务器刷盘超时,消息已经进入MQ消息队列,此时服务器宕机,消息丢失;中间件的服务器同步到Slave超时,消息已经进入MQ消息队列,此时服务器宕机,消息丢失;服务器抛出的异常等等均被视为消息发送失败,将对丢失的消息在发送端日志表中标记为发送失败消息。
为了使各个步骤更加清晰,在本实施例中,各个步骤均以订单采集应用为发送端发送订单消息1和订单消息2,以配送应用和物流应用为消费端消费订单消息1和订单消息2为例展开说明。
步骤202:将目标消息转存入发送端日志表中,并标记目标消息发送失败;
例如:当订单消息2发送过程中,通过订单号检索到订单消息1仍没有发送成功,那么,该订单消息2将直接转存入发送端日志表,并被标记为发送失败的消息,以保证该具有顺序性的消息可以顺序发送。
在这一过程中,中间件将为发送端返回SEND_SUCCESS代表消息发送成功,发送端可继续发送消息,SEND_FAIL代表转存失败,发送端需进行相应处理,以保证业务不受影响。
步骤203:对目标消息进行发送,并判断发送结果是否为失败,如果发送结果为失败则触发步骤204,否则触发步骤205;
例如:当订单消息1已进入到消息队列并落盘,那么订单消息2将直接发送给消息队列,同时跟踪并判断发送结果。
步骤204:将目标消息转存入发送端日志表中,并标记目标消息发送失败;
例如:如果步骤203中,发送订单消息2失败,则将该订单消息2转存入发送端日志表中,并标记目标消息发送失败。
步骤205:将目标消息存入消息队列,等待消费端消费,并同步到发送端日志表中,并标记所述目标消息发送成功;
例如:步骤203中订单消息2成功进入消息队列,则将该订单消息2同步到发送端日志表中,并标记所述目标消息发送成功;如在这一过程中,发生MQ消息队列中的订单消息2丢失,而未被消费端消费,则发送端日志表中的订单消息2的标记信息将变为发送失败。
步骤206:根据预先设置的重试机制,对发送端日志表中标记信息为发送失败的消息进行重新发送,判断重新发送是否成功,如果是则触发步骤207,否则触发步骤208;
在发送端日志表中存在的发送失败的消息,将根据顺序性等原则,依据重试机制,发送标记为失败的消息。如:订单消息1和订单消息2均在发送端日志表中标记信息均为发送失败,则,根据重试机制,中间件将首先重试将订单消息1发至消息队列。
本发明实施例的重试机制:在将所述目标消息进行重新发送失败时,继续等待定时器所设定的时间,并在到达定时器所设定的时间时,将所述目标消息进行重新发送;或,在将所述目标消息进行重新发送失败时,将日志数据库中其他等待重新发送的消息进行逐个发送。
步骤207:在发送端日志表中对重新发送成功的消息所对应的标记信息修改为发送成功;
例如:步骤206中的订单消息1经过重试成功进入消息队列等待消费端消费,那么,在发送端日志表中,订单消息1的标记信息为发送成功。
步骤208:在将目标消息进行重新发送的次数达到重试机制中所设定的阈值次数时,调用预警接口进行预警提示。
在本发明实施例中,考虑到可能出现长时间的外部故障,造成频繁的重试对系统性能的影响,本发明实施例通过对重试次数进行控制,例如暂定重试5次,超出次数则视为系统严重故障,可通过调用定时器接口,暂停定时器,以停止重试操作。同时进行异常预警。
为了保证消费端出现消费错误时,不会对发送端造成影响,尤其对于同步业务来说。本发明实施例在日志数据库中也为消费端建立了消费日志表,这在前面已有说明,下面将本发明实施例在消费端的传输展开说明。
如图3所示,本发明实施例提供了消息中间件MQ发送消费端消费的消息的方法,该方法可以包括以下步骤:
步骤301:通过消息队列发送消费端消费的目标消息,并确定与目标消息相邻的消息在消费端日志表中的标记信息是否为消费失败,如果标记信息为消费失败,则触发步骤302,否则,触发步骤303;
在消息中间件MQ通过消息队列发送目标消息以供消费端消费过程中,首先,中间件MQ根据目标消息的标识如key值、MD5值等,遍历消费端日志数据表,查看是否存在与目标消息标识一致的未被消费成功的消息,下面将以订单采集应用为发送端,以配送应用和物流应用为消费端,主要业务是订单采集应用发送具有关联和顺序的订单消息1和订单消息2,以供配送应用和物流应用消费,展开说明本发明实施例的具体实现过程。本发明实施例将以订单号作为发送端和消费端的key值,当中间件MQ将消息队列中的目标消息发送给消费端配送应用和物流应用时,将首先根据目标消息的订单号遍历消费端日志表,检索是否存在未被消费成功的与该目标消息相邻的消息,如:订单消息2是对订单消息1的更新,其只携带了订单号及更新数据,而并未携带订单的属性信息,那么,如果订单消息1未被消费成功,将导致订单消息2不可用,通过该步骤,以确保消息的顺序性和完整性。尤其对于同步业务来说,保证数据的顺序性和完整性显得尤为重要。
为了使各个步骤更加清晰,在本实施例中,各个步骤均以订单采集应用为发送端发送订单消息1和订单消息2,以配送应用和物流应用为消费端消费订单消息1和订单消息2为例展开说明。
步骤302:将目标消息转存入消费端日志表中,并标记目标消息消费失败;
例如:当订单消息2在消息队列中,中间件将其发送给消费端消费时,通过订单号检索到订单消息1仍没有被消费成功,那么,该订单消息2将直接转存入消费端日志表,并被标记为消费失败的消息,同时,为中间件返回消费成功的标记,以使中间件可进行后续操作,同时保证该具有顺序性的消息可以顺序发送。
步骤303:触发消费端对目标消息进行消费,并判断消费结果,如果消费结果为失败则触发步骤304,否则触发步骤305;
例如:当订单消息1已被消费端消费,那么订单消息2将直接发送给消费端进行消费,同时跟踪并判断消费端的消费结果。
步骤304:将目标消息转存入消费端日志列表中,并标记目标消息消费失败;
例如:如果步骤303中,消费端消费订单消息2失败,则将该订单消息2转存入消费端日志表中,并标记该消息为消费失败。
步骤305:消息队列触发消费端消费目标消息之后的下一条消息,并将目标消息同步到消费端日志表中,并标记目标消息消费成功;
例如:步骤303中订单消息2成功被消费端消费,则将该订单消息2同步到消费端日志表中,并标记该消息消费成功。
步骤306:根据预先设置的重试机制,对消费端日志表中标记信息为消费失败的消息进行重新消费,判断重新消费是否成功,如果是则触发步骤307,否则触发步骤308;
在消费端日志表中存在的消费失败的消息,将根据顺序性等原则,依据重试机制,中间件将发送标记为失败的消息给消费端消费。如:订单消息1和订单消息2均在消费端日志表中标记信息均为消费失败,则,根据重试机制,中间件将首先重试将订单消息1发至消息队列以发送给消费端消费。
本发明实施例的重试机制:在将所述目标消息进行重新发送失败时,继续等待定时器所设定的时间,并在到达定时器所设定的时间时,将所述目标消息进行重新发送;或,在将所述目标消息进行重新发送失败时,将日志数据库中其他等待重新发送的消息进行逐个发送。
步骤307:在消费端日志表中对重新消费成功的消息所对应的标记信息修改为消费成功;
例如:步骤306中的订单消息1经过重试成功被消费端消费,那么,在消费端日志表中,订单消息1的标记信息为消费成功。
步骤308:在将目标消息进行重新消费的次数达到重试机制中所设定的阈值次数时,调用预警接口进行预警提示。
在本发明实施例中,考虑到可能出现长时间的外部故障,造成频繁的重试对系统性能的影响,本发明实施例通过对重试次数进行控制,例如暂定重试5次,超出次数则视为系统严重故障,可通过调用定时器接口,暂停定时器,以停止重试操作。同时进行异常预警。
在本发明实施例中,对于消费端消费的整个过程来说,当消息被消费成功或者成功转存入消费日志表,均为中间件返回SEND_SUCCESS标志,表明消息被成功消费或转存,这样可以使消息队列进行下一消息的处理,避免消息消费不成功带来消息队列的堵塞;当消息中间件返回SEND_FAIL代表转存失败,提醒工作人员进行相应处理,以保证业务不受影响。
在本发明实施例中,预警提示主要是:消息达到重试机制设定的重试次数限制后,仍未被发送或消费成功,则通过预警提示运维人员需及时检查系统,排除故障;转存发送或消费消息失败,则通过预警提示运维人员需及时检查系统,排除故障。
本发明实施例至少具有如下的有益效果:
1.本发明实施例提供了一种消息中间件MQ的消息传输方法和装置,其通过获取所需要传输的目标消息,并确定与所述目标消息相邻的消息在日志数据库中的标记信息;在确定所述标记信息为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败;否则,对所述目标消息进行传输,并判断传输结果;在传输结果为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败,在传输结果为传输成功时,将所述目标消息存入消息队列,并同步到日志数据库中,并标记所述目标消息传输成功;根据预先设置的重试机制,对所述日志数据库中标记信息为传输失败的消息进行重新传输。在这一过程中,由于传输失败的消息将转存入所述日志数据库,与现有技术相比,其不会丢失所述传输失败的消息,因此,有效提高了提高消息的可靠性。
2.本发明实施例通过重试机制和具有阀值的预警接口,可以将日志数据库中传输失败的消息自动重试,通过预警接口可以发送预警信息,提醒工作人员处理传输过程中的问题,也进一步提高了消息的可靠性。
3.本发明实施例通过对发送端发送失败消息进行转存,可以防止发送消息的丢失,对消费端消费失败消息进行转存,不仅可有效防止消费消息丢失,而且可以有效防止消息循环造成的队列堵塞。
如图4、图5所示,本发明实施例提供了一种消息中间件MQ的传输装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图4所示,为本发明实施例的装置所在设备的一种硬件结构图,除了图4所示的CPU、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理转存的芯片等等。以软件实现为例,如图5所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的消息中间件的传输装置50包括:
确定单元501,用于获取所需要传输的目标消息,并确定与所述目标消息相邻的消息在日志数据库中的标记信息;
转存单元502,用于在所述确定单元确定所述标记信息为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败;
传输单元503,用于在在所述确定单元确定所述标记信息为传输成功时,对所述目标消息进行传输,触发判断单元;
判断单元504,用于判断所述传输单元的传输结果,在传输结果为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败,在传输结果为传输成功时,将所述目标消息存入消息队列,并同步到日志数据库中,并标记所述目标消息传输成功;
重试单元505,用于根据预先设置的重试机制,对所述日志数据库中标记信息为传输失败的消息进行重新传输。
在本发明另一实施例中,如图6所示,消息中间件MQ的传输装置可以进一步包括:
修改单元601:用于将所述重试单元重试传输成功的消息所对应的标记信息修改为传输成功。
在本发明一个实施例中,如图7所示,消息中间件MQ的传输装置可以进一步包括:保存单元701
所述目标消息的传输包括:发送,和/或,消费;
保存单元701,用于所述日志数据库利用发送端日志表保存发送的目标消息以及标记信息,和/或,所述日志数据库利用消费端日志表保存消费的目标消息以及标记信息,以触发确定单元;
所述确定单元,进一步用于确定与所述发送状态的目标消息相邻的消息在所述发送端日志表中的标记信息,和/或,确定与所述消费状态目标消息相邻的消息在所述消费端日志表中的标记信息;
所述转存单元,进一步用于将所述发送状态目标消息转存入所述发送端日志表中,和/或,将所述消费状态目标消息转存入所述消费端日志表中。
在本发明一个实施例中,所述重试单元,进一步用于:在将所述目标消息进行重新传输失败时,继续等待定时器所设定的时间,并在到达定时器所设定的时间时,将所述目标消息进行重新传输;或,在将所述目标消息进行重新传输失败时,将日志数据库中其他等待重新传输的消息进行逐个传输。
在本发明一个实施例中,如图8所示,消息中间件MQ的传输装置可以进一步包括:
预警单元801,用于在将所述目标消息进行重新传输的次数达到重试机制中所设定的阈值次数时,调用预警接口进行预警提示。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种消息中间件MQ的传输方法,其特征在于,包括:
获取所需要传输的目标消息,并确定与所述目标消息相邻的消息在日志数据库中的标记信息;
在确定所述标记信息为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败;否则,对所述目标消息进行传输,并判断传输结果;在传输结果为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败,在传输结果为传输成功时,将所述目标消息存入消息队列,并同步到日志数据库中,并标记所述目标消息传输成功;
根据预先设置的重试机制,对所述日志数据库中标记信息为传输失败的消息进行重新传输。
2.根据权利要求1所述方法,其特征在于,
对所述日志数据库中标记信息为传输失败的消息进行重新传输之后,进一步包括:
在所述日志表中对重新传输成功的消息所对应的标记信息修改为传输成功。
3.根据权利要求1所述方法,其特征在于,
所述目标消息的传输包括:发送,和/或,消费;
进一步包括:所述日志数据库利用发送端日志表保存发送的目标消息以及标记信息,和/或,所述日志数据库利用消费端日志表保存消费的目标消息以及标记信息;
确定与所述目标消息相邻的消息在日志数据库中的标记信息,包括:确定与所述发送状态的目标消息相邻的消息在所述发送端日志表中的标记信息,和/或,确定与所述消费状态目标消息相邻的消息在所述消费端日志表中的标记信息;
将所述目标消息转存入日志数据库中,包括:将所述发送状态目标消息转存入所述发送端日志表中,和/或,将所述消费状态目标消息转存入所述消费端日志表中。
4.根据权利要求1所述方法,其特征在于,
所述重试机制进一步包括:定时器;
在将所述目标消息进行重新传输失败时,继续等待定时器所设定的时间,并在到达定时器所设定的时间时,将所述目标消息进行重新传输;
或,
在将所述目标消息进行重新传输失败时,将日志数据库中其他等待重新传输的消息进行逐个传输。
5.根据权利要求1至4所述任一方法,其特征在于,进一步包括:
在将所述目标消息进行重新传输的次数达到重试机制中所设定的阈值次数时,调用预警接口进行预警提示。
6.一种消息中间件MQ的传输装置,其特征在于,包括:
确定单元,用于获取所需要传输的目标消息,并确定与所述目标消息相邻的消息在日志数据库中的标记信息;
转存单元,用于在所述确定单元确定所述标记信息为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败;
传输单元,用于在在所述确定单元确定所述标记信息为传输成功时,对所述目标消息进行传输,触发判断单元;
所述判断单元,用于判断所述传输单元的传输结果,在传输结果为传输失败时,将所述目标消息转存入日志数据库中,并标记所述目标消息传输失败,在传输结果为传输成功时,将所述目标消息存入消息队列,并同步到日志数据库中,并标记所述目标消息传输成功;
重试单元,用于根据预先设置的重试机制,对所述日志数据库中标记信息为传输失败的消息进行重新传输。
7.根据权利要求6所述的装置,其特征在于,进一步包括:修改单元,
所述修改单元,用于将所述重试单元重试传输成功的消息所对应的标记信息修改为传输成功。
8.根据权利要求6所述装置,其特征在于,进一步包括:保存单元,其中,
所述目标消息的传输包括:发送,和/或,消费;
所述保存单元,用于所述日志数据库利用发送端日志表保存发送的目标消息以及标记信息,和/或,所述日志数据库利用消费端日志表保存消费的目标消息以及标记信息;
所述确定单元,进一步用于确定与所述发送状态的目标消息相邻的消息在所述发送端日志表中的标记信息,和/或,确定与所述消费状态目标消息相邻的消息在所述消费端日志表中的标记信息;
所述转存单元,进一步用于将所述发送状态目标消息转存入所述发送端日志表中,和/或,将所述消费状态目标消息转存入所述消费端日志表中。
9.根据权利要求6所述装置,其特征在于,所述重试单元,进一步用于:
在将所述目标消息进行重新传输失败时,继续等待定时器所设定的时间,并在到达定时器所设定的时间时,将所述目标消息进行重新传输;
或,
在将所述目标消息进行重新传输失败时,将日志数据库中其他等待重新传输的消息进行逐个传输。
10.根据权利要求6所述装置,其特征在于,进一步包括:预警单元,
所述预警单元,用于在将所述目标消息进行重新传输的次数达到重试机制中所设定的阈值次数时,调用预警接口进行预警提示。
CN201510129842.1A 2015-03-24 2015-03-24 一种消息中间件mq的消息传输方法和装置 Active CN104731912B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510129842.1A CN104731912B (zh) 2015-03-24 2015-03-24 一种消息中间件mq的消息传输方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510129842.1A CN104731912B (zh) 2015-03-24 2015-03-24 一种消息中间件mq的消息传输方法和装置

Publications (2)

Publication Number Publication Date
CN104731912A true CN104731912A (zh) 2015-06-24
CN104731912B CN104731912B (zh) 2017-12-19

Family

ID=53455799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510129842.1A Active CN104731912B (zh) 2015-03-24 2015-03-24 一种消息中间件mq的消息传输方法和装置

Country Status (1)

Country Link
CN (1) CN104731912B (zh)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743979A (zh) * 2016-02-02 2016-07-06 北京京东尚科信息技术有限公司 一种数据通信的系统和方法
CN105843937A (zh) * 2016-03-31 2016-08-10 北京奇虎科技有限公司 数据处理方法和装置
CN105897549A (zh) * 2015-12-14 2016-08-24 乐视云计算有限公司 消息发送、接收方法和装置
CN106375200A (zh) * 2016-11-08 2017-02-01 上海找钢网信息科技股份有限公司 消息系统及消息处理方法
CN106598762A (zh) * 2016-12-29 2017-04-26 上海理想信息产业(集团)有限公司 一种消息同步方法及系统
CN107070613A (zh) * 2017-03-22 2017-08-18 公安部交通管理科学研究所 分布式网络环境下数据可靠传输方法
CN107133302A (zh) * 2017-04-28 2017-09-05 努比亚技术有限公司 实现数据一致性的方法、系统、终端及计算机可读存储介质
CN107341062A (zh) * 2017-06-28 2017-11-10 百度在线网络技术(北京)有限公司 一种数据推送方法、装置、设备以及存储介质
CN107995242A (zh) * 2016-10-27 2018-05-04 北京京东尚科信息技术有限公司 一种业务处理方法及系统
CN108491526A (zh) * 2018-03-28 2018-09-04 腾讯科技(深圳)有限公司 日志数据处理方法、装置、电子设备及存储介质
CN108712501A (zh) * 2018-05-28 2018-10-26 腾讯科技(北京)有限公司 信息的发送方法、装置、计算设备以及存储介质
CN108965164A (zh) * 2017-05-17 2018-12-07 北京京东尚科信息技术有限公司 基于消息队列的业务请求重传方法、装置及可读存储介质
CN109088705A (zh) * 2018-09-29 2018-12-25 上海东土远景工业科技有限公司 数据的重传方法、重传设备及网关
CN109714409A (zh) * 2018-12-21 2019-05-03 优估(上海)信息科技有限公司 一种消息的管理方法和系统
CN109831283A (zh) * 2018-12-26 2019-05-31 努比亚技术有限公司 一种信息发送方法、终端及计算机可读存储介质
CN109951261A (zh) * 2019-03-20 2019-06-28 江苏满运软件科技有限公司 中间件消息传输补偿方法、装置、电子设备、存储介质
CN105630635B (zh) * 2015-12-29 2019-07-30 北京京东尚科信息技术有限公司 数据容灾系统和方法
CN110213317A (zh) * 2018-07-18 2019-09-06 腾讯科技(深圳)有限公司 消息存储的方法、装置及存储介质
CN110308989A (zh) * 2019-05-31 2019-10-08 中国科学院计算技术研究所 一种针对OpenStack跨数据中心的资源管理装置及方法
CN110968431A (zh) * 2018-09-28 2020-04-07 阿里巴巴集团控股有限公司 一种消息处理方法、装置及设备
CN111464621A (zh) * 2020-03-30 2020-07-28 四川新网银行股份有限公司 分布式系统异步通信中消息发送与接收的数量检测方法
CN111510349A (zh) * 2020-04-09 2020-08-07 上海东普信息科技有限公司 业务异常检测和告警方法、装置、设备及存储介质
CN111651284A (zh) * 2020-05-25 2020-09-11 泰康保险集团股份有限公司 一种处理业务数据的方法、装置、系统及存储介质
CN112199212A (zh) * 2020-09-30 2021-01-08 银盛支付服务股份有限公司 一种异步通知方法及系统
CN112328418A (zh) * 2020-11-27 2021-02-05 行吟信息科技(上海)有限公司 一种提升mq同步可靠性的方法和系统
CN112702371A (zh) * 2019-10-22 2021-04-23 深圳市茁壮网络股份有限公司 一种消息发送方法、装置及智能终端
CN112948551A (zh) * 2021-02-25 2021-06-11 平安壹钱包电子商务有限公司 日志获取方法、装置、计算机设备及存储介质
CN113986601A (zh) * 2021-12-27 2022-01-28 飞狐信息技术(天津)有限公司 消费信息查询方法及装置、存储介质及电子设备
CN114244899A (zh) * 2021-12-02 2022-03-25 上海微盟企业发展有限公司 一种消息传递方法、装置及可读存储介质
CN114884906A (zh) * 2022-03-23 2022-08-09 晨贝(天津)技术有限公司 基于快速恢复的失败重试通知方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1816014A (zh) * 2005-02-04 2006-08-09 微软公司 用于通过网络通信相关消息的排队会话
CN101625740A (zh) * 2009-07-28 2010-01-13 交通银行股份有限公司 一种应用业务监控方法、装置和系统
US7779421B2 (en) * 2005-06-30 2010-08-17 Ebay Inc. Business event processing
CN102364921A (zh) * 2011-11-21 2012-02-29 携程计算机技术(上海)有限公司 企业服务总线的实现方法、设备及相应的平台
CN103559120A (zh) * 2013-11-13 2014-02-05 北京网秦天下科技有限公司 日志记录方法以及服务器
CN103927218A (zh) * 2014-04-30 2014-07-16 广州唯品会网络技术有限公司 事件分发方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1816014A (zh) * 2005-02-04 2006-08-09 微软公司 用于通过网络通信相关消息的排队会话
US7779421B2 (en) * 2005-06-30 2010-08-17 Ebay Inc. Business event processing
CN101625740A (zh) * 2009-07-28 2010-01-13 交通银行股份有限公司 一种应用业务监控方法、装置和系统
CN102364921A (zh) * 2011-11-21 2012-02-29 携程计算机技术(上海)有限公司 企业服务总线的实现方法、设备及相应的平台
CN103559120A (zh) * 2013-11-13 2014-02-05 北京网秦天下科技有限公司 日志记录方法以及服务器
CN103927218A (zh) * 2014-04-30 2014-07-16 广州唯品会网络技术有限公司 事件分发方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王小霞: "《基于消息中间件的水里系统电子数据互换平台设计与实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
马全水: "《消息中间件在数据交换中的应用与实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105897549A (zh) * 2015-12-14 2016-08-24 乐视云计算有限公司 消息发送、接收方法和装置
CN105630635B (zh) * 2015-12-29 2019-07-30 北京京东尚科信息技术有限公司 数据容灾系统和方法
CN105743979B (zh) * 2016-02-02 2019-06-04 北京京东尚科信息技术有限公司 一种数据通信的系统和方法
CN105743979A (zh) * 2016-02-02 2016-07-06 北京京东尚科信息技术有限公司 一种数据通信的系统和方法
CN105843937A (zh) * 2016-03-31 2016-08-10 北京奇虎科技有限公司 数据处理方法和装置
CN107995242A (zh) * 2016-10-27 2018-05-04 北京京东尚科信息技术有限公司 一种业务处理方法及系统
CN106375200A (zh) * 2016-11-08 2017-02-01 上海找钢网信息科技股份有限公司 消息系统及消息处理方法
CN106598762A (zh) * 2016-12-29 2017-04-26 上海理想信息产业(集团)有限公司 一种消息同步方法及系统
CN106598762B (zh) * 2016-12-29 2020-04-17 上海理想信息产业(集团)有限公司 一种消息同步方法
CN107070613A (zh) * 2017-03-22 2017-08-18 公安部交通管理科学研究所 分布式网络环境下数据可靠传输方法
CN107070613B (zh) * 2017-03-22 2020-04-10 公安部交通管理科学研究所 分布式网络环境下数据可靠传输方法
CN107133302A (zh) * 2017-04-28 2017-09-05 努比亚技术有限公司 实现数据一致性的方法、系统、终端及计算机可读存储介质
CN108965164A (zh) * 2017-05-17 2018-12-07 北京京东尚科信息技术有限公司 基于消息队列的业务请求重传方法、装置及可读存储介质
CN108965164B (zh) * 2017-05-17 2021-12-07 北京京东尚科信息技术有限公司 基于消息队列的业务请求重传方法、装置及可读存储介质
CN107341062A (zh) * 2017-06-28 2017-11-10 百度在线网络技术(北京)有限公司 一种数据推送方法、装置、设备以及存储介质
CN107341062B (zh) * 2017-06-28 2021-01-08 百度在线网络技术(北京)有限公司 一种数据推送方法、装置、设备以及存储介质
CN108491526B (zh) * 2018-03-28 2022-02-22 腾讯科技(深圳)有限公司 日志数据处理方法、装置、电子设备及存储介质
CN108491526A (zh) * 2018-03-28 2018-09-04 腾讯科技(深圳)有限公司 日志数据处理方法、装置、电子设备及存储介质
CN108712501B (zh) * 2018-05-28 2023-04-07 腾讯科技(北京)有限公司 信息的发送方法、装置、计算设备以及存储介质
CN108712501A (zh) * 2018-05-28 2018-10-26 腾讯科技(北京)有限公司 信息的发送方法、装置、计算设备以及存储介质
CN110213317A (zh) * 2018-07-18 2019-09-06 腾讯科技(深圳)有限公司 消息存储的方法、装置及存储介质
CN110213317B (zh) * 2018-07-18 2021-10-29 腾讯科技(深圳)有限公司 消息存储的方法、装置及存储介质
CN110968431B (zh) * 2018-09-28 2023-06-20 阿里巴巴集团控股有限公司 一种消息处理方法、装置及设备
CN110968431A (zh) * 2018-09-28 2020-04-07 阿里巴巴集团控股有限公司 一种消息处理方法、装置及设备
CN109088705A (zh) * 2018-09-29 2018-12-25 上海东土远景工业科技有限公司 数据的重传方法、重传设备及网关
CN109088705B (zh) * 2018-09-29 2021-09-10 上海东土致远智能科技发展有限公司 数据的重传方法、重传设备及网关
CN109714409B (zh) * 2018-12-21 2021-09-14 优估(上海)信息科技有限公司 一种消息的管理方法和系统
CN109714409A (zh) * 2018-12-21 2019-05-03 优估(上海)信息科技有限公司 一种消息的管理方法和系统
CN109831283A (zh) * 2018-12-26 2019-05-31 努比亚技术有限公司 一种信息发送方法、终端及计算机可读存储介质
CN109951261A (zh) * 2019-03-20 2019-06-28 江苏满运软件科技有限公司 中间件消息传输补偿方法、装置、电子设备、存储介质
CN109951261B (zh) * 2019-03-20 2021-09-28 江苏满运软件科技有限公司 中间件消息传输补偿方法、装置、电子设备、存储介质
CN110308989A (zh) * 2019-05-31 2019-10-08 中国科学院计算技术研究所 一种针对OpenStack跨数据中心的资源管理装置及方法
CN112702371A (zh) * 2019-10-22 2021-04-23 深圳市茁壮网络股份有限公司 一种消息发送方法、装置及智能终端
CN111464621B (zh) * 2020-03-30 2022-06-24 四川新网银行股份有限公司 分布式系统异步通信中消息发送与接收的数量检测方法
CN111464621A (zh) * 2020-03-30 2020-07-28 四川新网银行股份有限公司 分布式系统异步通信中消息发送与接收的数量检测方法
CN111510349A (zh) * 2020-04-09 2020-08-07 上海东普信息科技有限公司 业务异常检测和告警方法、装置、设备及存储介质
CN111651284A (zh) * 2020-05-25 2020-09-11 泰康保险集团股份有限公司 一种处理业务数据的方法、装置、系统及存储介质
CN112199212A (zh) * 2020-09-30 2021-01-08 银盛支付服务股份有限公司 一种异步通知方法及系统
CN112328418A (zh) * 2020-11-27 2021-02-05 行吟信息科技(上海)有限公司 一种提升mq同步可靠性的方法和系统
CN112948551A (zh) * 2021-02-25 2021-06-11 平安壹钱包电子商务有限公司 日志获取方法、装置、计算机设备及存储介质
CN114244899A (zh) * 2021-12-02 2022-03-25 上海微盟企业发展有限公司 一种消息传递方法、装置及可读存储介质
CN114244899B (zh) * 2021-12-02 2024-05-17 上海微盟企业发展有限公司 一种消息传递方法、装置及可读存储介质
CN113986601A (zh) * 2021-12-27 2022-01-28 飞狐信息技术(天津)有限公司 消费信息查询方法及装置、存储介质及电子设备
CN114884906A (zh) * 2022-03-23 2022-08-09 晨贝(天津)技术有限公司 基于快速恢复的失败重试通知方法及装置
CN114884906B (zh) * 2022-03-23 2024-05-17 贝壳找房(北京)科技有限公司 基于快速恢复的失败重试通知方法及装置

Also Published As

Publication number Publication date
CN104731912B (zh) 2017-12-19

Similar Documents

Publication Publication Date Title
CN104731912A (zh) 一种消息中间件mq的消息传输方法和装置
CN101047484B (zh) 一种传输层重传方法和系统
WO2021121370A1 (zh) 用于消息队列的消息丢失检测方法和装置
CN104092717B (zh) 消息处理方法及系统、消息目的端设备
CN109714409B (zh) 一种消息的管理方法和系统
CN110784255B (zh) 一种北斗用户终端通信资源共享系统
CN103019866A (zh) 基于消息队列的分布式方法和系统
CN109361525B (zh) 重启分布式部署多服务的方法、装置、控制终端及介质
CN111158933A (zh) 一种基于消息队列的分布式事务处理方法及系统
CN104518914B (zh) 链路切换方法和设备
CN104598241A (zh) 一种窗口监控方法及系统
CN108347463A (zh) 一种终端文件上传方法
CN102263674A (zh) 告警上报方法、系统和设备
CN101651526A (zh) 一种网络设备间的消息传递方法
CN106301840A (zh) 双向转发检测bfd报文的发送方法及装置
CN111416823A (zh) 一种数据传输方法和装置
CN103781038A (zh) 一种电网故障定位实时通报方法及系统
CN108683542A (zh) 一种分布式存储系统的故障自诊断方法、系统及装置
CN101500249B (zh) 一种单板状态检测的实现方法
CN101977396B (zh) 多媒体消息业务中实现网元业务切换的系统及方法
CN101001213B (zh) 一种短消息传输系统及方法
CN107666430B (zh) 一种电子邮件发送方法、装置及终端
CN108241616B (zh) 消息推送方法和装置
CN112698969A (zh) 一种基于消息落库的mq消息可靠性投递解决方法
WO2017162045A1 (zh) 一种消息的发送方法和终端设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180807

Address after: 250100 S06 tower, 1036, Chao Lu Road, hi tech Zone, Ji'nan, Shandong.

Patentee after: Shandong wave cloud Mdt InfoTech Ltd

Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Patentee before: Inspur Group Co., Ltd.

TR01 Transfer of patent right
CP03 Change of name, title or address

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Patentee after: Inspur cloud Information Technology Co., Ltd

Address before: 250100 Ji'nan science and technology zone, Shandong high tide Road, No. 1036 wave of science and Technology Park, building S06

Patentee before: SHANDONG LANGCHAO YUNTOU INFORMATION TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address