CN116032433A - 消息处理方法、相关设备及存储介质 - Google Patents

消息处理方法、相关设备及存储介质 Download PDF

Info

Publication number
CN116032433A
CN116032433A CN202211741384.3A CN202211741384A CN116032433A CN 116032433 A CN116032433 A CN 116032433A CN 202211741384 A CN202211741384 A CN 202211741384A CN 116032433 A CN116032433 A CN 116032433A
Authority
CN
China
Prior art keywords
node
message
processing
information
sends
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
Application number
CN202211741384.3A
Other languages
English (en)
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.)
Beijing Real AI Technology Co Ltd
Original Assignee
Beijing Real AI Technology 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 Beijing Real AI Technology Co Ltd filed Critical Beijing Real AI Technology Co Ltd
Priority to CN202211741384.3A priority Critical patent/CN116032433A/zh
Publication of CN116032433A publication Critical patent/CN116032433A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请实施例公开了一种消息处理方法、相关设备及存储介质。方法应用于消息处理***中,消息处理***包括处理节点和多个消息节点,多个消息节点包括第一节点,还包括第二节点。方法包括:第一节点向消息处理***内发送第一消息;若确定第二节点接收第一消息失败,则第一节点将第一消息和第二节点的节点信息发送至处理节点,以使得处理节点根据节点信息向第二节点发送第一消息,第二节点是多个消息节点中除第一节点之外的任意节点。通过实施本申请实施例的方法可在第一节点若确定第二节点接收第一消息失败时,通过处理节点取代第一节点向第二节点重发第一消息,避免重发过程对第一节点的占用。

Description

