CN113452602B - 消息传输方法、装置、电子设备和存储介质 - Google Patents
消息传输方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113452602B CN113452602B CN202110688321.5A CN202110688321A CN113452602B CN 113452602 B CN113452602 B CN 113452602B CN 202110688321 A CN202110688321 A CN 202110688321A CN 113452602 B CN113452602 B CN 113452602B
- Authority
- CN
- China
- Prior art keywords
- message
- terminal device
- memory
- unique
- deletion
- 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.)
- Active
Links
Images
Classifications
-
- 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/23—Reliability checks, e.g. acknowledgments or fault reporting
-
- 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/131—Protocols for games, networked simulations or virtual reality
Abstract
本发明实施例提供了一种消息传输方法、装置、电子设备和存储介质,应用于第一终端设备,所述方法包括:生成具有唯一消息标识的消息;将所述唯一消息标识写入所述第一终端设备的内存中;向第二终端设备发送所述消息,所述第二终端设备用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;在所述第一终端设备的内存中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述消息;所述第二终端设备用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息。本发明实施例保证消息的可靠传输,同时降低了传输成本。
Description
技术领域
本发明实施例涉及互联网技术领域,特别是涉及一种消息传输方法、一种消息传输装置、电子设备和存储介质。
背景技术
消息的可靠传输,是指可靠的保证接收端能够正常接收到的消息。在目前消息的可靠传输方案中,是通过消息队列来实现,具体地,设置有专门的消息队列进程,用于将消息写入到消息队列,其中,在消息队列中会将消息长时间保存,并且不断重试发送,以保证接收端能够接收到的消息。
然而,虽然目前消息的可靠传输方案适用于很多互联网领域中,但是并不适用某些互联网领域,例如游戏领域,这是因为游戏领域如果引入消息队列会增加游戏进程的拓扑的复杂度,进而增加传输消息时的处理成本。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种消息传输方法和相应的一种消息传输装置、电子设备、存储介质。
为了解决上述问题,本发明实施例公开了一种消息传输方法,应用于第一终端设备,所述方法包括:
生成具有唯一消息标识的消息;
将所述唯一消息标识写入所述第一终端设备的内存中;
向第二终端设备发送所述消息,所述第二终端设备用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;
在所述第一终端设备的内存中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述消息;所述第二终端设备用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息。
可选地,所述第一终端设备的内存中包括投递队列和删除队列,所述第二终端设备的内存中包括已处理队列,所述已处理队列保存有所述唯一消息标识,所述将所述唯一消息标识写入第一终端设备的内存中,包括:
将所述唯一消息标识写入所述投递队列中;
在所述向第二终端设备发送所述消息之后,所述方法还包括:
在所述第一终端设备接收到所述处理成功消息时,将所述唯一消息标识写入所述删除队列中,并向所述第二终端设备发送针对所述消息的删除请求;所述第二终端设备用于在接收到所述删除请求时,若所述已处理队列中保存有所述唯一消息标识,则删除所述已处理队列中的所述唯一消息标识,并在删除成功后生成删除成功消息反馈至所述第一终端设备;
在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识。
可选地,所述向所述第二终端设备重新发送所述消息,包括:
在所述投递队列中保存有所述唯一消息标识时,定时重新向所述第二终端设备发送所述消息,或者,响应与所述消息关联的业务触发操作,向所述第二终端设备发送具有相同的所述唯一消息标识的所述消息。
可选地,在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识之前,所述方法还包括:
在所述删除队列中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述删除请求;所述第二终端设备用于若已经删除所述已处理队列中的所述唯一消息标识,则向所述第一终端设备反馈所述删除成功消息。
可选地,适用于游戏领域的已有的存储模型中;所述存储模型为所述第一终端设备的内存中的数据和所述第二终端设备的内存中的数据定期存储到指定数据库中。
本发明实施例还提供了一种消息传输方法,应用于第二终端设备,所述方法包括:
接收第一终端设备发送的具有唯一消息标识的消息;所述第一终端设备用于在生成所述消息时,将所述唯一消息标识写入所述第一终端设备的内存中;
将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;
在所述第一终端设备的内存中保存有所述唯一消息标识时,接收到所述第一终端设备重新发送的所述消息;
若在其内存中保存有所述唯一消息标识,则禁止处理重新发送的所述消息。
本发明实施例还提供了一种消息传输系统,包括第一终端设备和第二终端设备,其中:
所述第一终端设备,用于生成具有唯一消息标识的消息,将所述唯一消息标识写入所述第一终端设备的内存中,并向第二终端设备发送所述消息;
所述第二终端设备,用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;
所述第一终端设备,还用于在未接收到所述处理成功消息时,向所述第二终端设备重新发送所述消息;
所述第二终端设备,还用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息。
本发明实施例还提供了一种消息传输装置,应用于第一终端设备,所述装置包括:
消息生成模块,用于生成具有唯一消息标识的消息;
消息标识写入模块,用于将所述唯一消息标识写入所述第一终端设备的内存中;
消息发送模块,用于向第二终端设备发送所述消息,所述第二终端设备用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;
消息重试模块,用于在所述第一终端设备的内存中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述消息;所述第二终端设备用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息。
可选地,所述第一终端设备的内存中包括投递队列和删除队列,所述第二终端设备的内存中包括已处理队列,所述已处理队列保存有所述唯一消息标识,所述消息标识写入模块,用于将所述唯一消息标识写入所述投递队列中;所述装置还包括:删除模块,用于在所述第一终端设备接收到所述处理成功消息时,将所述唯一消息标识写入所述删除队列中,并向所述第二终端设备发送针对所述消息的删除请求;所述第二终端设备用于在接收到所述删除请求时,若所述已处理队列中保存有所述唯一消息标识,则删除所述已处理队列中的所述唯一消息标识,并在删除成功后生成删除成功消息反馈至所述第一终端设备;在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识。
可选地,所述消息重试模块,用于在所述投递队列中保存有所述唯一消息标识时,定时重新向所述第二终端设备发送所述消息,或者,响应与所述消息关联的业务触发操作,向所述第二终端设备发送具有相同的所述唯一消息标识的所述消息。
可选地,所述装置还包括:删除重试模块,用于在所述删除队列中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述删除请求;所述第二终端设备用于若已经删除所述已处理队列中的所述唯一消息标识,则向所述第一终端设备反馈所述删除成功消息。
可选地,适用于游戏领域的已有的存储模型中;所述存储模型为所述第一终端设备的内存中的数据和所述第二终端设备的内存中的数据定期存储到指定数据库中。
本发明实施例还提供了一种消息传输装置,应用于第二终端设备,所述装置包括:
消息接收模块,用于接收第一终端设备发送的具有唯一消息标识的消息;所述第一终端设备用于在生成所述消息时,将所述唯一消息标识写入所述第一终端设备的内存中;
消息处理模块,用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;
重试消息接收模块,用于在所述第一终端设备的内存中保存有所述唯一消息标识时,接收到所述第一终端设备重新发送的所述消息;
禁止处理模块,用于若在其内存中保存有所述唯一消息标识,则禁止处理重新发送的所述消息。
本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的消息传输方法的步骤。
本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的消息传输方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,生成具有唯一消息标识的消息,并将唯一消息标识写入第一终端设备的内存中,然后向第二终端设备发送消息,第二终端设备则将唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对消息处理成功后生成处理成功消息反馈至第一终端设备,其中,在第一终端设备未接收到处理成功消息时,向第二终端设备重新发送消息,而第二终端设备若在其内存中保存有唯一消息标识,则禁止处理第一终端设备重新发送的消息。本发明实施例将消息的唯一消息标识写入到第一终端设备的内存中,并且内存中的唯一消息标识未删除时,向第二终端设备重新发送消息,直至第二终端设备反馈了处理成功消息,从而保证消息的可靠传输,由于无需额外的数据库存储或者消息队列来存储消息,因此不会增加游戏进程的拓扑的复杂度,降低了处理成本,同时也避免了直接将消息写入数据库这种存在性能瓶颈的方案。此外,第二终端设备在唯一消息标识在其内存时,若接收到第一终端设备重新发送的消息,则禁止处理该消息,从而保证相同的消息不会被多次处理,保证了消息的幂等。
附图说明
图1是本发明的一种消息传输方法实施例的步骤流程图;
图2是本发明的一种消息传输的整体示意图;
图3是本发明的另一种消息传输方法实施例的步骤流程图;
图4是本发明的一种消息传输系统实施例的结构框图;
图5是本发明的一种消息传输装置实施例的结构框图
图6是本发明的另一种消息传输装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在游戏领域,玩家非常重视操作时的时延,因此游戏的存储模型采用的是从数据库加载到内存并定期存盘的方式,玩家在登录游戏的时候,玩家的数据会从数据库加载到内存,此后一些操作(例如玩家自己的操作,其它玩家的操作,系统的一些操作,比如系统会定期的发送一些奖励给玩家,这个操作可以泛指所有对玩家的数据的改动)都会作用在内存的数据,并定期写入数据库,例如,可以每隔5分钟写入数据库,这与目前互联网领域中将所有的数据在数据库写入的方式不同。
其中,在游戏领域中消息的可靠传输方案,是通过将消息写入数据库的方式。具体的方法是,先将消息写入数据库,然后发送通知让对应的终端设备进行处理,并在消息处理完成后,将消息在数据库中删除以避免消息堆积造成的数据库膨胀。一般情况下,认为服务器集群的状态相对健康,因此在数据库写入消息大多是成功的,但是跨服通信可能由于服务器宕机或重启而失败。此外,这一机制需要接收端进行幂等处理,但是游戏中并不是所有业务都是幂等的,所以需要一个能够实现幂等的机制。其中,幂等是指的接收端多次接收消息但不会重复处理,例如,发送端发送消息,按照写入数据库的方式,则在重试发送时如果在接收端接收到2次消息,接收端就会对接收到的2次消息处理2次,按照幂等的机制,在重试发送时如果在接收端接收到2次消息,接收端仅会对接收到的2次消息处理1次。
在游戏领域中,需要保证可靠传输的消息很多,比如比赛结算发放奖励的消息,发放奖励的时候通常需要发送给多个不同的玩家,玩家之间处于不同进程,涉及到网络通信,如果网络通信失败则可能导致消息发送失败,使得消息不能被可靠传输。此外,还有玩家可以通过完成任务给公会增加贡献,如果玩家和公会处于不同进程,就需要保证这一消息可靠的发送给公会,并被公会处理。
目前在游戏领域中,保证消息的可靠传输通常会采用数据库存储的方式,而不是采用消息队列的方式,但是采用数据库存储的方式存在一些异常情况以及性能上的问题,所以如何相对低成本的利用好游戏领域中已有的存储模型的特点,实现消息的可靠传输是一个重要的问题。
综上,游戏领域中的消息的可靠传输方案的问题在于,需要先将消息写入数据库,直接写入数据库会有性能的瓶颈,限制了可靠消息的传输频率,一旦游戏中需要发送的消息多起来,那么就需要频繁读写数据库,发送一次消息需要进行1次插入的操作和1次删除的操作,处理成本比较高。而且将消息写入数据库的方式虽然在游戏领域中认为是相对可靠的,但是操作数据库的失败情况也是存在的,在这种情况下消息缺乏了重试写入数据库的机制,使得消息的传输变得不可靠。
针对上述问题,本发明实施例提出一种消息传输方法,能够适配游戏领域的存储模型实现消息的可靠传输,并且能够较低成本的被使用,无需在游戏领域的存储模型中进行额外的数据库存储或者消息队列的存储,通过将消息存储在玩家的终端设备的内存中,通过跨服重试的方式进行通信,保证消息可靠的被其他的终端设备,例如其他玩家的终端设备或者服务器处理,同时还可以保证消息的幂等性。
本发明实施例中的消息传输方法可以运行于终端设备或者是服务器。其中,终端设备可以为本地终端设备。当消息传输方法运行于为服务器时,可以为云游戏。
在一可选的实施方式中,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,消息传输方法的储存与运行是在云游戏服务器上完成的,云游戏客户端的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,云游戏客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行游戏数据处理的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作云游戏客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回云游戏客户端,最后,通过云游戏客户端进行解码并输出游戏画面。
在一可选的实施方式中,终端设备可以为本地终端设备。本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
参照图1,示出了本发明的一种消息传输方法实施例的步骤流程图,应用于第一终端设备,该方法具体可以包括如下步骤:
步骤101、生成具有唯一消息标识的消息。
本发明实施例可以适用于游戏领域的已有的存储模型中,存储模型的特点是基于定期存盘的机制实现,具体地,定期存盘是指的数据直接作用在内存,并通过定期回写到数据库实现持久化。也即是说,第一终端设备的内存中的数据和第二终端设备的内存中的数据,将定期存储到指定数据库中。
其中,终端设备是指可以进行交互的对象对应的终端设备,可以进行交互的对象也称为实体(entity),玩家是一个实体,如果玩家属于某个公会的话,对应的公会也是一个实体,实体本身有自己的实体标识(entity_id)。在本发明实施例中,第一终端设备是发送消息的终端设备,第二终端设备是接收消息的终端设备,当然,第一终端设备和第二终端设备之间可以互相转换,本发明实施例对此无需加以限制。
其中,唯一消息标识是用于唯一标记出消息的编码或者名称,唯一消息标识可由实体标识和消息索引组成(index)。唯一消息标识可以通过游戏内实体的一个自增的消息ID生成器获得,也可以通过ObjectID方案生成,其中,ObjectID方案是一个分布式的id的生成的方案,可以通过特定的策略保证终端设备不会生成相同的唯一消息标识。
具体地,为了保证消息能够可靠传输,每条消息都需要有一个唯一消息标识将该消息标记出来,在游戏进程中生成消息时,同时生成消息对应的唯一消息标识,唯一消息标识是在实体本身有自己的实体标识的基础上,通过一个自增的消息索引生成,因此只要是某个实体发起的消息,都可以通过entity_id@index的方式来对该消息进行标识。
举例来说,假设发送消息的实体为玩家A,通过消息ID生成器自增生成的消息索引为003,则该消息的唯一消息标识为A003。
步骤102、将所述唯一消息标识写入所述第一终端设备的内存中。
具体地,在第一终端设备发送消息至第二终端设备时,预先生成该消息对应的唯一消息标识,并在消息的消息体内保存消息的具体内容(例如奖励的内容),然后将唯一消息标识写入第一终端设备的内存中。
举例来说,当玩家A要向玩家B发送消息时,生成一条消息的唯一消息标识entity_id@index,并在消息体内保存消息的具体内容,接下来会将这条消息写入玩家A的终端设备的内存中。
步骤103、向第二终端设备发送所述消息,所述第二终端设备用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备。
具体地,在第一终端设备中的内存中写入唯一消息标识后,将消息投递至第二终端设备,而第二终端设备在接收到消息后,会将该消息的唯一消息标识保存到其内存中,随后再对消息进行处理,举例来说,如果是发放奖励的消息,则发放对应的奖励。在第二终端设备对消息处理完成后,可以生成处理成功消息并反馈至第一终端设备,以告知第一终端设备消息已经处理完成,无需重新发送。
步骤104、在所述第一终端设备的内存中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述消息;所述第二终端设备用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息。
在实际应用中,由于网络或者一些超时的原因,会导致第二终端设备并没有接收到第一终端设备发送的消息,为了保证消息能够被可靠传输,因此第一终端设备会不断尝试向第二终端设备发送该消息,直至第一终端设备接收到第二终端设备反馈的处理成功消息。当然,也有可能是第一终端设备由于网络或者一些超时的原因导致没有接收到处理成功消息,因此如果第二终端设备在内存中仍然保存有唯一消息标识时,将禁止处理唯一消息标识对应的消息,从而避免相同的消息被处理2次或者以上,保证了消息的幂等。
综上可知,玩家A的消息发送失败可能有两种情况,一种是玩家B已经成功处理了,并且在已处理消息队列中对消息的唯一消息标识进行了记录,因此这种情况下玩家B在接收到消息的时候,会先去查看消息的唯一消息标识是否在已处理消息队列中,如果在的话直接返回处理成功消息,另外一种情况是玩家B并没有接收到消息,因此也没有将唯一消息标识写入已处理消息中也还没有处理,这时玩家B是可以安全的处理的,不会出现幂等的问题。
在上述消息传输方法中,生成具有唯一消息标识的消息,并将唯一消息标识写入第一终端设备的内存中,然后向第二终端设备发送消息,第二终端设备则将唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对消息处理成功后生成处理成功消息反馈至第一终端设备,其中,在第一终端设备未接收到处理成功消息时,向第二终端设备重新发送消息,而第二终端设备若在其内存中保存有唯一消息标识,则禁止处理第一终端设备重新发送的消息。本发明实施例将消息的唯一消息标识写入到第一终端设备的内存中,并且内存中的唯一消息标识未删除时,向第二终端设备重新发送消息,直至第二终端设备反馈了处理成功消息,从而保证消息的可靠传输,由于无需额外的数据库存储或者消息队列的存储,不会增加游戏进程的拓扑的复杂度,降低了处理成本,同时也避免了直接将消息写入数据库这种存在性能瓶颈的方案。此外,第二终端设备在唯一消息标识在其内存时,若接收到第一终端设备重新发送的消息,将禁止处理该消息,从而保证相同的消息不会被多次处理,保证了消息的幂等。
在一示例性实施例中,所述第一终端设备的内存中包括投递队列和删除队列,所述第二终端设备的内存中包括已处理队列,所述已处理队列保存有所述唯一消息标识,所述步骤102、将所述唯一消息标识写入第一终端设备的内存中,包括:
将所述唯一消息标识写入所述投递队列中;
在所述步骤103、向第二终端设备发送所述消息之后,所述方法还包括:
在所述第一终端设备接收到所述处理成功消息时,将所述唯一消息标识写入所述删除队列中,并向所述第二终端设备发送针对所述消息的删除请求;所述第二终端设备用于在接收到所述删除请求时,若所述已处理队列中保存有所述唯一消息标识,则删除所述已处理队列中的所述唯一消息标识,并在删除成功后生成删除成功消息反馈至所述第一终端设备;
在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识。
在实际应用中,游戏领域中业内认为内存的操作是原子的,比如在使用道具进而获得物品这一场景,可以认为这种单个实体的内存中不会出现穿插处理,比如不会在使用道具和获得物品的中间穿插一些别的操作,因此不用担心玩家快速的使用道具的时候出现使用1次道具获得2个物品的情况。
举例来说,当玩家A要向玩家B发送消息时,会先生成一条消息的唯一消息标识entity_id@index,并在消息体内保存消息的具体内容,接下来会把这条消息写入玩家A的内存中的投递队列(delivery_queue)来表示。接下来,玩家A会尝试去向玩家B投递该消息。玩家B在接收到消息之后,会在内存中进行两个操作:(1)将消息的唯一消息标识entity_id@index添加到已处理消息列表内;(2)处理消息。需要注意的是,这里(1)(2)是内存中的操作保证原子性,因此即使这条消息玩家B已经处理了,但是由于网络或者一些超时的原因导致玩家A没有接收到,玩家A重新发送的时候玩家B会发现这条消息已经被处理了,因此不会重复处理,直接返回处理成功消息。以上被称为投递阶段,具体可以参照图2。
为了避免已处理消息队列的消息积压,当玩家A收到玩家B的处理成功消息后,会将消息从投递队列移到删除队列(delete_queue),玩家A需要发送删除请求到玩家B,以告诉玩家B消息已经被处理,无需继续保存,玩家B在收到后删除请求会在已处理消息队列中删除掉这条消息的唯一消息标识,并返回删除成功消息给A玩家,玩家A此时可以将消息从删除队列中剔除。以上被称为删除阶段,具体可以参照图2。
综上,在删除阶段的删除请求发送失败有两种情况,一种是玩家B正常接收到删除请求,并按照删除请求删除消息的情况,由于消息已经被成功删除,所以玩家B在重新接收到删除请求后可以直接返回删除成功消息,一种是玩家B没有接收到删除消息,因此消息还没有被成功删除,所以玩家B在重新接收到删除请求后可以按照删除请求删除消息。
在具体实施本发明实施例时,删除阶段并非是必须的,游戏中一些消息本身是幂等消息,在这种情况下,玩家B处理消息的时候可以根据业务自身的特点做幂等,这种情况下消息的唯一消息标识无需添加到已处理消息队列中,当然此时玩家A也不需要发送删除请求。
在一示例性实施例中,所述步骤104、向所述第二终端设备重新发送所述消息,包括:
在所述投递队列中保存有所述唯一消息标识时,定时重新向所述第二终端设备发送所述消息,或者,响应与所述消息关联的业务触发操作,向所述第二终端设备发送具有相同的所述唯一消息标识的所述消息。
具体地,第一终端设备会不断地尝试将消息继续发送至第二终端设备,在本发明实施例中,可以根据业务的紧迫性设置消息的触发机制。具体地,本发明实施例可以有2种重试机制:
(1)是玩家A身上会有一个定时器,定时触发将消息发送出去。
(2)业务请求尝试去触发,比如玩家完成任务给公会增加积分,这一消息失败的时候会积累在玩家的投递队列中,业务可以根据需要比如在请求任务详情的时候触发检查,看看投递队列内是否有未发送的消息,这一方式可以免除定时器的存在。
举例说明,比如玩家可以通过完成任务给自己的公会增加积分,增加积分的所发送的消息可能会失败,那么这个消息其实可以在玩家打开公会界面的时候进行重试,这种重试策略是通过玩家的操作来完成的。而定时器的策略则是玩家这次增加的积分没有加上去,等到定时触发(比如5分钟后)再把增加公会的积分的消息重新发送出去。
其中,上述的应用场景可以只需要保证发送消息的玩家知道消息已经被处理即可,这是因为很多时候玩家发送的消息即使失败了,即没有被处理,只有玩家会感知到,那么只需要保证玩家不会发现错误就行了,举例来说,玩家A完成任务增加了公会的积分,那么玩家A打开公会界面的时候肯定是想看到已经增加到哪些积分了,但是如果没有增加的话,如果玩家A比较看重积分或比较敏感,那么游戏体验会比较差,因此在本发明实施例中,会玩家A打开界面的时候触发投递队列的检查,将消息重新发送出去,使得再看公会的积分,这样对于玩家A而言就不会感知到错误。
在一示例性实施例中,在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识之前,所述方法还包括:
在所述删除队列中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述删除请求;所述第二终端设备用于若已经删除所述已处理队列中的所述唯一消息标识,则向所述第一终端设备反馈所述删除成功消息。
具体地,即使玩家B的删除成功消息由于网络等原因导致玩家A没有成功收到,A将还会重新发送删除请求,玩家B在收到删除请求后会发现已处理消息队列里已经没有这条消息的唯一消息标识了,此时就可以直接回复删除成功消息,而无需去已处理消息队列中删除唯一消息标识。以上也是属于删除阶段,具体可以参照图2。
本发明实施例充分利用游戏录音的存储模型的特点,游戏中内存的修改比直接操作数据库可靠,通过先将消息写入内存中的投递队列,变相的实现了消息的落地,比起直接落地数据库相对更为可靠,也避免了直接落地数据库的性能瓶颈。这是因为现在大多数游戏都认为落地数据库是一个可靠的操作,所以在发送可靠消息的时候是没有做任何重试的操作的,比如A->B发送奖励,数据库的方案会把奖励记在数据库里,但是这里可能会失败,失败的时候没有重试,所以奖励直接就丢失了。而这种基于内存的策略,是依靠内存的数据定期存盘实现的,这种定期存盘其实就是一种重试,而且游戏的定期存盘策略里,如果存盘失败了,那么不会把玩家的数据从内存了剔除。
此外,本发明实施例通过已处理消息队列来帮助消息的接收方实现幂等,规避了消息的重复处理,而且这一机制是可选的,对于本身能够实现幂等的消息无需进入删除阶段,在没有故障的情况下只需1次RPC(Remote Procedure Call,远程过程调用)即可完成可靠消息的发送。
由于本发明实施例是直接利用游戏领域的存储模型,无需引入额外的数据库操作,消息队列进程,游戏的拓扑没有变得复杂,是相对简单轻量的可靠消息的框架。
参照图3,示出了本发明的一种消息传输方法实施例的步骤流程图,应用于第二终端设备,该方法具体可以包括如下步骤:
步骤301、接收第一终端设备发送的具有唯一消息标识的消息;所述第一终端设备用于在生成所述消息时,将所述唯一消息标识写入所述第一终端设备的内存中;
步骤302、将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;
步骤303、在所述第一终端设备的内存中保存有所述唯一消息标识时,接收到所述第一终端设备重新发送的所述消息;
步骤304、若在其内存中保存有所述唯一消息标识,则禁止处理重新发送的所述消息。
在本发明实施例中,第二终端设备在接收到第一终端设备发送的具有唯一消息标识的消息,会将唯一消息标识写入至其内存中,并对该消息进行处理,当然,第一终端设备在发送消息时也会将唯一消息标识写入至其内存中。
在第一终端设备的内存保存有唯一消息标识时,将按照预设时间间隔向第二终端设备重新发送消息,在第二终端设备未向第一终端设备返回处理成功消息时,第一终端设备内存中的唯一消息标识会继续保存,在第二终端设备向第一终端设备返回处理成功消息时,第一终端设备内存中的唯一消息标识被删除,此时第一终端设备将不会向第二终端设备重新发送消息。
对于第一终端设备重新发送的消息,在第二终端设备在其内存中保存有唯一消息标识时,不会对重新发送的消息进行处理,避免了对相同的消息进行了2次或者以上的处理,保证了消息的幂等。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种消息传输系统实施例的结构框图,包括第一终端设备401和第二终端设备402,其中:
所述第一终端设备401,用于生成具有唯一消息标识的消息,将所述唯一消息标识写入所述第一终端设备的内存中,并向第二终端设备发送所述消息;
所述第二终端设备402,用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;
所述第一终端设备401,还用于在未接收到所述处理成功消息时,向所述第二终端设备重新发送所述消息;
所述第二终端设备402,还用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图5,示出了本发明的一种消息传输装置实施例的结构框图,应用于第一终端设备,所述装置包括:
消息生成模块501,用于生成具有唯一消息标识的消息;
消息标识写入模块502,用于将所述唯一消息标识写入所述第一终端设备的内存中;
消息发送模块503,用于向第二终端设备发送所述消息,所述第二终端设备用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;
消息重试模块504,用于在所述第一终端设备的内存中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述消息;所述第二终端设备用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息。
在一示例性实施例中,所述第一终端设备的内存中包括投递队列和删除队列,所述第二终端设备的内存中包括已处理队列,所述已处理队列保存有所述唯一消息标识,所述消息标识写入模块502,用于将所述唯一消息标识写入所述投递队列中;
所述装置还包括:删除模块,用于在所述第一终端设备接收到所述处理成功消息时,将所述唯一消息标识写入所述删除队列中,并向所述第二终端设备发送针对所述消息的删除请求;所述第二终端设备用于在接收到所述删除请求时,若所述已处理队列中保存有所述唯一消息标识,则删除所述已处理队列中的所述唯一消息标识,并在删除成功后生成删除成功消息反馈至所述第一终端设备;在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识。
在一示例性实施例中,所述消息重试模块504,用于在所述投递队列中保存有所述唯一消息标识时,定时重新向所述第二终端设备发送所述消息,或者,响应与所述消息关联的业务触发操作,向所述第二终端设备发送具有相同的所述唯一消息标识的所述消息。
在一示例性实施例中,所述装置还包括:删除重试模块,用于在所述删除队列中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述删除请求;所述第二终端设备用于若已经删除所述已处理队列中的所述唯一消息标识,则向所述第一终端设备反馈所述删除成功消息。
在一示例性实施例中,适用于游戏领域的已有的存储模型中;所述存储模型为所述第一终端设备的内存中的数据和所述第二终端设备的内存中的数据定期存储到指定数据库中。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图6,示出了本发明的一种消息传输装置实施例的结构框图,应用于第二终端设备,所述装置包括:
消息接收模块601,用于接收第一终端设备发送的具有唯一消息标识的消息;所述第一终端设备用于在生成所述消息时,将所述唯一消息标识写入所述第一终端设备的内存中;
消息处理模块602,用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;
重试消息接收模块603,用于在所述第一终端设备的内存中保存有所述唯一消息标识时,接收到所述第一终端设备重新发送的所述消息;
禁止处理模块,用于若在其内存中保存有所述唯一消息标识,则禁止处理重新发送的所述消息。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上消息传输方法实施例所述的步骤。
本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上消息传输方法实施例所述的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种消息传输方法、一种消息传输装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种消息传输方法,其特征在于,应用于第一终端设备,所述方法包括:
生成具有唯一消息标识的消息;
将所述唯一消息标识写入所述第一终端设备的内存中;
向第二终端设备发送所述消息,所述第二终端设备用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;其中,适用于游戏领域的已有的存储模型中,所述存储模型为所述第一终端设备的内存中的数据和所述第二终端设备的内存中的数据定期存储到指定的数据库中;
在所述第一终端设备的内存中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述消息;所述第二终端设备用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息;
其中,所述第一终端设备的内存中包括删除队列,所述第二终端设备的内存中包括已处理队列,所述已处理队列保存有所述唯一消息标识,在所述向第二终端设备发送所述消息之后,所述方法还包括:
在所述第一终端设备接收到所述处理成功消息时,将所述唯一消息标识写入所述删除队列中,并向所述第二终端设备发送针对所述消息的删除请求;所述第二终端设备用于在接收到所述删除请求时,若所述已处理队列中保存有所述唯一消息标识,则删除所述已处理队列中的所述唯一消息标识,并在删除成功后生成删除成功消息反馈至所述第一终端设备;
在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识。
2.根据权利要求1所述的方法,其特征在于,所述第一终端设备的内存中还包括投递队列,所述将所述唯一消息标识写入第一终端设备的内存中,包括:
将所述唯一消息标识写入所述投递队列中。
3.根据权利要求2所述的方法,其特征在于,所述向所述第二终端设备重新发送所述消息,包括:
在所述投递队列中保存有所述唯一消息标识时,定时重新向所述第二终端设备发送所述消息,或者,响应与所述消息关联的业务触发操作,向所述第二终端设备发送具有相同的所述唯一消息标识的所述消息。
4.根据权利要求1所述的方法,其特征在于,在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识之前,所述方法还包括:
在所述删除队列中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述删除请求;所述第二终端设备用于若已经删除所述已处理队列中的所述唯一消息标识,则向所述第一终端设备反馈所述删除成功消息。
5.一种消息传输方法,其特征在于,应用于第二终端设备,所述方法包括:
接收第一终端设备发送的具有唯一消息标识的消息;所述第一终端设备用于在生成所述消息时,将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;其中,适用于游戏领域的已有的存储模型中,所述存储模型为所述第一终端设备的内存中的数据和所述第二终端设备的内存中的数据定期存储到指定的数据库中;
在所述第一终端设备的内存中保存有所述唯一消息标识时,接收到所述第一终端设备重新发送的所述消息;
若在其内存中保存有所述唯一消息标识,则禁止处理重新发送的所述消息;其中,所述第一终端设备的内存中包括删除队列,所述第二终端设备的内存中包括已处理队列,所述已处理队列保存有所述唯一消息标识,所述第一终端设备用于在所述第一终端设备接收到所述处理成功消息时,将所述唯一消息标识写入所述删除队列中,并向所述第二终端设备发送针对所述消息的删除请求;所述第二终端设备用于在接收到所述删除请求时,若所述已处理队列中保存有所述唯一消息标识,则删除所述已处理队列中的所述唯一消息标识,并在删除成功后生成删除成功消息反馈至所述第一终端设备;在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识。
6.一种消息传输系统,其特征在于,包括第一终端设备和第二终端设备,其中:
所述第一终端设备,用于生成具有唯一消息标识的消息,将所述唯一消息标识写入所述第一终端设备的内存中,并向第二终端设备发送所述消息;
所述第二终端设备,用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;其中,适用于游戏领域的已有的存储模型中,所述存储模型为所述第一终端设备的内存中的数据和所述第二终端设备的内存中的数据定期存储到指定的数据库中;
所述第一终端设备,还用于在未接收到所述处理成功消息时,向所述第二终端设备重新发送所述消息;
所述第二终端设备,还用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息;
其中,所述第一终端设备的内存中包括删除队列,所述第二终端设备的内存中包括已处理队列;在所述第一终端设备接收到所述处理成功消息时,将所述唯一消息标识写入所述删除队列中,并向所述第二终端设备发送针对所述消息的删除请求;所述第二终端设备用于在接收到所述删除请求时,若所述已处理队列中保存有所述唯一消息标识,则删除所述已处理队列中的所述唯一消息标识,并在删除成功后生成删除成功消息反馈至所述第一终端设备;在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识。
7.一种消息传输装置,其特征在于,应用于第一终端设备,所述装置包括:
消息生成模块,用于生成具有唯一消息标识的消息;
消息标识写入模块,用于将所述唯一消息标识写入所述第一终端设备的内存中;
消息发送模块,用于向第二终端设备发送所述消息,所述第二终端设备用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;其中,适用于游戏领域的已有的存储模型中,所述存储模型为所述第一终端设备的内存中的数据和所述第二终端设备的内存中的数据定期存储到指定的数据库中;
消息重试模块,用于在所述第一终端设备的内存中保存有所述唯一消息标识时,向所述第二终端设备重新发送所述消息;所述第二终端设备用于若在其内存中保存有所述唯一消息标识,则禁止处理所述第一终端设备重新发送的所述消息;其中,所述第一终端设备的内存中包括删除队列,所述第二终端设备的内存中包括已处理队列,所述已处理队列保存有所述唯一消息标识,删除模块,用于在所述第一终端设备接收到所述处理成功消息时,将所述唯一消息标识写入所述删除队列中,并向所述第二终端设备发送针对所述消息的删除请求;所述第二终端设备用于在接收到所述删除请求时,若所述已处理队列中保存有所述唯一消息标识,则删除所述已处理队列中的所述唯一消息标识,并在删除成功后生成删除成功消息反馈至所述第一终端设备;在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识。
8.一种消息传输装置,其特征在于,应用于第二终端设备,所述装置包括:
消息接收模块,用于接收第一终端设备发送的具有唯一消息标识的消息;所述第一终端设备用于在生成所述消息时,将所述唯一消息标识写入所述第一终端设备的内存中;
消息处理模块,用于将所述唯一消息标识写入其内存中,在其内存中对所述消息进行处理,并在对所述消息处理成功后生成处理成功消息反馈至所述第一终端设备;其中,适用于游戏领域的已有的存储模型中,所述存储模型为所述第一终端设备的内存中的数据和所述第二终端设备的内存中的数据定期存储到指定的数据库中;
重试消息接收模块,用于在所述第一终端设备的内存中保存有所述唯一消息标识时,接收到所述第一终端设备重新发送的所述消息;
禁止处理模块,用于若在其内存中保存有所述唯一消息标识,则禁止处理重新发送的所述消息;其中,所述第一终端设备的内存中包括删除队列,所述第二终端设备的内存中包括已处理队列,所述已处理队列保存有所述唯一消息标识,所述第一终端设备用于在所述第一终端设备接收到所述处理成功消息时,将所述唯一消息标识写入所述删除队列中,并向所述第二终端设备发送针对所述消息的删除请求;所述第二终端设备用于在接收到所述删除请求时,若所述已处理队列中保存有所述唯一消息标识,则删除所述已处理队列中的所述唯一消息标识,并在删除成功后生成删除成功消息反馈至所述第一终端设备;在接收到所述第二终端设备反馈的所述删除成功消息时,删除所述删除队列中的所述唯一消息标识。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的消息传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的消息传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110688321.5A CN113452602B (zh) | 2021-06-21 | 2021-06-21 | 消息传输方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110688321.5A CN113452602B (zh) | 2021-06-21 | 2021-06-21 | 消息传输方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113452602A CN113452602A (zh) | 2021-09-28 |
CN113452602B true CN113452602B (zh) | 2023-03-24 |
Family
ID=77812068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110688321.5A Active CN113452602B (zh) | 2021-06-21 | 2021-06-21 | 消息传输方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113452602B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408251A (zh) * | 2018-09-28 | 2019-03-01 | 北京龙拳风暴科技有限公司 | 消息发送方法与装置、消息接收处理方法与装置 |
CN109669788A (zh) * | 2018-12-10 | 2019-04-23 | 西安微电子技术研究所 | 面向直接内存访问互连通信的多核芯片的mpi实现方法 |
CN112612799A (zh) * | 2020-12-08 | 2021-04-06 | 福建天泉教育科技有限公司 | 一种数据同步方法及终端 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812711B2 (en) * | 2008-02-27 | 2014-08-19 | Red Hat, Inc. | Three-way communication protocol |
US9578081B2 (en) * | 2011-02-02 | 2017-02-21 | Imvu, Inc. | System and method for providing an actively invalidated client-side network resource cache |
EP3065379A1 (en) * | 2015-03-06 | 2016-09-07 | Openet Telecom Ltd. | System and method for volte session continuation using logical scalable units |
CN109474688B (zh) * | 2018-11-27 | 2021-05-14 | 北京微播视界科技有限公司 | 即时通信网络请求消息的发送方法、装置、设备和介质 |
CN110442461B (zh) * | 2019-07-11 | 2022-10-21 | 福建天泉教育科技有限公司 | 一种消息投递方法、存储介质 |
CN110958249B (zh) * | 2019-12-03 | 2022-07-19 | 望海康信(北京)科技股份公司 | 信息处理方法、装置、电子设备及存储介质 |
CN110941502B (zh) * | 2019-12-16 | 2023-06-23 | 广州市百果园信息技术有限公司 | 消息处理方法、装置、存储介质及设备 |
CN111314422A (zh) * | 2020-01-17 | 2020-06-19 | 平安医疗健康管理股份有限公司 | 基于kafka的消息处理方法、系统、存储介质及计算机设备 |
CN111338814A (zh) * | 2020-02-13 | 2020-06-26 | 北京奇艺世纪科技有限公司 | 消息处理方法和装置、存储介质和电子装置 |
CN111416823A (zh) * | 2020-03-23 | 2020-07-14 | 北京明略软件系统有限公司 | 一种数据传输方法和装置 |
CN111769915B (zh) * | 2020-06-28 | 2023-10-24 | 杭州涂鸦信息技术有限公司 | 数据传输方法及相关设备 |
CN112671827B (zh) * | 2020-11-25 | 2023-03-07 | 紫光云技术有限公司 | 一种分布式事务最终一致性方法 |
-
2021
- 2021-06-21 CN CN202110688321.5A patent/CN113452602B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408251A (zh) * | 2018-09-28 | 2019-03-01 | 北京龙拳风暴科技有限公司 | 消息发送方法与装置、消息接收处理方法与装置 |
CN109669788A (zh) * | 2018-12-10 | 2019-04-23 | 西安微电子技术研究所 | 面向直接内存访问互连通信的多核芯片的mpi实现方法 |
CN112612799A (zh) * | 2020-12-08 | 2021-04-06 | 福建天泉教育科技有限公司 | 一种数据同步方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN113452602A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109474688B (zh) | 即时通信网络请求消息的发送方法、装置、设备和介质 | |
RU2538911C2 (ru) | Способ и система для эффективной загрузки пакета данных | |
CN110300151A (zh) | 数据文件上传方法及系统 | |
US9614646B2 (en) | Method and system for robust message retransmission | |
CN112433885B (zh) | 区块链共识处理方法及装置、电子设备、存储介质 | |
CN110381077A (zh) | 针对数字证书的处理方法和装置 | |
CN111431952B (zh) | 消息推送方法、装置及系统,计算机存储介质和电子设备 | |
CN110442461A (zh) | 一种消息投递方法、存储介质 | |
CN113452602B (zh) | 消息传输方法、装置、电子设备和存储介质 | |
CN111090818B (zh) | 资源管理方法、资源管理系统、服务器及计算机存储介质 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN110300140B (zh) | 用于云分发网络中内容更新的方法、刷新客户端及网络节点 | |
CN111939562B (zh) | 共享存储方法、电子设备及计算机可读存储介质 | |
CN111586438A (zh) | 一种业务数据的处理方法、装置及系统 | |
CN108829824B (zh) | 互联网运营活动中的资源处理方法及装置 | |
CN113098978B (zh) | 一种数据传输方法、装置及介质 | |
CN114465972B (zh) | 文件夹传输的方法、装置、设备和计算机可读存储介质 | |
CN116069868B (zh) | 基于企业微服务的分布式柔性事务处理方法和装置 | |
CN109587266B (zh) | 配送人员的质检上报方法、装置、终端及存储介质 | |
CN116319947B (zh) | 一种app前后台切换中状态信息的获取方法及装置 | |
CN111478782B (zh) | 一种聊天室控制方法、服务器、电子设备和存储介质 | |
KR100717239B1 (ko) | 동일한 멀티캐스트 그룹에 속하는 구성원 서버들 간의신뢰성 있는 통신을 제공하기 위한 방법 및 장치 | |
CN109062931B (zh) | 缓存同步控制方法、装置、系统、服务器及可读存储介质 | |
CN114579259A (zh) | 子逻辑任务的处理方法、装置、设备及介质 | |
CN117914671A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |