CN107222530A - 服务异步交互方法、设备、***和可读介质 - Google Patents
服务异步交互方法、设备、***和可读介质 Download PDFInfo
- Publication number
- CN107222530A CN107222530A CN201710366759.5A CN201710366759A CN107222530A CN 107222530 A CN107222530 A CN 107222530A CN 201710366759 A CN201710366759 A CN 201710366759A CN 107222530 A CN107222530 A CN 107222530A
- Authority
- CN
- China
- Prior art keywords
- message
- service
- communication information
- business operation
- exchange method
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/224—Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开一种服务异步交互方法、设备、***和可读介质,所述服务异步交互方法包括如下步骤:在接收到需要与另一***进行业务交互的业务指令时,根据所述业务指令执行本地相关业务操作;在所述业务操作成功时,调用消息通知与接收模块,来将所述业务操作的传递信息封装为通信消息,所述通信消息包括消息事务ID以及消息发送和接受协议;将所述通信消息发送至与所述另一***之间部署的消息队列,用以通过所述消息队列发送至所述另一***。本发明具有增加***之间同步操作的稳定性的效果。
Description
技术领域
本发明涉及通信技术领域,特别涉及服务异步交互方法、设备、***和可读介质。
背景技术
随着一个***的功能和内容不断壮大,单一的***无法支撑日益增长的用户体量。微服务的概念也是在这种环境下产生的,它是指导一个***如何划分为一个个独立的***,使服务之间相互解耦,从而提高服务的性能和稳定性。但解耦首要解决的问题是如何确保多个***之间数据操作的一致性,也就是分布式事务如何保证最终一致性的方法。传统的解决方法就是通过各个服务之间通过HTTP请求进行同步操作,如果只涉及到1至2个***还可以稳定运行。但是一旦涉及到更多个***,则一旦某一个***出问题,会导致其他***也会受到牵连。
发明内容
本发明的主要目的是提供服务异步交互方法、设备、***和可读介质,旨在增加***之间同步操作的稳定性。
为实现上述目的,本发明提出的一种服务异步交互方法,用于多***之间业务交互,所述服务异步交互方法包括如下步骤:
在接收到需要与另一***进行业务交互的业务指令时,根据所述业务指令执行本地相关业务操作;
在所述业务操作成功时,调用消息通知与接收模块,来将所述业务操作的传递信息封装为通信消息,所述通信消息包括消息事务ID以及消息发送和接受协议;
将所述通信消息发送至与所述另一***之间部署的消息队列,用以通过所述消息队列发送至所述另一***。
优选的,在所述业务操作成功时,所述服务异步交互方法还包括步骤:
在预设消息记录表中记录所述业务操作的业务操作消息,其中,所述业务操作消息包括所述消息事务ID和推送状态;
在接收到来自所述另一***针对所述通信消息返回的返回消息时,根据所述返回消息更新所述业务操作消息的推送状态。
优选的,所述服务异步交互方法还包括如下步骤:
定时轮询所述消息记录表,查询推送状态为失败的通信消息;
在查询到推送状态为失败的通信消息时,对所述推送状态为失败的通信消息进行重新发送。
优选的,所述消息队列采用兔子消息队列RabbitMQ。
本发明提供的一种服务异步交互设备,所述服务异步交互设备包括处理器、存储器和储存于所述储存器上的并可在处理器上运行的服务异步交互程序;所述服务异步交互程序被所述处理器执行时实现上述的服务异步交互方法的步骤。
本发明提供的可读介质,用于计算机读取,所述可读介质上存储有服务异步交互程序,所述服务异步交互程序被处理器执行时实现上述的服务异步交互方法的步骤。
本发明提供的一种服务异步交互***,包括处理器、存储器和储存于所述储存器上的用以实现多种服务的多个***,所述服务异步交互***还包括储存在所述储存器上的用于部署在多个所述***之间的消息队列集群;
所述***在被所述处理器执行时,实现如下步骤:
在接收到需要与另一***进行业务交互的业务指令时,根据所述业务指令执行相关业务操作;
在所述业务操作成功时,调用消息通知与接收模块,来将所述业务操作的传递信息封装为通信消息,所述通信消息包括消息事务ID以及消息发送和接受协议;
将所述通信消息发送至与另一***之间部署的消息队列,用以通过所述消息队列发送至另一***;
所述***在被所述处理器执行时,还包括实现如下步骤:
接受来自另一***的通信消息;
根据所述通信消息进行处理,并且在处理完毕时将处理结果封装为包括消息发送和接受协议的返回消息;
将所述返回消息发送至所述消息队列,用以通过所述消息队列发送至另一***;
所述消息队列集群在被所述处理器执行时,实现如下步骤:
在接收到所述***的通信消息以及返回消息时,通过每个所述***之间业务交互所分别使用的一个指定消息队列来发送所述通信消息以及返回消息。
优选的,所述消息队列集群在被所述处理器执行时,还包括实现消息队列的持久化。
优选的,所述一***在被所述处理器执行时,还实现如下步骤:
在所述业务操作成功时,在预设消息记录表中记录所述业务操作的业务操作消息,其中,所述业务操作消息包括所述消息事务ID和推送状态;
在接收到来自另一***针对所述通信消息返回的返回消息时,根据所述返回消息更新所述业务操作消息的推送状态。
优选的,所述一***在被所述处理器执行时,还实现如下步骤:
定时轮询所述消息记录表,查询推送状态为失败的通信消息;
在查询到推送状态为失败的通信消息时,对所述推送状态为失败的通信消息进行重新发送。
本发明所提供的服务异步交互方法、设备、***和可读介质,通过设置功能单一的***,本地执行其业务,并且将传递信息通过封装并且通过消息队列传递至目标***,则是各自在本地进行本地的业务逻辑操作,再将结果通过消息队列的方式发送至另一***。相对于通过http实现***间的同步,本实施例实现了***之间的异步交互,能够增强***的稳定性;进一步的,通过RabbitMq可以让各个***的服务业务之间解耦,无需复杂的http调用接口验证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明服务异步交互方法第一实施例的流程图;
图2为本发明服务异步交互方法第二实施例的流程图;
图3为本发明服务异步交互方法第三实施例的流程图;
图4为本发明服务异步交互设备一实施例的模块示意图;
图5为本发明可读介质一实施例的模块示意图;
图6为本发明服务异步交互***一实施例的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参看图1,本发明服务异步交互方法第一实施例,用于多***之间业务交互,所述服务异步交互方法包括如下步骤:
步骤S101,在接收到需要与另一***进行业务交互的业务指令时,根据所述业务指令执行本地相关业务操作。
例如,当用户在领券***内激活了领券业务,则领券***执行该领券的业务;而该领券的业务将用于订单***,用于在订单***内实施现金抵扣业务。则上述的领券业务需要与订单***进行业务交互。当领券***接收到执行领券业务指令时,其在本地执行该业务直至该业务结束,例如向用户展现领券动画,以及领券金额,以及领券成功的提示等等。
步骤S102,在所述业务操作成功时,调用消息通知与接收模块,来将所述业务操作的传递信息封装为通信消息,所述通信消息包括消息事务ID以及消息发送和接受协议。
继续以上述领券业务作为例来说明:当用户激活领券业务,领券***通过审核,并没有发现用户有任何不合规之处,则代表用户可以领用该优惠券。则领券***执行发放优惠券的步骤,此时判定业务操作成功。若用户不符合领取优惠券的要求,则拒绝向用户发放优惠券,此时判定业务操作失败。在领券***中,领券***可以独立的完成其功能,无需关心订单***是否能正确处理所接收到的优惠券消息,从而领券***功能较单一,结构较简单地实现了其本身的领券功能。进一步的,当用户获得优惠券时,该优惠券需要与订单***交流通讯,因此领券你***需要生成一个传递信息,通知订单***,该用户具有优惠券。
而该传递信息,通过通知与接收模块封装而成。具体的,该消息通知与接收模块的作用主要是生成一个唯一的消息事务ID,供全局的消息使用,以达到区分各个消息的目的;另外此模块会按照具体消息队列的接口语法,封装好消息的发送和接受的方法,对外提供服务。此模块可以作为所有***之间调用消息的共用模块。即该通知与接收模块可以是本***存在的,也可以是多个***共享使用的。
步骤S103,将所述通信消息发送至与所述另一***之间部署的消息队列,用以通过所述消息队列发送至所述另一***。
消息队列可以采用优选采用灰兔消息队列RabbitMq,RabbitMQ是当前流行的开源消息队列***,用erlang语言开发,因为erlang天生就是一门分布式语言,因此便于实现集群,以及分布式***。RabbitMQ是AMQP(高级消息队列协议)的标准实现,可复用的企业消息***。它遵循Mozilla Public License开源协议。相对于其他的消息队列,RabbitMq具有开源,稳定性好,以及符合AMQP标准,因此为优秀的消息队列选择。
本实施例所提供的服务异步交互方法,通过设置功能单一的***,本地执行其业务,并且将传递信息通过封装并且通过消息队列传递至目标***,则是各自在本地进行本地的业务逻辑操作,再将结果通过消息队列的方式发送至另一***。相对于通过http实现***间的同步,本实施例实现了***之间的异步交互,能够增强***的稳定性;进一步的,通过RabbitMq可以让各个***的服务业务之间解耦,无需复杂的http调用接口验证。
其中,异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位。
解耦就是用数学方法将两种运动分离开来处理问题,常用解耦方法就是忽略或简化对所研究问题影响较小的一种运动,只分析主要的运动。从而使得***的变量降低,使得***更稳定。在解耦控制问题中,基本目标是设计一个控制装置,使构成的多变量控制***的每个输出变量仅由一个输入变量完全控制,且不同的输出由不同的输入控制。
全局事务:资源管理器管理和协调的事务,可以跨越多个数据库和进程。
请参看图2,本发明服务异步交互方法第二实施例,本实施例以第一实施例为基础,新增了步骤,具体如下:
步骤S201,本步骤与第一实施例的步骤S101相同,具体请参看上述实施例,在此不再赘述。
步骤S202,本步骤与第一实施例的步骤S102相同,具体请参看上述实施例,在此不再赘述。
步骤S203,本步骤与第一实施例的步骤S103相同,具体请参看上述实施例,在此不再赘述。
步骤S204,在预设消息记录表中记录所述业务操作的业务操作消息,其中,所述业务操作消息包括所述消息事务ID和推送状态。
步骤S205,在接收到来自所述另一***针对所述通信消息返回的返回消息时,根据所述返回消息更新所述业务操作消息的推送状态。
本实施例,通过记录业务操作消息至消息记录表中,则可以实现对每一业务操作进行追溯的效果。从而便于复查以及核对消息等后续工作。
请参看图3,本发明服务异步交互方法第三实施例,本实施例以第二实施例为基础,新增了步骤,具体如下:
步骤S301,本步骤与第一实施例的步骤S201相同,具体请参看上述实施例,在此不再赘述。
步骤S302,本步骤与第一实施例的步骤S202相同,具体请参看上述实施例,在此不再赘述。
步骤S303,本步骤与第一实施例的步骤S203相同,具体请参看上述实施例,在此不再赘述。
步骤S304,本步骤与第一实施例的步骤S204相同,具体请参看上述实施例,在此不再赘述。
步骤S305,本步骤与第一实施例的步骤S205相同,具体请参看上述实施例,在此不再赘述。
步骤S306,定时轮询所述消息记录表,查询推送状态为失败的通信消息。
定时的时间,可以是5秒,1分钟或者10分钟等等。
步骤S307,在查询到推送状态为失败的通信消息时,对所述推送状态为失败的通信消息进行重新发送。
本实施例,通过定时轮询所述消息记录表,则可以了解发送失败的消息,进一步重发这些消息,从而建立了错误补偿机制。错误补偿机制能够保证一些消息发送失败,能够进行重新发送,确保消息抵达到其他***的服务。
请参看图4,本发明服务异步交互设备一实施例,所述服务异步交互设备1000包括处理器1100、存储器1200和储存于所述储存器1200上的并可在处理器1100上运行的服务异步交互程序1300;所述服务异步交互程序1300被所述处理器1100执行时实现如上述任一实施例的服务异步交互方法的步骤。
所述服务异步交互方法被处理器1100执行时,所实现的步骤参看上述实施例,在此不再赘述。
由于本实施例所提供的服务异步交互设备1000,包括了上述服务异步交互方法的全部技术特征,因此也具有上述服务异步交互方法的全部有益效果,在此不再赘述。
请参看图5,本发明可读介质一实施例,用于计算机读取,所述可读介质2000上存储有服务异步交互程序2100,所述服务异步交互程序2100被处理器执行时实现如上述任一实施例的服务异步交互方法的步骤。
所述服务异步交互方法被处理器执行时,所实现的步骤参看上述实施例,在此不再赘述。
由于本实施例所提供的可读介质,包括了上述服务异步交互方法的全部技术特征,因此也具有上述服务异步交互方法的全部有益效果,在此不再赘述。
请参看图6本发明服务异步交互***一实施例,所述服务异步交互***3000,包括处理器3100、存储器3200和储存于所述储存器3200上的用以实现多种服务的多个***。所述服务异步交互***3000还包括储存在所述储存器3200上的用于部署在多个所述***之间的消息队列集群3500。其中,本实施例中,多个***以其中的第一***3300和第二***3400为例来举例说明。处理器3100可以是一个也可以是多个,储存器3200也可以是一个或多个,同样整个服务异步交互***可以设置在一台服务器上,也可以设置在多台服务器上,例如第一***3300位于一台服务器上,第二***3400位于另一台服务器上等等。
所述第一***3300在被所述处理器3100执行时,实现如下步骤:
在接收到需要与第二***3400进行业务交互的业务指令时,根据所述业务指令执行相关业务操作。
例如,当用户在领券***内激活了领券业务,则领券***执行该领券的业务;而该领券的业务将用于订单***,用于在订单***内实施现金抵扣业务。则上述的领券业务需要与订单***进行业务交互。当领券***接收到执行领券业务指令时,其在本地执行该业务直至该业务结束,例如向用户展现领券动画,以及领券金额,以及领券成功的提示等等。
在所述业务操作成功时,调用消息通知与接收模块,来将所述业务操作的传递信息封装为通信消息,所述通信消息包括消息事务ID以及消息发送和接受协议。
继续以上述领券业务作为例来说明:当用户激活领券业务,领券***通过审核,并没有发现用户有任何不合规之处,则代表用户可以领用该优惠券。则领券***执行发放优惠券的步骤,此时判定业务操作成功。若用户不符合领取优惠券的要求,则拒绝向用户发放优惠券,此时判定业务操作失败。在领券***中,领券***可以独立的完成其功能,无需关心订单***是否能正确处理所接收到的优惠券消息,从而领券***功能较单一,结构较简单地实现了其本身的领券功能。进一步的,当用户获得优惠券时,该优惠券需要与订单***交流通讯,因此领券你***需要生成一个传递信息,通知订单***,该用户具有优惠券。
而该传递信息,通过通知与接收模块封装而成。具体的,该消息通知与接收模块的作用主要是生成一个唯一的消息事务ID,供全局的消息使用,以达到区分各个消息的目的;另外此模块会按照具体消息队列的接口语法,封装好消息的发送和接受的方法,对外提供服务。此模块可以作为所有***之间调用消息的共用模块。即该通知与接收模块可以是本***存在的,也可以是多个***共享使用的。
将所述通信消息发送至与第二***3400之间部署的消息队列,用以通过所述消息队列发送至第二***3400。
本实施例中,第一***3300既包括本身业务所需的业务代码,还在业务代码中集成了消息通知与接收模块。同理,第二***3400也既包括本身业务所需的业务代码,还在业务代码中集成了消息通知与接收模块。
所述第一***3300在被所述处理器执行时,还包括实现如下步骤:
接受来自第二***3400的通信消息;
根据所述通信消息进行处理,并且在处理完毕时将处理结果封装为包括消息发送和接受协议的返回消息;
将所述返回消息发送至所述消息队列,用以通过所述消息队列发送至第二***3400。
所述消息队列集群在被所述处理器执行时,实现如下步骤:
在接收到所述第一***3300的通信消息以及返回消息时,通过每个***之间业务交互所分别使用的一个指定消息队列,来发送所述通信消息以及返回消息。
本实施例中,为了***稳定以及便于维护,每个***之间业务的交互需要分别使用一个消息队列进行消息通信,不可共用一个消息队列。进一步的,队列的名字可以取得相对有意义,如商品***和订单***交互的队列可以叫shop_order_queue,从而达到后期容易维护的效果。
消息队列可以采用优选采用灰兔消息队列RabbitMq,RabbitMQ是当前流行的开源消息队列***,用erlang语言开发,因为erlang天生就是一门分布式语言,因此便于实现集群,以及分布式***。RabbitMQ是AMQP(高级消息队列协议)的标准实现,可复用的企业消息***。它遵循Mozilla Public License开源协议。相对于其他的消息队列,RabbitMq具有开源,稳定性好,以及符合AMQP标准,因此为优秀的消息队列选择。
Rabbit模式大概分为以下三种:单一模式、普通模式、镜像模式。其中,普通模式和镜像模式为集群模式。本实施例的RabbitMq集群则可以采用普通模式或镜像模式。
普通模式:默认的集群模式。
对于Queue来说,消息实体只存在于其中一个节点,A、B两个节点仅有相同的元数据,即队列结构。
当消息进入A节点的Queue中后,consumer从B节点拉取时,RabbitMQ会临时在A、B间进行消息传输,把A中的消息实体取出并经过B发送给consumer。优选的consumer尽量连接每一个节点,从中取消息。即对于同一个逻辑队列,要在多个节点建立物理Queue。否则无论consumer连A或B,出口总在A,会产生瓶颈。
但是,该模式存在一个问题就是当A节点故障后,B节点无法取到A节点中还未消费的消息实体。因此,优选的所述消息队列集群在被所述处理器执行时,还包括实现消息队列的持久化。在做了持久化后,则可以等A节点恢复后,再可被消费;从而保证数据的稳定性。
其中,持久化可以包括:将交换机置为可持久,将通道置为可持久,以及消息发送时设置可持久。当消息可持久化时,若MQ服务中断,再次启动消费者获取消息,消息依然能够恢复。
镜像模式:把需要的队列做成镜像队列,存在于多个节点,属于RabbitMQ的HA方案。
该模式解决了上述普通模式存在的问题,其实质和普通模式不同之处在于,消息实体会主动在镜像节点间同步,而不是在consumer取数据时临时拉取。
该模式由于需要较强的***性能以及较宽裕的网络带宽条件。因此该模式在对可靠性要求较高的场合中适用。
本实施例服务异步交互***的消息队列,采用RabbitMq集群方案,能够更高效和方便的实现多***之间的分布式布局。
本实施例所提供的服务异步交互***,通过设置功能单一的***,本地执行其业务,并且将传递信息通过封装并且通过消息队列传递至目标***,则是各自在本地进行本地的业务逻辑操作,再将结果通过消息队列的方式发送至另一***。相对于通过http实现***间的同步,本实施例实现了***之间的异步交互,能够增强***的稳定性;进一步的,通过RabbitMq可以让各个***的服务业务之间解耦,无需复杂的http调用接口验证。
优选的,所述第一***3300在被所述处理器3100执行时,还实现如下步骤:
在所述业务操作成功时,在预设消息记录表中记录所述业务操作的业务操作消息,其中,所述业务操作消息包括所述消息事务ID和推送状态。
在接收到来自第二***3400针对所述通信消息返回的返回消息时,根据所述返回消息更新所述业务操作消息的推送状态。
本实施例,通过记录业务操作消息至消息记录表中,则可以实现对每一业务操作进行追溯的效果。从而便于复查以及核对消息等后续工作。
优选的,所述第一***3300在被所述处理器3100执行时,还实现如下步骤:
定时轮询所述消息记录表,查询推送状态为失败的通信消息;定时的时间,可以是5秒,1分钟或者10分钟等等。
在查询到推送状态为失败的通信消息时,对所述推送状态为失败的通信消息进行重新发送。
本实施例,通过定时轮询所述消息记录表,则可以了解发送失败的消息,进一步重发这些消息,从而建立了错误补偿机制。错误补偿机制能够保证一些消息发送失败,能够进行重新发送,确保消息抵达到其他***的服务。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种服务异步交互方法,用于多***之间业务交互,其特征在于,所述服务异步交互方法包括如下步骤:
在接收到需要与另一***进行业务交互的业务指令时,根据所述业务指令执行本地相关业务操作;
在所述业务操作成功时,调用消息通知与接收模块,来将所述业务操作的传递信息封装为通信消息,所述通信消息包括消息事务ID以及消息发送和接受协议;
将所述通信消息发送至与所述另一***之间部署的消息队列,用以通过所述消息队列发送至所述另一***。
2.如权利要求1所述的服务异步交互方法,其特征在于,在所述业务操作成功时,所述服务异步交互方法还包括步骤:
在预设消息记录表中记录所述业务操作的业务操作消息,其中,所述业务操作消息包括所述消息事务ID和推送状态;
在接收到来自所述另一***针对所述通信消息返回的返回消息时,根据所述返回消息更新所述业务操作消息的推送状态。
3.如权利要求2所述的服务异步交互方法,其特征在于,所述服务异步交互方法还包括如下步骤:
定时轮询所述消息记录表,查询推送状态为失败的通信消息;
在查询到推送状态为失败的通信消息时,对所述推送状态为失败的通信消息进行重新发送。
4.如权利要求1所述的服务异步交互方法,其特征在于,所述消息队列采用兔子消息队列RabbitMQ。
5.一种服务异步交互设备,其特征在于,所述服务异步交互设备包括处理器、存储器和储存于所述储存器上的并可在处理器上运行的服务异步交互程序;所述服务异步交互程序被所述处理器执行时实现如权利要求1至4任一项所述的服务异步交互方法的步骤。
6.一种可读介质,用于计算机读取,其特征在于,所述可读介质上存储有服务异步交互程序,所述服务异步交互程序被处理器执行时实现如权利要求1至4中任一项所述的服务异步交互方法的步骤。
7.一种服务异步交互***,包括处理器、存储器和储存于所述储存器上的用以实现多种服务的多个***,其特征在于,所述服务异步交互***还包括储存在所述储存器上的用于部署在多个所述***之间的消息队列集群;
所述***在被所述处理器执行时,实现如下步骤:
在接收到需要与另一***进行业务交互的业务指令时,根据所述业务指令执行相关业务操作;
在所述业务操作成功时,调用消息通知与接收模块,来将所述业务操作的传递信息封装为通信消息,所述通信消息包括消息事务ID以及消息发送和接受协议;
将所述通信消息发送至与另一***之间部署的消息队列,用以通过所述消息队列发送至另一***;
所述***在被所述处理器执行时,还包括实现如下步骤:
接受来自另一***的通信消息;
根据所述通信消息进行处理,并且在处理完毕时将处理结果封装为包括消息发送和接受协议的返回消息;
将所述返回消息发送至所述消息队列,用以通过所述消息队列发送至另一***;
所述消息队列集群在被所述处理器执行时,实现如下步骤:
在接收到所述***的通信消息以及返回消息时,通过每个所述***之间业务交互所分别使用的一个指定消息队列来发送所述通信消息以及返回消息。
8.如权利要求7所述的服务异步交互***,其特征在于,所述消息队列集群在被所述处理器执行时,还包括实现消息队列的持久化。
9.如权利要求7所述的服务异步交互***,其特征在于,所述一***在被所述处理器执行时,还实现如下步骤:
在所述业务操作成功时,在预设消息记录表中记录所述业务操作的业务操作消息,其中,所述业务操作消息包括所述消息事务ID和推送状态;
在接收到来自另一***针对所述通信消息返回的返回消息时,根据所述返回消息更新所述业务操作消息的推送状态。
10.如权利要求7所述的服务异步交互***,其特征在于,所述一***在被所述处理器执行时,还实现如下步骤:
定时轮询所述消息记录表,查询推送状态为失败的通信消息;
在查询到推送状态为失败的通信消息时,对所述推送状态为失败的通信消息进行重新发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710366759.5A CN107222530A (zh) | 2017-05-23 | 2017-05-23 | 服务异步交互方法、设备、***和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710366759.5A CN107222530A (zh) | 2017-05-23 | 2017-05-23 | 服务异步交互方法、设备、***和可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107222530A true CN107222530A (zh) | 2017-09-29 |
Family
ID=59944400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710366759.5A Pending CN107222530A (zh) | 2017-05-23 | 2017-05-23 | 服务异步交互方法、设备、***和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107222530A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967595A (zh) * | 2017-10-30 | 2018-04-27 | 北京大数元科技发展有限公司 | 一种支持异步、同步计算的消息提醒方法及*** |
CN108924041A (zh) * | 2018-08-03 | 2018-11-30 | 北京捷易迅信息技术有限公司 | 一种即时通讯中消息高效可靠发送方法 |
CN109144746A (zh) * | 2018-07-19 | 2019-01-04 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种gft训练***的消息异步分发***及方法 |
CN109669791A (zh) * | 2018-12-22 | 2019-04-23 | 网宿科技股份有限公司 | 交互方法、服务器及计算机可读存储介质 |
CN110417913A (zh) * | 2019-08-09 | 2019-11-05 | 浪潮云信息技术有限公司 | 一种基于Rabbit MQ的云服务器异步创建方法 |
CN111049730A (zh) * | 2019-12-05 | 2020-04-21 | 紫光云(南京)数字技术有限公司 | RabbitMQ消息重传及消费方幂等性解决方法 |
CN111211973A (zh) * | 2020-01-15 | 2020-05-29 | 百望股份有限公司 | ***领域的消息处理方法、装置及存储介质 |
CN111897825A (zh) * | 2020-06-01 | 2020-11-06 | 中国人民财产保险股份有限公司 | 分布式事务处理方法和装置 |
CN112215637A (zh) * | 2020-09-21 | 2021-01-12 | 建信金融科技有限责任公司 | 虚拟资产的处理方法、装置、电子设备和存储介质 |
CN113179228A (zh) * | 2021-04-15 | 2021-07-27 | 浪潮思科网络科技有限公司 | 一种提高交换机堆叠可靠性的方法、装置、设备及介质 |
CN113742043A (zh) * | 2021-08-31 | 2021-12-03 | 中企云链(北京)金融信息服务有限公司 | 一种服务器后端任务异步拆分方法 |
CN113992643A (zh) * | 2021-10-28 | 2022-01-28 | 中国银行股份有限公司 | 异步消息通知方法、***、移动终端app、异步通知*** |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430562B1 (en) * | 1999-03-01 | 2002-08-06 | Electronic Data Systems Corporation | Integrated resource management system and method |
CN1744046A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 实时操作***环境下多任务应用软件模块的管理方法 |
WO2007027679A2 (en) * | 2005-08-29 | 2007-03-08 | Rhysome, Inc. | Method and system for reliable message delivery |
US20110258638A1 (en) * | 2010-04-20 | 2011-10-20 | Davies Paul J | Distributed processing of binary objects via message queues including a failover safeguard |
CN102523109A (zh) * | 2011-12-08 | 2012-06-27 | 杭州华三通信技术有限公司 | 资源状态更新方法、管理客户端及服务器 |
CN103209115A (zh) * | 2013-04-07 | 2013-07-17 | 北京京东世纪贸易有限公司 | 一种消息发送*** |
CN105159657A (zh) * | 2015-06-12 | 2015-12-16 | 北京京东尚科信息技术有限公司 | 处理消息的方法和*** |
CN105227662A (zh) * | 2015-09-30 | 2016-01-06 | 努比亚技术有限公司 | 消息处理方法、装置和*** |
CN105740083A (zh) * | 2016-01-28 | 2016-07-06 | 努比亚技术有限公司 | 消息处理方法、装置及*** |
CN106385382A (zh) * | 2016-09-05 | 2017-02-08 | 努比亚技术有限公司 | 一种数据同步方法、装置和*** |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架***及其实现方法 |
-
2017
- 2017-05-23 CN CN201710366759.5A patent/CN107222530A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430562B1 (en) * | 1999-03-01 | 2002-08-06 | Electronic Data Systems Corporation | Integrated resource management system and method |
CN1744046A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 实时操作***环境下多任务应用软件模块的管理方法 |
WO2007027679A2 (en) * | 2005-08-29 | 2007-03-08 | Rhysome, Inc. | Method and system for reliable message delivery |
US20110258638A1 (en) * | 2010-04-20 | 2011-10-20 | Davies Paul J | Distributed processing of binary objects via message queues including a failover safeguard |
CN102523109A (zh) * | 2011-12-08 | 2012-06-27 | 杭州华三通信技术有限公司 | 资源状态更新方法、管理客户端及服务器 |
CN103209115A (zh) * | 2013-04-07 | 2013-07-17 | 北京京东世纪贸易有限公司 | 一种消息发送*** |
CN105159657A (zh) * | 2015-06-12 | 2015-12-16 | 北京京东尚科信息技术有限公司 | 处理消息的方法和*** |
CN105227662A (zh) * | 2015-09-30 | 2016-01-06 | 努比亚技术有限公司 | 消息处理方法、装置和*** |
CN105740083A (zh) * | 2016-01-28 | 2016-07-06 | 努比亚技术有限公司 | 消息处理方法、装置及*** |
CN106385382A (zh) * | 2016-09-05 | 2017-02-08 | 努比亚技术有限公司 | 一种数据同步方法、装置和*** |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架***及其实现方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967595B (zh) * | 2017-10-30 | 2021-06-29 | 北京大数元科技发展有限公司 | 一种支持异步、同步计算的消息提醒方法及*** |
CN107967595A (zh) * | 2017-10-30 | 2018-04-27 | 北京大数元科技发展有限公司 | 一种支持异步、同步计算的消息提醒方法及*** |
CN109144746A (zh) * | 2018-07-19 | 2019-01-04 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种gft训练***的消息异步分发***及方法 |
CN108924041A (zh) * | 2018-08-03 | 2018-11-30 | 北京捷易迅信息技术有限公司 | 一种即时通讯中消息高效可靠发送方法 |
CN109669791A (zh) * | 2018-12-22 | 2019-04-23 | 网宿科技股份有限公司 | 交互方法、服务器及计算机可读存储介质 |
CN110417913A (zh) * | 2019-08-09 | 2019-11-05 | 浪潮云信息技术有限公司 | 一种基于Rabbit MQ的云服务器异步创建方法 |
CN111049730A (zh) * | 2019-12-05 | 2020-04-21 | 紫光云(南京)数字技术有限公司 | RabbitMQ消息重传及消费方幂等性解决方法 |
CN111211973A (zh) * | 2020-01-15 | 2020-05-29 | 百望股份有限公司 | ***领域的消息处理方法、装置及存储介质 |
CN111897825A (zh) * | 2020-06-01 | 2020-11-06 | 中国人民财产保险股份有限公司 | 分布式事务处理方法和装置 |
CN112215637A (zh) * | 2020-09-21 | 2021-01-12 | 建信金融科技有限责任公司 | 虚拟资产的处理方法、装置、电子设备和存储介质 |
CN113179228A (zh) * | 2021-04-15 | 2021-07-27 | 浪潮思科网络科技有限公司 | 一种提高交换机堆叠可靠性的方法、装置、设备及介质 |
CN113179228B (zh) * | 2021-04-15 | 2022-12-23 | 浪潮思科网络科技有限公司 | 一种提高交换机堆叠可靠性的方法、装置、设备及介质 |
CN113742043A (zh) * | 2021-08-31 | 2021-12-03 | 中企云链(北京)金融信息服务有限公司 | 一种服务器后端任务异步拆分方法 |
CN113742043B (zh) * | 2021-08-31 | 2024-04-26 | 中企云链股份有限公司 | 一种服务器后端任务异步拆分方法 |
CN113992643A (zh) * | 2021-10-28 | 2022-01-28 | 中国银行股份有限公司 | 异步消息通知方法、***、移动终端app、异步通知*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107222530A (zh) | 服务异步交互方法、设备、***和可读介质 | |
CN111866191B (zh) | 消息事件的分发方法、分发平台、***及服务器 | |
CN1533117B (zh) | 通过可定制通信信道和程序设计模型对消息的发送和接收 | |
EP1553723B1 (en) | Method and system for modelling a communications network | |
KR101863398B1 (ko) | 다중-서버 예약 시스템 상의 동기화 메커니즘 시스템 및 방법 | |
CN100518044C (zh) | 消息的最小划分 | |
CA2827265C (en) | Method and system for centralized reservation context management on multi-server reservation system | |
US20130301644A1 (en) | System and Method for Message Sequencing in a Broadband Gateway | |
CN107317839A (zh) | 物联网消息处理方法、装置及*** | |
US20110321011A1 (en) | Application server with a protocol-neutral programming model for developing telecommunications-based applications | |
CN101854348B (zh) | Soa在******访问核心支撑***的实现方法 | |
CN111339145A (zh) | 流程整合方法和平台、计算机可读存储介质 | |
CN108255614A (zh) | 一种基于微服务架构的接口调用***及方法 | |
CN110266815B (zh) | 基于区块链的微服务网络*** | |
CN109327380A (zh) | 公众号管理方法、装置、计算机设备及存储介质 | |
CA2843284C (en) | Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application | |
CN110287266A (zh) | 一种分布式***及数据处理方法 | |
CN1973282A (zh) | 用于管理针对集群配置的改变的***和方法 | |
CN106027534A (zh) | 一种基于Netty实现金融报文处理*** | |
CN110430142A (zh) | 用于控制流量的方法和装置 | |
CN112351106B (zh) | 一种含事件网格的服务网格平台及其通信方法 | |
CN201854301U (zh) | 在手机设备上进行数据共享的中间件*** | |
CN116828035A (zh) | 一种基于云计算的数据集成*** | |
US9438693B2 (en) | System and method for message retry in a broadband gateway | |
CN117014528A (zh) | 消息处理方法、电子设备、存储介质及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170929 |