消息处理方法、相关设备及存储介质
技术领域
本申请涉及数据传输技术领域,尤其涉及一种消息处理方法、相关设备及存储介质。
背景技术
现有的单链路消息重发策略中,某一节点向另一节点发送消息时,如果发送失败,则采取消息重发策略。
在上述采取的消息重发策略中,只支持某一节点到某一节点的重发。具体来说,目前的分布式作业,经常是串行处理,即一个节点处理完数据后,在传递数据给下一个节点的过程中,若数据传递失败了,只能是当前发送节点上重试,而重试往往发生在节点已经出故障的时候,所以不仅重发效果不好,而且因重发是在当前节点上进行而影响到其继续处理其他事务。
发明内容
本申请实施例提供了一种消息处理方法、相关设备及存储介质,可以在第一节点若确定第二节点接收第一消息失败时,通过处理节点取代第一节点向第二节点重发第一消息,避免重发过程对第一节点的占用。
第一方面,本申请实施例提供了一种消息处理方法,应用于消息处理***中的第一节点,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点,所述方法包括:
所述第一节点向消息处理***内发送第一消息;
若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,以使得所述处理节点在确定满足预设的消息重发条件则根据所述节点信息向所述第二节点至少发送一次所述第一消息,所述第二节点是所述多个消息节点中除所述第一节点之外的任意节点。
在一些实施例中,在所述第一节点向消息处理***内发送第一消息之后,在若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,以使得所述处理节点根据所述节点信息向所述第二节点发送所述第一消息之前,所述方法还包括:
所述第一节点接收所述第二节点向所述第一节点基于第一消息返回的第一响应,所述第一响应用于指示所述第一节点所述第一消息由第二节点接收失败。
在一些实施例中,所述第一节点向消息处理***内发送第一消息,包括:
所述第一节点为消息发送方,则所述第一节点通过消息点对点模式向消息处理***内发送第一消息:
所述第一节点为消息广播方,则所述第一节点通过消息广播模式向消息处理***内发送第一消息。
第二方面,本申请实施例提供了一种消息处理方法,应用于消息处理***中的处理节点,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点和第二节点,所述第二节点是所述多个消息节点中除所述第一节点之外的任意节点;所述方法包括:
所述处理节点接收第一节点发送的第一指示信息,所述第一指示信息用于指示第二节点接收第一消息失败,所述第一指示信息包括第一消息和第二节点的节点信息,所述第一消息为所述第一节点向消息处理***内发送的消息,所述节点信息为所述第一节点在确定第二节点接收第一消息失败时所得到的第二节点的信息;
若确定满足预设的消息重发条件,则处理节点根据所述节点信息向所述第二节点至少发送一次所述第一消息。
在一些实施例中,所述根据所述节点信息向所述第二节点发送所述第一消息,包括:
所述处理节点获取保存所述第二节点的节点信息和所述第一消息的数据保存时间;
所述处理节点在所述第二节点的节点信息不为空集时获取当前***时间,且在确定所述当前***时间与所述数据保存时间之间的时间差与预设定时周期之比为正整数,则所述处理节点向所述第二节点发送所述第一消息。
在一些实施例中,在所述根据所述节点信息向所述第二节点发送所述第一消息之后,所述方法还包括:
所述处理节点接收所述第二节点向所述处理节点基于第一消息返回的第二响应,所述第二响应用于指示所述处理节点所述第一消息由第二节点接收失败;
所述处理节点向所述第二节点发送所述第一消息。
在一些实施例中,在所述根据所述节点信息向所述第二节点发送所述第一消息之后,所述方法还包括:
所述处理节点获取与所述第一消息相对应的事务关联节点,所述事务关联节点包括所述第一节点和所述第二节点;
所述处理节点获取初次向所述第二节点发送所述第一消息的第一时间点;
所述处理节点接收所述第二节点向所述处理节点基于第一消息返回的第三响应,并获取接收所述第三响应的第二时间点,所述第三响应用于指示所述处理节点所述第一消息由第二节点接收失败;
所述处理节点获取所述第二时间点与所述第一时间点的时间间隔;
所述处理节点在确定所述时间间隔超出预设的故障排除时长,生成回滚操作指令,并将所述回滚操作指令发送至所述第一节点和所述第二节点,以通过所述回滚操作指令分别控制所述第一节点回滚至对应的第一节点回滚初始状态,及控制所述第二节点回滚至对应的第二节点回滚初始状态。
第三方面,本申请实施例还提供了一种消息处理方法,应用于消息处理***,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点;
所述第一节点向消息处理***内发送第一消息;
若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,所述第二节点是所述多个消息节点中除所述第一节点之外的任意节点;
在满足预设的消息重发条件时,则根据所述节点信息向所述第二节点至少发送一次所述第一消息。
第四方面,本申请实施例还提供了一种消息处理装置,运行于消息处理***中的第一节点,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点;所述第一节点包括第一收发模块和第一处理模块;
所述第一收发模块,用于向消息处理***内发送第一消息;
所述第一收发模块,还用于若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,以使得所述处理节点根据所述节点信息向所述第二节点发送所述第一消息,所述第二节点是所述多个消息节点中除所述第一节点之外的任意节点;
所述第一处理模块,用于控制所述第一收发模块的收发操作。
第五方面,本申请实施例还提供了一种消息处理装置,运行于消息处理***中的处理节点,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点和第二节点,所述第二节点是所述多个消息节点中除所述第一节点之外的任意节点;所述处理节点包括第二收发模块和第二处理模块;
所述第二收发模块,用于接收第一节点在确定第二节点接收第一消息失败时发送的第一消息和第二节点的节点信息;
所述第二收发模块,还用于根据所述节点信息向所述第二节点发送所述第一消息;
所述第二处理模块,用于控制所述第二收发模块的收发操作。
第六方面,本申请实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面的方法或上述第二方面的方法。
第七方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述第一方面的方法或上述第二方面的方法。
相较于现有技术,本申请提供了一种消息处理方法,该方法应用于消息处理***,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点,一方面,消息处理***中的第一节点在处理某一项正常的事务时,可向消息处理***内发送第一消息,可见,通过本申请可以通过第一节点正常的发送第一消息;另一方面,在第一节点若确定第二节点接收所述第一消息失败后,消息处理***内处理节点可取代第一节点进行向第二节点发送第一消息的工作,可见,通过本申请可以通过处理节点进行消息重发,避免重发过程对第一节点的占用。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的消息处理***的一个框架示意图;
图2为本申请实施例提供的消息处理方法的流程示意图;
图3为本申请实施例提供的消息处理方法的另一流程示意图;
图4为本申请实施例提供的消息处理***的示意性框图;
图5为本申请实施例中终端的一种结构示意图;
图6为本申请实施例中服务器的一种结构示意图。
具体实施方式
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请实施例中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个***中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请实施例中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请实施例方案的目的。
本申请实施例供了一种消息处理方法、相关设备及存储介质,该消息处理方法的执行主体可以是本申请实施例提供的消息处理***,或者集成了消息处理***的计算机设备,其中,该消息处理***中的消息处理***可以采用硬件或者软件的方式实现,该计算机设备可以为终端或服务器。
当该计算机设备为服务器时,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
当该计算机设备为终端时,该终端可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视、智能音箱、个人数字助理(英文全称:Personal DigitalAssistant,英文简称:PDA)、台式计算机、智能手表等携带多媒体数据处理功能(例如,视频数据播放功能、音乐数据播放功能)的智能终端,但并不局限于此。
本申请实施例的方案可基于人工智能技术实现,具体来说涉及人工智能技术中的计算机视觉技术技术领域和云技术中的云计算、云存储和数据库等领域,下面将分别进行介绍。
人工智能(ArtificialIntelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(ComputerVision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能***。计算机视觉技术通常包括图像处理、模型鲁棒性检测、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的模型鲁棒性检测、指纹识别等生物特征识别技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例的方案可基于云技术实现,具体来说涉及云技术中的云计算、云存储和数据库等技术领域,下面将分别进行介绍。
云技术(Cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图像类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。本申请实施例可通过云技术对第一消息进行保存。
云存储(cloudstorage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。在本申请实施例中,可将网络配置等信息均保存在该存储***中,便于服务器调取。
目前,存储***的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件***上,文件***将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,IDentity)等额外的信息,文件***将每个对象分别写入该逻辑卷的物理存储空间,且文件***会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件***能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储***为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,RedundantArrayofIndependentDisk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理***(英语:DatabaseManagementSystem,简称DBMS)是为管理数据库而设计的电脑软件***,一般具有存储、截取、安全保障、备份等基础功能。数据库管理***可以依据它所支持的数据库模型来作分类,例如关系式、XML(ExtensibleMarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言,StructuredQueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。在本申请实施例中,可将第一消息存储在该数据库管理***中,便于服务器调取。
其中,需要特别说明的是,本申请实施例涉及的服务终端,可以是指向服务终端提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。例如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。例如,个人通信业务(英文全称:PersonalCommunicationService,英文简称:PCS)电话、无绳电话、会话发起协议(SIP)话机、无线本地环路(WirelessLocalLoop,英文简称:WLL)站、个人数字助理(英文全称:PersonalDigitalAssistant,英文简称:PDA)等设备。
请参阅图1,图1为本申请实施例提供的消息处理***的一个框架示意图。该消息处理方法应用于图1中的消息处理***1中,该消息处理***1包括处理节点10和多个消息节点20,所述多个消息节点20包括第一节点21,还包括第二节点22,所述第二节点22是所述消息处理***1中除所述第一节点21和所述处理节点10之外的任意节点,其中:
所述第一节点21向消息处理***1内发送第一消息;所述第一节点21若确定第二节点22接收所述第一消息失败,则所述第一节点21将所述第一消息和所述第二节点22的节点信息发送至所述处理节点10;所述处理节点10向所述第二节点22发送所述第一消息。
图2是本申请实施例提供的消息处理方法的流程示意图。如图2所示,该方法包括以下步骤S110-S130。
S110、所述第一节点向消息处理***内发送第一消息。
本实施例中,在所述第一节点中有发送消息的需求时,先在所述第一节点中获取到需要在消息处理***内发送的第一消息,然后由所述第一节点向消息处理***内发送所述第一消息。
所述第一消息的接收对象则是消息处理***内的第二节点,第二节点对所述第一消息则有两种处理方式,第一种是第二节点成功接收所述第一消息,第二种情况是第二节点未成功接收所述第一消息。本申请中以第二种情况第二节点未成功接收所述第一消息为具体场景,来具体说明在所述第一消息在消息处理***内的重发方式。
在一些实施例中,当所述第二节点未成功接收所述第一消息成功时,所述第一节点接收所述第二节点向所述第一节点基于第一消息返回的第一响应。其中,所述第一响应用于指示所述第一节点所述第一消息由第二节点接收失败。
其中,由于所述第一节点可向消息处理***内除了处理节点以外的所有节点发送第一消息,故当所述第一节点发出了所述第一消息后,消息处理***内除了处理节点以外的所有节点均可作为接收方来接收所述第一消息。
例如,选择所述消息处理***中的节点A作为第一节点,并选择所述消息处理***中的节点B和节点C来接收节点A向消息处理***内发送的所述第一消息。若节点B向节点A返回了第一响应,节点C未向节点A返回第一响应,则表示节点A可基于所接收到的且由节点B返回的第一响应确定节点B这一第二节点接收所述第一消息失败。若节点B和节点C均向节点A返回了第一响应,则表示节点A可基于所接收到的且由节点B和节点C均返回的第一响应确定节点B和节点C这两个第二节点接收所述第一消息失败。可见,无论是一个第二节点接收所述第一消息失败,还是多个第二节点接收所述第一消息失败,只要有第二节点接收所述第一消息失败,则必然会向所述第一节点基于所述第一消息返回第一响应。
在一些实施例中,第一节点可选择作为消息发送方的角色来发送第一消息,也可选择作为消息广播方的角色来发送第一消息,所述第一节点向消息处理***内发送第一消息,包括:
所述第一节点为消息发送方,则所述第一节点通过消息点对点模式向消息处理***内发送第一消息:
所述第一节点为消息广播方,则所述第一节点通过消息广播模式向消息处理***内发送第一消息。
本实施例中,当所述第一节点选择以消息发送方的角色向消息处理***内发送第一消息时,是基于消息点对点模式向消息处理***内发送第一消息,此时在所述第一节点中是已知第一消息的接收对象,是一种明确收发方信息的消息发送模式。
当所述第一节点选择以消息广播方的角色向消息处理***内发送第一消息时,是基于消息广播模式向消息处理***内发送第一消息,此时在所述第一节点中是未知第一消息的接收对象,是一种无需明确接收方信息的消息发送模式。但是与传统的消息广播不同之处在于,本申请中要求消息处理***内接收第一消息未成功的第二节点需向所述第一节点发送用于指示所述第一节点所述第一消息由第二节点接收失败的响应信息。
但是,所述第一节点无论以哪一方式向消息处理***内发送第一消息,只要能实现向消息处理***内发送第一消息成功即可,无需限定所述第一节点发送第一消息的具体方式。
S120、所述第一节点若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点。
其中,所述第二节点是所述消息处理***中除所述第一节点和所述处理节点之外的任意节点。
本实施例中,当所述第一节点确定了存在有第二节点接收所述第一消息失败后,则之后不再由所述第一节点再次向所述第二节点发送所述第一消息,而是先由所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,之后再由所述处理节点取代所述第一节点发送第一消息的任务。为了明确所述处理节点之后是向哪些节点发送所述第一消息,故需由第一节点先将获取到的第二节点的节点信息发送至所述处理节点。所述处理节点成功接收到所述第二节点的节点信息后,基于所述第二节点的节点信息中包括的节点名称、节点地址等信息是可以获知到所述处理节点发送所述第一消息的目标节点。
例如,继续参考上述节点B和节点C均向节点A返回了第一响应的示例,节点A作为第一节点是确定了节点B和节点C这两个第二节点接收所述第一消息失败,之后节点A将节点B和节点C的节点信息均发送至所述处理节点,且节点A还同时将所述第一消息发送至所述处理节点。所述处理节点在接收了节点B和节点C的节点信息,还接收了所述第一消息后,所述处理节点则以节点B和节点C作为目标发送对象具体发送所述第一消息。
S130、所述处理节点向所述第二节点发送所述第一消息。
本实施例中,当所述处理节点接收到了所述第一节点向所述处理节点发送的所述第一消息和所述第二节点的节点信息后,可以先将所述第一消息和所述第二节点的节点信息保存在所述处理节点的本地存储空间。之后,在处理节点完成了对所述第一消息和所述第二节点的节点信息的保存后,可以先保存一个数据保存时间,以用于记录处理节点完成对所述第一消息和所述第二节点的节点信息的具体时间。之后,以所述数据保存时间t为起始时间点,所述处理节点开始向所述第二节点至少发送一次所述第一消息。
所述处理节点向所述第二节点发送所述第一消息后,当所述第二节点接收所述第一消息成功,则表示基于所述处理节点重发消息成功,之后所述处理节点不再将所述第二节点视为故障节点并再次重发消息。
在一些实施例中,当所述处理节点开始向所述第二节点至少发送一次所述第一消息时,处理节点可以按照预定周期发送第一消息的方式周期性的发送第一消息,所述处理节点向所述第二节点发送所述第一消息,包括:
所述处理节点获取保存所述第二节点的节点信息和所述第一消息的数据保存时间;
所述处理节点在所述第二节点的节点信息不为空集时获取当前***时间,且在确定所述当前***时间与所述数据保存时间之间的时间差与预设定时周期之比为正整数,则所述处理节点向所述第二节点发送所述第一消息。
本实施例中,若处理节点先获取到了数据保存时间为t0,且预设定时周期为T,则为了满足所述当前***时间与所述数据保存时间之间的时间差与预设定时周期之比为正整数,可在t0+T、t0+2T、t0+3T、……、t0+nT(其中,n为正整数)等时间点时由所述处理节点向所述第二节点发送所述第一消息。当然也是按照上述t0+T、t0+2T、t0+3T、……、t0+nT等时间点出现的先后顺序来分别作为所述处理节点向所述第二节点发送所述第一消息。
当然,若在t0+T时刻,若当所述第二节点接收所述第一消息失败,则表示基于所述处理节点重发消息失败,之后在t0+2T时刻所述处理节点再向所述第二节点发送所述第一消息,以此类推,直至所述第二节点排除了故障并接收所述第一消息成功,所述处理节点才停止再向所述第二节点发送所述第一消息。
当然,若在t0+T、t0+2T、t0+3T、……、t0+nT上述时间点中的任意一个时间点(如t0+3T)中所述处理节点中保存的所述第二节点的节点信息为空集,则表示在t0+2T对应的时间点所述处理节点向所述第二节点重发第一消息成功,处理节点在t0+2T之后且在t0+3T之前已经完成对保存所述第二节点的节点信息的更新,即已将成功接收第一消息的第二节点的节点信息从处理节点中删除,使得处理节点中在t0+3T对应的时间点再次获取到本地保存的所述第二节点的节点信息为空集。可见,处理节点在本地保存的第二节点的节点信息不为空时,能代替第一节点进行第一消息的重发工作,无需第一节点暂停其待处理的其他数据处理任务来进行第一消息的重发工作,既确保了第一消息不会消息丢失,也确保了消息在分布式场景下重发并保证幂等性。
在一些实施例中,如图3所示,在所述处理节点向所述第二节点发送所述第一消息之后,因存在第二节点向所述处理节点发送第二响应的情况,即所述处理节点向所述第二节点发送第一消息后第二节点仍存在故障未排除不能成功接收第一消息的情况,故在所述处理节点向所述第二节点发送所述第一消息之后,所述方法还包括:
S140、所述处理节点接收所述第二节点向所述处理节点基于第一消息返回的第二响应,所述第二响应用于指示所述处理节点所述第一消息由第二节点接收失败;
S150、所述处理节点向所述第二节点发送所述第一消息。
本实施例中,所述处理节点向所述第二节点发送所述第一消息后,当所述第二节点接收所述第一消息失败,则表示基于所述处理节点重发消息失败,而导致上述基于所述处理节点重发消息失败的原因是所述第二节点中仍存在节点故障且节点故障未及时排除。之后,所述处理节点还要将所述第二节点视为故障节点并再次重发消息。
同样的,所述处理节点在判定仍存在第二节点需要重发第一消息时,也可以参考所述处理节点获取保存所述第二节点的节点信息和所述第一消息的数据保存时间;所述处理节点在所述第二节点的节点信息不为空集时获取当前***时间,且在确定所述当前***时间与所述数据保存时间之间的时间差与预设定时周期之比为正整数,则所述处理节点向所述第二节点发送所述第一消息的方式进行处理节点中第一消息的定时重发。可见,在处理节点中只要判定仍存在第二节点的节点信息且不为空集,则会继续进行第一消息的消息重发工作,直至处理节点中存在第二节点的节点信息为空集。
在一些实施例中,在所述处理节点代替所述第一节点向所述第二节点发送第一消息后,若所述第二节点仍未成功接收所述第一消息,可以根据消息处理***当前所处理的业务类型来衡量是否需要进行消息回滚,在所述处理节点向所述第二节点发送所述第一消息之后,所述方法还包括:
所述处理节点获取与所述第一消息相对应的事务关联节点,所述事务关联节点包括所述第一节点和所述第二节点;
所述处理节点获取初次向所述第二节点发送所述第一消息的第一时间点;
所述处理节点接收所述第二节点向所述处理节点基于第一消息返回的第三响应,并获取接收所述第三响应的第二时间点,所述第三响应用于指示所述处理节点所述第一消息由第二节点接收失败;
所述处理节点获取所述第二时间点与所述第一时间点的时间间隔;
所述处理节点在确定所述时间间隔超出预设的故障排除时长,生成回滚操作指令,并将所述回滚操作指令发送至所述第一节点和所述第二节点,以通过所述回滚操作指令分别控制所述第一节点回滚至对应的第一节点回滚初始状态,及控制所述第二节点回滚至对应的第二节点回滚初始状态。
本实施例中,当所述处理节点向所述第二节点发送所述第一消息之后,还存在第二节点因节点故障无法成功接收所述第一消息的情况。由于在之前所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点之后,所述第一节点还向处理节点发送了与所述第一消息相对应的事务关联节点(例如所述第一消息在满足成功被第一节点向第二节点发出,且第二节点在指定时间内成功接收所述第一消息才被判定为一次成功的事务处理,则此次事务涉及到的事务相关节点则包括第一节点和第二节点),故处理节点在处理第一消息的重发事务时,需要由处理节点记录每一次其向所述第二节点发送所述第一消息的第一时间点(一般保存在处理节点本地的多个记录处理节点向所述第二节点发送所述第一消息的第一时间点中,最排序在最后一位的是处理节点最近一次向所述第二节点发送所述第一消息的第一时间点),且处理节点能获取到第一次向所述第二节点发送所述第一消息的第一时间点。
在处理节点已知了第一次向所述第二节点发送所述第一消息的第一时间点后,还能获取到处理节点最近一次接收所述第二节点向所述处理节点基于第一消息返回第三响应的第二时间点。在已知了第一时间点和第二时间点后,处理节点计算获取所述第二时间点与所述第一时间点的时间间隔△T,且在处理节点中确定所述时间间隔超出预设的故障排除时长,生成回滚操作指令,并将所述回滚操作指令发送至所述第一节点和所述第二节点,以通过所述回滚操作指令分别控制所述第一节点回滚至对应的第一节点回滚初始状态,及控制所述第二节点回滚至对应的第二节点回滚初始状态。
在一些实施例中,为了实现由处理节点控制事务关联节点的所有节点进行精准回滚操作,所述以通过所述回滚操作指令分别控制所述第一节点回滚至对应的第一节点回滚初始状态,及控制所述第二节点回滚至对应的第二节点回滚初始状态,包括:
通过所述回滚操作指令控制所述第一节点回滚至所述第一时间点对应的节点状态,并通过所述回滚操作指令控制所述第二节点回滚至所述第一时间点对应的节点状态。
其中,通过所述回滚操作指令控制所述第一节点回滚至对应的第一节点回滚初始状态,是指第一节点基于所述回滚操作指令回滚至所述第一时间点对应的节点状态。通过所述回滚操作指令控制所述第二节点回滚至对应的第二节点回滚初始状态,是指第二节点基于所述回滚操作指令回滚至所述第一时间点对应的节点状态。
当事务关联节点中包括的各节点基于回滚操作指令回滚至第一时间点对应的节点状态后,可以重新执行由所述处理节点向所述第二节点发送所述第一消息的操作。
综上所述,一方面,消息处理***中的第一节点在处理某一项正常的事务时,可向消息处理***内发送第一消息,可见,通过本申请可以通过第一节点正常的发送第一消息;另一方面,在第一节点若确定第二节点接收所述第一消息失败后,消息处理***内处理节点可取代第一节点进行向第二节点发送第一消息的工作,可见,通过本申请可以通过处理节点进行消息重发,避免重发过程对第一节点的占用。
图4是本申请实施例提供的一种消息处理***的示意性框图。如图4所示,对应于以上消息处理方法,本申请还提供一种消息处理***。该消息处理***包括用于执行上述消息处理方法的单元,该装置可以被配置于台式电脑、平板电脑、手提电脑、等终端中。具体地,请参阅图4,该消息处理***400包括处理节点410和多个消息节点420,所述多个消息节点420包括第一节点421,其中:
所述第一节点421,用于向消息处理***内发送第一消息;
所述第一节点421,还用于若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,所述第二节点是所述消息处理***中除所述第一节点和所述处理节点之外的任意节点;
所述处理节点410,用于向所述第二节点发送所述第一消息。
在一些实施例中,在所述第一节点向消息处理***内发送第一消息之后,在所述第一节点若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点之前,所述方法还包括:
所述第一节点接收所述第二节点向所述第一节点基于第一消息返回的第一响应,所述第一响应用于指示所述第一节点所述第一消息由第二节点接收失败。
在一些实施例中,所述处理节点向所述第二节点发送所述第一消息,包括:
所述处理节点获取保存所述第二节点的节点信息和所述第一消息的数据保存时间;
所述处理节点在所述第二节点的节点信息不为空集时获取当前***时间,且在确定所述当前***时间与所述数据保存时间之间的时间差与预设定时周期之比为正整数,则所述处理节点向所述第二节点发送所述第一消息。
在一些实施例中,在所述处理节点向所述第二节点发送所述第一消息之后,所述方法还包括:
所述处理节点接收所述第二节点向所述处理节点基于第一消息返回的第二响应,所述第二响应用于指示所述处理节点所述第一消息由第二节点接收失败;
所述处理节点向所述第二节点发送所述第一消息。
在一些实施例中,在所述处理节点向所述第二节点发送所述第一消息之后,所述方法还包括:
所述处理节点获取与所述第一消息相对应的事务关联节点,所述事务关联节点包括所述第一节点和所述第二节点;
所述处理节点获取初次向所述第二节点发送所述第一消息的第一时间点;
所述处理节点接收所述第二节点向所述处理节点基于第一消息返回的第三响应,并获取接收所述第三响应的第二时间点,所述第三响应用于指示所述处理节点所述第一消息由第二节点接收失败;
所述处理节点获取所述第二时间点与所述第一时间点的时间间隔;
所述处理节点在确定所述时间间隔超出预设的故障排除时长,生成回滚操作指令,并将所述回滚操作指令发送至所述第一节点和所述第二节点,以通过所述回滚操作指令分别控制所述第一节点回滚至对应的第一节点回滚初始状态,及控制所述第二节点回滚至对应的第二节点回滚初始状态。
在一些实施例中,所述以通过所述回滚操作指令分别控制所述第一节点回滚至对应的第一节点回滚初始状态,及控制所述第二节点回滚至对应的第二节点回滚初始状态,包括:
通过所述回滚操作指令控制所述第一节点回滚至所述第一时间点对应的节点状态,并通过所述回滚操作指令控制所述第二节点回滚至所述第一时间点对应的节点状态。
在一些实施例中,所述第一节点向消息处理***内发送第一消息,包括:
所述第一节点为消息发送方,则所述第一节点通过消息点对点模式向消息处理***内发送第一消息:
所述第一节点为消息广播方,则所述第一节点通过消息广播模式向消息处理***内发送第一消息。
综上所述,一方面,消息处理***中的第一节点在处理某一项正常的事务时,可向消息处理***内发送第一消息,可见,通过本申请可以通过第一节点正常的发送第一消息;另一方面,在第一节点若确定第二节点接收所述第一消息失败后,消息处理***内处理节点可取代第一节点进行向第二节点发送第一消息的工作,可见,通过本申请可以通过处理节点进行消息重发,避免重发过程对第一节点的占用。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述消息处理***和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上面从模块化功能实体的角度对本申请实施例中的消息处理***进行了描述,下面从硬件处理的角度分别对本申请实施例中的消息处理***进行描述。
本申请实施例还提供了一种终端,如图5所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(英文全称:Personal DigitalAssistant,英文简称:PDA)、销售终端(英文全称:PointofSales,英文简称:POS)、车载电脑等任意终端,以终端为手机为例:
图5示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图5,手机包括:射频(英文全称:RadioFrequency,英文简称:RF)电路55、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(英文全称:wirelessfidelity,英文简称:Wi-Fi)模块570、处理器580、以及电源590等部件。本领域技术人员可以理解,图5中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图5对手机的各个构成部件进行具体的介绍:
RF电路55可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。通常,RF电路55包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:LowNoiseAmplifier,英文简称:LNA)、双工器等。此外,RF电路55还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(英文全称:GlobalSystemofMobilecommunication,英文简称:GSM)、通用分组无线服务(英文全称:GeneralPacketRadioService,英文简称:GPRS)、码分多址(英文全称:CodeDivisionMultipleAccess,英文简称:CDMA)、宽带码分多址(英文全称:WidebandCodeDivisionMultipleAccess,英文简称:WCDMA)、长期演进(英文全称:LongTermEvolution,英文简称:LTE)、电子邮件、短消息服务(英文全称:ShortMessagingService,英文简称:SMS)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元530可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(英文全称:LiquidCrystalDisplay,英文简称:LCD)、有机发光二极管(英文全称:OrganicLight-EmittingDiode,英文简称:OLED)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图5中,触控面板531与显示面板541是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在手机移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与手机之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路55以发送给比如另一手机,或者将音频数据输出至存储器520以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了Wi-Fi模块570,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略。
处理器580是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器580可包括一个或多个处理单元;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
手机还包括给各个部件供电的电源590(比如电池),电源可以通过电源管理***与处理器580逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该手机所包括的处理器580还具有控制执行以上由图2所示的消息处理方法的流程图。
图6是本申请实施例提供的一种服务器结构示意图,该服务器620可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(英文全称:centralprocessingunits,英文简称:CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器620上执行存储介质630中的一系列指令操作。
服务器620还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作***641,例如WindowsServer,MacOSX,Unix,Linux,FreeBSD等等。
上述实施例中由服务器所执行的步骤可以基于该图6所示的服务器620的结构。例如上述实施例中由图2所示的服务器的步骤可以基于该图6所示的服务器结构。例如,所述处理器622通过调用存储器632中的指令,执行以下操作:
所述第一节点向消息处理***内发送第一消息;
所述第一节点若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,所述第二节点是所述消息处理***中除所述第一节点和所述处理节点之外的任意节点;
所述处理节点向所述第二节点发送所述第一消息。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上对本申请实施例所提供的技术方案进行了详细介绍,本申请实施例中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。

Claims (10)

1.一种消息处理方法,应用于消息处理***中的第一节点,其特征在于,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点;所述方法包括:
所述第一节点向消息处理***内发送第一消息;
若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,以使得所述处理节点在确定满足预设的消息重发条件则根据所述节点信息向所述第二节点至少发送一次所述第一消息,所述第二节点是所述多个消息节点中除所述第一节点之外的任意节点。
2.根据权利要求1所述的方法,其特征在于,在所述第一节点向消息处理***内发送第一消息之后,在若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,以使得所述处理节点在确定满足预设的消息重发条件则根据所述节点信息向所述第二节点至少发送一次所述第一消息之前,所述方法还包括:
所述第一节点接收所述第二节点向所述第一节点基于第一消息返回的第一响应,所述第一响应用于指示所述第一节点所述第一消息由第二节点接收失败。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述第一节点向消息处理***内发送第一消息,包括:
所述第一节点为消息发送方,则所述第一节点通过消息点对点模式向消息处理***内发送第一消息:
所述第一节点为消息广播方,则所述第一节点通过消息广播模式向消息处理***内发送第一消息。
4.一种消息处理方法,应用于消息处理***的处理节点,其特征在于,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点和第二节点,所述第二节点是所述多个消息节点中除所述第一节点之外的任意节点;所述方法包括:
所述处理节点接收第一节点发送的第一指示信息,所述第一指示信息用于指示第二节点接收第一消息失败,所述第一指示信息包括第一消息和第二节点的节点信息,所述第一消息为所述第一节点向消息处理***内发送的消息,所述节点信息为所述第一节点在确定第二节点接收第一消息失败时所得到的第二节点的信息;
若确定满足预设的消息重发条件,则处理节点根据所述节点信息向所述第二节点至少发送一次所述第一消息。
5.根据权利要求4所述的方法,其特征在于,所述处理节点根据所述节点信息向所述第二节点至少发送一次所述第一消息,包括:
所述处理节点获取保存所述第二节点的节点信息和所述第一消息的数据保存时间;
所述处理节点在所述第二节点的节点信息不为空集时获取当前***时间,且在确定所述当前***时间与所述数据保存时间之间的时间差与预设定时周期之比为正整数,则所述处理节点向所述第二节点发送所述第一消息。
6.根据权利要求4所述的方法,其特征在于,在所述处理节点根据所述节点信息向所述第二节点至少发送一次所述第一消息之后,所述方法还包括:
所述处理节点接收所述第二节点向所述处理节点基于第一消息返回的第二响应,所述第二响应用于指示所述处理节点所述第一消息由第二节点接收失败;
所述处理节点向所述第二节点发送所述第一消息。
7.根据权利要求4所述的方法,其特征在于,在所述处理节点根据所述节点信息向所述第二节点至少发送一次所述第一消息之后,所述方法还包括:
所述处理节点获取与所述第一消息相对应的事务关联节点,所述事务关联节点包括所述第一节点和所述第二节点;
所述处理节点获取初次向所述第二节点发送所述第一消息的第一时间点;
所述处理节点接收所述第二节点向所述处理节点基于第一消息返回的第三响应,并获取接收所述第三响应的第二时间点,所述第三响应用于指示所述处理节点所述第一消息由第二节点接收失败;
所述处理节点获取所述第二时间点与所述第一时间点的时间间隔;
所述处理节点在确定所述时间间隔超出预设的故障排除时长,生成回滚操作指令,并将所述回滚操作指令发送至所述第一节点和所述第二节点,以通过所述回滚操作指令分别控制所述第一节点回滚至对应的第一节点回滚初始状态,及控制所述第二节点回滚至对应的第二节点回滚初始状态。
8.一种消息处理装置,运行于消息处理***中的第一节点,其特征在于,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点;所述第一节点包括第一收发模块和第一处理模块;
所述第一收发模块,用于向消息处理***内发送第一消息;
所述第一收发模块,还用于若确定第二节点接收所述第一消息失败,则所述第一节点将所述第一消息和所述第二节点的节点信息发送至所述处理节点,以使得所述处理节点根据所述节点信息向所述第二节点发送所述第一消息,所述第二节点是所述多个消息节点中除所述第一节点之外的任意节点;
所述第一处理模块,用于控制所述第一收发模块的收发操作。
9.一种消息处理装置,运行于消息处理***中的处理节点,其特征在于,所述消息处理***包括处理节点和多个消息节点,所述多个消息节点包括第一节点和第二节点,所述第二节点是所述多个消息节点中除所述第一节点之外的任意节点;所述处理节点包括第二收发模块和第二处理模块;
所述第二收发模块,用于接收第一节点在确定第二节点接收第一消息失败时发送的第一消息和第二节点的节点信息;
所述第二收发模块,还用于根据所述节点信息向所述第二节点发送所述第一消息;
所述第二处理模块,用于控制所述第二收发模块的收发操作。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-7中任一项所述的方法。
CN202211741384.3A 2022-12-31 2022-12-31 消息处理方法、相关设备及存储介质 Pending CN116032433A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211741384.3A CN116032433A (zh) 2022-12-31 2022-12-31 消息处理方法、相关设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211741384.3A CN116032433A (zh) 2022-12-31 2022-12-31 消息处理方法、相关设备及存储介质

Publications (1)

Publication Number Publication Date
CN116032433A true CN116032433A (zh) 2023-04-28

Family

ID=86081034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211741384.3A Pending CN116032433A (zh) 2022-12-31 2022-12-31 消息处理方法、相关设备及存储介质

Country Status (1)

Country Link
CN (1) CN116032433A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141403A (zh) * 2007-10-15 2008-03-12 华为技术有限公司 消息路由重选方法及装置
CN107592186A (zh) * 2016-07-08 2018-01-16 电信科学技术研究院 一种进行数据重传的方法和设备
CN112363980A (zh) * 2020-11-03 2021-02-12 网宿科技股份有限公司 一种分布式***的数据处理方法及装置
CN114731194A (zh) * 2019-11-06 2022-07-08 瑞典爱立信有限公司 无线通信网络中的改进的重传处理

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141403A (zh) * 2007-10-15 2008-03-12 华为技术有限公司 消息路由重选方法及装置
CN107592186A (zh) * 2016-07-08 2018-01-16 电信科学技术研究院 一种进行数据重传的方法和设备
CN114731194A (zh) * 2019-11-06 2022-07-08 瑞典爱立信有限公司 无线通信网络中的改进的重传处理
CN112363980A (zh) * 2020-11-03 2021-02-12 网宿科技股份有限公司 一种分布式***的数据处理方法及装置

Similar Documents

Publication Publication Date Title
EP3531290B1 (en) Data backup method, apparatus, electronic device, storage medium, and system
US20170286092A1 (en) Terminal device and version upgrading method
CN115658348B (zh) 微服务调用方法、相关装置及存储介质
CN112231144A (zh) 一种数据处理方法、装置及电子设备
CN106502833A (zh) 数据备份方法及装置
CN104281610A (zh) 过滤微博的方法和装置
CN115376192B (zh) 用户异常行为确定方法、装置、计算机设备及存储介质
CN115546516A (zh) 人员聚档方法、装置、计算机设备及存储介质
CN116071614A (zh) 样本数据处理方法、相关设备及存储介质
CN112988913B (zh) 一种数据处理方法和相关装置
CN116032433A (zh) 消息处理方法、相关设备及存储介质
CN115062197A (zh) 考勤数据检测方法、装置及存储介质
CN115412726B (zh) 视频真伪检测方法、装置及存储介质
CN116563041A (zh) 一种数据对账方法以及相关装置
CN115525554B (zh) 模型的自动化测试方法、***及存储介质
CN115565215B (zh) 一种人脸识别算法切换方法、装置及存储介质
CN115909186B (zh) 图像信息识别方法、装置、计算机设备及存储介质
CN115048463B (zh) 数据迁移方法、***及存储介质
CN116244071A (zh) 资源调整方法、相关设备及存储介质
CN114722970B (zh) 一种多媒体检测方法、装置及存储介质
CN116756350A (zh) 多媒体数据处理方法、装置、计算机设备及存储介质
CN115883352B (zh) 服务节点创建方法、相关设备及存储介质
CN114710501B (zh) 服务请求处理方法、装置、服务器及计算机可读存储介质
CN117453497A (zh) 一种云原生资源的监控报警方法、装置、设备及介质
WO2022188184A1 (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