CN109150662B - 消息传输方法、分布式系统、设备、介质和无人车 - Google Patents
消息传输方法、分布式系统、设备、介质和无人车 Download PDFInfo
- Publication number
- CN109150662B CN109150662B CN201811006366.4A CN201811006366A CN109150662B CN 109150662 B CN109150662 B CN 109150662B CN 201811006366 A CN201811006366 A CN 201811006366A CN 109150662 B CN109150662 B CN 109150662B
- Authority
- CN
- China
- Prior art keywords
- subsystem
- subsystems
- distributed system
- unique identifier
- node
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例公开了一种消息传输方法、分布式系统、设备、介质和无人车,其中,该方法包括:分布式系统中的任一目标子系统接收其他各子系统发送的心跳消息,并依据接收到的心跳消息判断其他各子系统中是否存在失活子系统;如果判断出存在失活子系统,则获取失活子系统的唯一标识,并在之后接收到的业务消息中清除包含该唯一标识的业务消息,其中,唯一标识用于区分不同的子系统。本发明实施例解决了现有分布式系统中容易出现业务消息与子系统状态不一致的问题,确保了分布式系统中业务消息与子系统状态的一致性,进而保证了分布式系统的正常运行。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种消息传输方法、分布式系统、设备、介质和无人车。
背景技术
在分布式系统中,各子系统间共享自身维护的信息,从而每个子系统都持有一份分布式系统全局范围内的信息。
但是,当任一子系统由于突发状况,在没有来得及通知其他子系统的情况下就退出了分布式系统时,其他子系统无法获取这一变化,从而使得其他子系统持有的信息中仍然包含已退出的子系统信息,这就无法反映当前分布式系统中信息的实际情况,也就无法确保分布式系统中信息与子系统状态的一致性;进一步的,考虑子系统中存在延迟效应,当任一子系统由正常状态变为失活状态,在较短时间内,该子系统依然可以向其他子系统发送消息,导致其他子系统接收的消息中便可能包含已退出的子系统失活后发送的消息,进而导致整个分布式系统中消息与子系统状态的一致性也无法得到保证。
发明内容
本发明实施例提供一种消息传输方法、分布式系统、设备、介质和无人车,以确保分布式系统中业务消息与子系统状态的一致性。
第一方面,本发明实施例提供了一种基于分布式系统的消息传输方法,所述分布式系统包括多个子系统,该方法包括:
所述分布式系统中的任一目标子系统接收其他各子系统发送的心跳消息;
所述目标子系统依据接收到的心跳消息判断所述其他各子系统中是否存在失活子系统;
如果判断出存在失活子系统,则获取所述失活子系统的唯一标识,并在之后接收到的业务消息中清除包含所述唯一标识的业务消息,其中,所述唯一标识用于区分不同的子系统。
第二方面,本发明实施例还提供了一种分布式系统,所述分布式系统包括多个子系统,该子系统包括:
心跳消息接收模块,用于接收其他各子系统发送的心跳消息;
失活子系统判断模块,用于依据接收到的心跳消息判断所述其他各子系统中是否存在失活子系统;
业务消息清除模块,用于如果判断出存在失活子系统,则获取所述失活子系统的唯一标识,并在之后接收到的业务消息中清除包含所述唯一标识的业务消息,其中,所述唯一标识用于区分不同的子系统。
第三方面,本发明实施例还提供了一种计算机设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的基于分布式系统的消息传输方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的基于分布式系统的消息传输方法。
第五方面,本发明实施例还提供了一种无人车,包括车体,还包括如本发明任一实施例所述的计算机设备,其中,所述计算机设备上集成如本发明任一实施例所述的分布式系统。
本发明实施例通过分布式系统中的任一目标子系统接收其他各子系统发送的心跳消息,并依据接收到的心跳消息判断其他各子系统中是否存在失活子系统;如果判断出存在失活子系统,则获取失活子系统的唯一标识,并在之后接收到的业务消息中清除包含该唯一标识的业务消息,解决了现有分布式系统中容易出现业务消息与子系统状态不一致的问题,确保了分布式系统中业务消息与子系统状态的一致性,进而保证了分布式系统的正常运行。
附图说明
图1是本发明实施例一提供的基于分布式系统的消息传输方法的流程图;
图2是本发明实施例二提供的基于分布式系统的消息传输方法的流程图;
图3是本发明实施例三提供的分布式系统中子系统的结构示意图;
图4是本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的基于分布式系统的消息传输方法的流程图,本实施例可适用于基于分布式系统进行消息传输的情况。该方法可以由包括多个子系统的分布式系统来执行,具体的可以由各子系统来执行。该分布式系统可以采用软件和/或硬件的方式实现,并可集成于计算机设备上,该计算机设备可以配置在车辆上,例如具有控制和计算能力的无人车等。
如图1所示,该方法可以包括:
S110、分布式系统中的任一目标子系统接收其他各子系统发送的心跳消息。
分布式系统包括多个子系统,任意子系统之间均可进行通信。对于任一目标子系统,可以同时接收至少一个其他子系统的发送的心跳消息。每个心跳消息与发送该心跳消息的子系统之间存在一一对应关系,这使得目标子系统可以通过接收的心跳消息区分出不同的子系统。其中,心跳消息是一种发送源发送到接收方的消息,依据该心跳消息可以让接收方确定发送源是否出现故障或终止,即任一目标子系统可以通过接收心跳消息,确定发送心跳消息的子系统的状态。
可选的,该方法还包括:目标子系统向分布式系统中的其他各子系统发送心跳消息。即任意子系统可以同时具有两种角色:心跳消息的接收方与发送方。具体的,关于不同子系统之间心跳机制的实现,可以利用传统的周期检测心跳机制或者累计失效检测机制等方法实现。示例性的,任一目标子系统按照预设的接收周期接收其他子系统发送的心跳消息,同时以预设的发送周期向其他子系统发送心跳消息。其中,接收周期与具体的发送子系统有关,发送周期与接收周期可以适应性进行设置,本实施例不作具体限定。
S120、目标子系统依据接收到的心跳消息判断其他各子系统中是否存在失活子系统。
当任一目标子系统没有接收到分布式系统中某个子系统发送的心跳消息时,则认为该子系统失活。示例性的,分布式系统中存在三个子系统:子系统A、子系统B和子系统C,假如将子系统A作为目标子系统,当不存在子系统失活的情况下,子系统A可以按照不同的接收周期同时接收到子系统B和子系统C发送的心跳消息;当某一时间内子系统A只收到子系统C发送的心跳消息,则确定子系统B失活。其中,子系统失活的原因包括通信故障、系统漏洞与系统崩溃等。因此,通过心跳消息在不同子系统之间的传输,可以使得各个子系统分别掌握整个分布式系统中其他子系统的状态,确定出存在状态异常或失活的子系统。
当任一目标子系统确定出失活子系统,则执行操作S130,清除该失活子系统失活后发送的消息;否则,继续执行操作S110,持续接收其他各子系统发送的心跳消息。
S130、获取失活子系统的唯一标识,并在之后接收到的业务消息中清除包含该唯一标识的业务消息,其中,唯一标识用于区分不同的子系统。
其中,业务消息是指分布式系统处理具体的主题任务时,参与该主题任务的所有子系统之间传输的事物处理消息。不同子系统均有属于各自的唯一标识,当其他子系统与目标子系统通信时,唯一标识将会被携带在业务消息中一起发送给目标子系统,从而实现不同子系统之间业务消息的区分。因此,当存在失活子系统时,可以利用失活子系统的唯一标识区分出失活子系统发送的业务消息。
需要说明的是,关于其他子系统唯一标识的获取,可以通过任一目标子系统与其他子系统在系统初始化阶段的信息共享中预先获取,然后以唯一标识列表的形式保存至任一目标子系统文件中,其中,唯一标识列表中保存了唯一标识与所属子系统的一一对应关系。当任一目标子系统确定出失活子系统后,利用该失活子系统名称或者标号在唯一标识列表中匹配,便可确定出失活子系统的唯一标识,进而区分出包含有该唯一标识的业务消息。
当任一目标子系统在发现失活子系统之后接收的业务消息中,清除包含有失活子系统的唯一性标识的业务消息后,整个分布式系统中便不存在该失活子系统由于延迟效应等因素在失活后发送的业务消息,从而保证了分布式系统中业务消息与子系统状态的一致性,即分布式系统中当前只存在状态正常的子系统发送的业务消息。
此外,子系统失活后由于不能执行正常的业务处理功能,可以将其失活后发送的业务消息称之为无效业务消息。如果任一目标子系统接收到该无效业务消息,没有及时清除,则可能继续产生与无效业务消息对应的业务请求,但由于失活子系统此时不能执行正常的业务处理功能,不能响应于目标子系统的业务请求,导致这类业务消息对应的处理任务不能被正常执行,进而影响分布式系统的正常运行。而本申请方案中则可以避免上述情况的发生,当任一目标子系统发现失活子系统时,及时清除失活子系统发送的无效业务消息,保证分布式系统的正常运行;同时,分布式系统中产生的对应于无效业务消息的应用进程也可以理解为无效的应用进程,通过无效业务消息的清除,也可以避免分布式系统中出现无效的应用进程导致系统资源浪费的现象。
本实施例的技术方案通过分布式系统中的任一目标子系统接收其他各子系统发送的心跳消息,并以此判断其他各子系统中是否存在失活子系统;如果判断出存在失活子系统,则获取失活子系统的唯一标识,并在之后接收到的业务消息中清除包含该唯一标识的业务消息,解决了现有分布式系统中容易出现消息与子系统状态不一致的问题,确保了分布式系统中业务消息与子系统状态的一致性,进而保证了分布式系统的正常运行,同时也可以避免分布式系统中出现无效的应用进程导致系统资源浪费的现象。
实施例二
图2是本发明实施例二提供的基于分布式系统的消息传输方法的流程图,本实施例是在上述实施例的基础上进一步进行优化。如图2所示,该方法可以包括:
S210、分布式系统中的任一目标子系统根据其他各子系统中各节点发送的拓扑消息,获取其他各子系统中各节点的属性信息,并保存由各节点的属性信息构成的分布式系统架构信息,其中,拓扑消息中至少包括节点名和节点所属子系统的唯一标识。
分布式系统中每个子系统包括至少一个节点,同一子系统中不同节点之间的节点信息以及不同子系统之间节点信息均可以基于拓扑消息的传输实现信息共享或同步。拓扑消息具体可以由每个子系统的拓扑管理模块发送。拓扑消息中包括但不限于:节点名和节点所属子系统的唯一标识;节点的属性信息属于拓扑消息的一部分,包括但不限于:节点名和节点所属子系统的唯一标识。
示例性的,分布式系统中包括子系统A和子系统B,子系统A中包括订阅channel_1的节点a,子系统B中包括发布channel_1的节点b。当分布式系统启动时,子系统A的拓扑管理模块将会保存节点a的属性信息,以证明节点a属于分布式系统;同时,子系统A的拓扑管理模块接收子系统B的拓扑管理模块发送的拓扑消息,保存属于子系统B中发布channel_1的节点b的属性信息,并将节点b的属性信息通知节点a;当子系统B中发布channel_1的节点发生变化时,子系统A的拓扑管理模块根据接收的子系统B发送的拓扑消息更新通知,以更新所保存的属于子系统B中发布channel_1的节点的属性信息,并将更新后的节点属性信息通知节点a。例如,子系统B中发布channel_1的节点b退出,或者增加了发布channel_1的节点c,均会向子系统A的拓扑管理模块发送拓扑消息更新通知,以实现子系统A的拓扑管理模块将发布channel_1的节点b删除或者增加节点c,此时,节点a的信息中也会同步更新发布channel_1的节点属性信息。相应的,在子系统B的拓扑管理模块也执行与子系统A的拓扑管理模块类似的操作,即保存节点b和节点a的属性信息,并根据子系统A的拓扑管理模块发送的拓扑消息更新通知,更新属于子系统A中订阅channel_1的节点属性信息,同时将更新的节点信息通知节点b。
此外,在无人自动驾驶车辆中,整个车辆系统属于分布式系统,关于子系统和节点,可示例性的如下理解:例如,对于传感器子系统,可以包括雷达节点、定位节点和摄像机节点等;对于感知子系统,可以包括障碍物识别节点;对于预测规划控制子系统,可以包括预测节点、规划节点和控制节点等。分布式系统运行过程中,各子系统的节点根据主题任务的处理需求,存在相互关联的业务关系。
S220、目标子系统接收其他各子系统发送的心跳消息。
其中,心跳消息具体也可以由每个子系统中的拓扑管理模块发送,即心跳消息可以包含在拓扑消息中的形式进行发送,也可以独立于拓扑消息中的形式发送。
S230、目标子系统依据接收到的心跳消息判断其他各子系统中是否存在失活子系统。
当任一目标子系统判断出存在失活子系统,则执行操作S240;否则,继续执行操作S220。
S240、获取失活子系统的唯一标识。
子系统的唯一标识是在节点之间发送拓扑消息时携带,即目标子系统可以根据其他各子系统中各节点发送的拓扑消息,获取其他各子系统的唯一性标识。
S250、将该唯一标识发送至目标子系统中的每个节点,以指示每个节点通知目标子系统中用于接收业务消息的管理模块,在接收到的业务消息中清除包含该唯一标识的业务消息。
其中,接收业务消息的管理模块用于对任一目标子系统接收的业务消息进行统一管理,例如消息分发与删除等。示例性的,该管理模块统一接收其他各子系统发送的业务消息,然后再统一分发给目标子系统的各节点。当任一目标子系统获取失活子系统的唯一标识,可以通过拓扑管理模块将该唯一标识发送至各个节点,并通知各节点该失活子系统已失活;各个节点根据接收的唯一标识,向目标子系统中业务消息的管理模块发送清除业务消息指示,该管理模块根据接收的清除业务消息指示,将各节点中包含唯一标识的业务消息清除。
此外,除了利用管理模块统一清除各节点中包含失活子系统唯一标识的业务消息外,各节点接收到失活子系统的唯一标识后,也可以根据节点预设的消息修改权限直接清除无效的业务消息。
S260、根据该唯一标识对保存的分布式系统架构信息进行更新。
当子系统失活后,失活子系统中的各节点同时变为无效节点。由于同一子系统中的各节点共同使用子系统的唯一标识,因此,可以根据失活子系统的唯一标识,确定属于失活子系统的各无效节点,进而将保存在任一目标子系统中各无效节点的属性信息删除,使得目标子系统中只保存状态正常的子系统的各节点属性信息,实现保存的分布式系统架构信息的实时更新,确保分布式系统架构信息与子系统状态的一致性。
本实施例的技术方案通过分布式系统中的任一目标子系统根据其他各子系统中各节点发送的拓扑消息,获取其他各子系统中各节点的属性信息,其中,拓扑消息用于实现子系统之间节点信息的共享;然后依据接收的其他各子系统发送的心跳消息,判断是否存在失活子系统;当判断出存在失活子系统时,便由接收业务消息的管理模块统一清除目标子系统中包含有该失活子系统的唯一标识的业务消息,解决了现有分布式系统中容易出现业务消息与子系统状态不一致的问题,确保了分布式系统中业务消息与子系统状态的一致性,进而保证了分布式系统的正常运行,同时也可以避免分布式系统中出现无效的应用进程导致系统资源浪费的现象;并且,判断出失活子系统之后,通过更新任一目标子系统保存的分布式系统架构信息,确保了分布式系统架构信息与子系统状态的一致性。
实施例三
图3是本发明实施例三提供的分布式系统中子系统的结构示意图,本实施例可适用于基于分布式系统进行消息传输的情况。该分布式系统包括多个子系统。该分布式系统可以采用软件和/或硬件的方式实现,并可集成于计算机设备上,该计算设备可以配置在车辆上,例如具有控制和计算能力的无人车等。
如图3所示,该分布式系统中的每个子系统包括:心跳消息接收模块310、失活子系统判断模块320和业务消息清除模块330,其中:
心跳消息接收模块310,用于接收其他各子系统发送的心跳消息;
失活子系统判断模块320,用于依据接收到的心跳消息判断所述其他各子系统中是否存在失活子系统;
业务消息清除模块330,用于如果判断出存在失活子系统,则获取失活子系统的唯一标识,并在之后接收到的业务消息中清除包含失活子系统的唯一标识的业务消息,其中,唯一标识用于区分不同的子系统。
可选的,每个子系统包括至少一个节点;
相应的,业务消息清除模块330包括:
唯一标识获取单元,用于如果判断出存在失活子系统,则获取失活子系统的唯一标识;
唯一标识发送单元,用于将失活子系统的唯一标识发送至当前子系统中的每个节点,以指示每个节点通知当前子系统中用于接收业务消息的管理模块,在接收到的业务消息中清除包含失活子系统的唯一标识的业务消息。
可选的,子系统的唯一标识是在节点之间发送拓扑消息时携带,其中,拓扑消息用于实现子系统之间节点信息的共享。
可选的,该子系统还包括:
节点信息获取模块,用于接收其他各子系统发送的心跳消息之前,根据其他各子系统中各节点发送的拓扑消息,获取其他各子系统中各节点的属性信息,并保存由属性信息构成的分布式系统架构信息,其中,拓扑消息中至少包括节点名和节点所属子系统的唯一标识;
相应的,该子系统还包括:
信息更新模块,用于当判断出存在失活子系统后,根据失活子系统的唯一标识对保存的分布式系统架构信息进行更新。
可选的,该子系统还包括:
心跳消息发送模块,用于向分布式系统中的其他各子系统发送心跳消息。
本发明实施例所提供的分布式系统可执行本发明任意实施例所提供的基于分布式系统的消息传输方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4是本发明实施例四提供的一种计算机设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性计算机设备412的框图。图4显示的计算机设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机设备412以通用计算机设备的形式表现。计算机设备412的组件可以包括但不限于:一个或者多个处理器416,存储装置428,连接不同系统组件(包括存储装置428和处理器416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储装置总线或者存储装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry SubversiveAlliance,ISA)总线,微通道体系结构(Micro Channel Architecture,MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)430和/或高速缓存存储器432。计算机设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘,例如只读光盘(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储装置428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储装置428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备412也可以与一个或多个外部设备414(例如键盘、指向终端、显示器424等)通信,还可与一个或者多个使得用户能与该计算机设备412交互的终端通信,和/或与使得该计算机设备412能与一个或多个其它计算终端进行通信的任何终端(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,计算机设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器420通过总线418与计算机设备412的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备412使用其它硬件和/或软件模块,包括但不限于:微代码、终端驱动器、冗余处理器、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of IndependentDisks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器416通过运行存储在存储装置428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的基于分布式系统的消息传输方法,该方法包括:
所述分布式系统中的任一目标子系统接收其他各子系统发送的心跳消息;
所述目标子系统依据接收到的心跳消息判断所述其他各子系统中是否存在失活子系统;
如果判断出存在失活子系统,则获取所述失活子系统的唯一标识,并在之后接收到的业务消息中清除包含所述唯一标识的业务消息,其中,所述唯一标识用于区分不同的子系统。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的基于分布式系统的消息传输方法,该方法包括:
所述分布式系统中的任一目标子系统接收其他各子系统发送的心跳消息;
所述目标子系统依据接收到的心跳消息判断所述其他各子系统中是否存在失活子系统;
如果判断出存在失活子系统,则获取所述失活子系统的唯一标识,并在之后接收到的业务消息中清除包含所述唯一标识的业务消息,其中,所述唯一标识用于区分不同的子系统。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
实施例六
本发明实施例六还提供了一种无人车,包括车体,还包括如本发明实施例所述的计算机设备,其中,该计算机设备上集成如本发明任意实施例所述的分布式系统。示例性的,该分布式系统包括多个子系统,每个子系统可以包括:
心跳消息接收模块,用于接收其他各子系统发送的心跳消息;
失活子系统判断模块,用于依据接收到的心跳消息判断所述其他各子系统中是否存在失活子系统;
业务消息清除模块,用于如果判断出存在失活子系统,则获取所述失活子系统的唯一标识,并在之后接收到的业务消息中清除包含所述唯一标识的业务消息,其中,所述唯一标识用于区分不同的子系统。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (13)
1.一种基于分布式系统的消息传输方法,所述分布式系统包括多个子系统,其特征在于,所述方法包括:
所述分布式系统中的任一目标子系统接收其他各子系统发送的心跳消息;
所述目标子系统依据接收到的心跳消息判断所述其他各子系统中是否存在失活子系统;
如果判断出存在失活子系统,则获取所述失活子系统的唯一标识,并在之后接收到的业务消息中清除包含所述唯一标识的业务消息,其中,所述唯一标识用于区分不同的子系统,所述包含所述唯一标识的业务消息是所述失活子系统由于延迟效应在失活后发送的业务消息。
2.根据权利要求1所述的方法,其特征在于,每个子系统包括至少一个节点;
相应的,所述在之后接收到的业务消息中清除包含所述唯一标识的业务消息,包括:
将所述唯一标识发送至所述目标子系统中的每个节点,以指示所述每个节点通知所述目标子系统中用于接收业务消息的管理模块,在所述接收到的业务消息中清除包含所述唯一标识的业务消息。
3.根据权利要求2所述的方法,其特征在于,所述子系统的唯一标识是在节点之间发送拓扑消息时携带,其中,所述拓扑消息用于实现子系统之间节点信息的共享。
4.根据权利要求3所述的方法,其特征在于,在所述目标子系统接收其他各子系统发送的心跳消息之前,所述方法还包括:
所述目标子系统根据其他各子系统中各节点发送的拓扑消息,获取其他各子系统中各节点的属性信息,并保存由所述属性信息构成的分布式系统架构信息,其中,所述拓扑消息中至少包括节点名和节点所属子系统的唯一标识;
相应的,当判断出存在失活子系统后,所述方法还包括:
根据所述失活子系统的唯一标识对保存的分布式系统架构信息进行更新。
5.根据权利要求1至4中任一所述的方法,其特征在于,所述方法还包括:
所述目标子系统向所述分布式系统中的其他各子系统发送心跳消息。
6.一种分布式系统,所述分布式系统包括多个子系统,其特征在于,所述子系统包括:
心跳消息接收模块,用于接收其他各子系统发送的心跳消息;
失活子系统判断模块,用于依据接收到的心跳消息判断所述其他各子系统中是否存在失活子系统;
业务消息清除模块,用于如果判断出存在失活子系统,则获取所述失活子系统的唯一标识,并在之后接收到的业务消息中清除包含所述唯一标识的业务消息,其中,所述唯一标识用于区分不同的子系统,所述包含所述唯一标识的业务消息是所述失活子系统由于延迟效应在失活后发送的业务消息。
7.根据权利要求6所述的分布式系统,其特征在于,每个子系统包括至少一个节点;
相应的,所述业务消息清除模块包括:
唯一标识获取单元,用于如果判断出存在失活子系统,则获取所述失活子系统的唯一标识;
唯一标识发送单元,用于将所述唯一标识发送至当前子系统中的每个节点,以指示所述每个节点通知当前子系统中用于接收业务消息的管理模块,在所述接收到的业务消息中清除包含所述唯一标识的业务消息。
8.根据权利要求7所述的分布式系统,其特征在于,所述子系统的唯一标识是在节点之间发送拓扑消息时携带,其中,所述拓扑消息用于实现子系统之间节点信息的共享。
9.根据权利要求8所述的分布式系统,其特征在于,所述子系统还包括:
节点信息获取模块,用于接收其他各子系统发送的心跳消息之前,根据其他各子系统中各节点发送的拓扑消息,获取其他各子系统中各节点的属性信息,并保存由所述属性信息构成的分布式系统架构信息,其中,所述拓扑消息中至少包括节点名和节点所属子系统的唯一标识;
相应的,所述子系统还包括:
信息更新模块,用于当判断出存在失活子系统后,根据所述失活子系统的唯一标识对保存的分布式系统架构信息进行更新。
10.根据权利要求6至9中任一所述的分布式系统,其特征在于,所述子系统还包括:
心跳消息发送模块,用于向所述分布式系统中的其他各子系统发送心跳消息。
11.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1~5中任一所述的基于分布式系统的消息传输方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~5中任一所述的基于分布式系统的消息传输方法。
13.一种无人车,包括车体,其特征在于,还包括如权利要求11所述的计算机设备,其中,所述计算机设备上集成如权利要求6~10任一所述的分布式系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811006366.4A CN109150662B (zh) | 2018-08-30 | 2018-08-30 | 消息传输方法、分布式系统、设备、介质和无人车 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811006366.4A CN109150662B (zh) | 2018-08-30 | 2018-08-30 | 消息传输方法、分布式系统、设备、介质和无人车 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109150662A CN109150662A (zh) | 2019-01-04 |
CN109150662B true CN109150662B (zh) | 2020-08-21 |
Family
ID=64829588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811006366.4A Active CN109150662B (zh) | 2018-08-30 | 2018-08-30 | 消息传输方法、分布式系统、设备、介质和无人车 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109150662B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110806927A (zh) * | 2019-10-15 | 2020-02-18 | 中国航空无线电电子研究所 | 分布式系统下的软件运行控制方法 |
CN112865993B (zh) * | 2019-11-27 | 2022-10-14 | 上海哔哩哔哩科技有限公司 | 分布式主从系统中从节点的切换方法和装置 |
CN111031578A (zh) * | 2019-11-27 | 2020-04-17 | 新石器慧通(北京)科技有限公司 | 一种用于可移动载体的信息处理系统及无人车辆 |
CN111683113A (zh) * | 2020-04-21 | 2020-09-18 | 视联动力信息技术股份有限公司 | 一种清除业务的方法及装置 |
CN111800659B (zh) * | 2020-06-03 | 2022-05-24 | 深圳市灰度科技有限公司 | 节目同步的方法、装置、显示终端和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355413A (zh) * | 2011-08-26 | 2012-02-15 | 北京邮电大学 | 一种大规模实时统一消息空间的方法及其系统 |
CN104092718A (zh) * | 2013-12-12 | 2014-10-08 | 腾讯数码(天津)有限公司 | 分布式系统及分布式系统中配置信息的更新方法 |
CN106412123A (zh) * | 2016-11-28 | 2017-02-15 | 上海斐讯数据通信技术有限公司 | 云接入控制器分布式处理终端设备信息的方法和系统 |
CN106911728A (zh) * | 2015-12-22 | 2017-06-30 | 华为技术服务有限公司 | 分布式系统中主节点的选取方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9800653B2 (en) * | 2015-03-06 | 2017-10-24 | Microsoft Technology Licensing, Llc | Measuring responsiveness of a load balancing system |
-
2018
- 2018-08-30 CN CN201811006366.4A patent/CN109150662B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355413A (zh) * | 2011-08-26 | 2012-02-15 | 北京邮电大学 | 一种大规模实时统一消息空间的方法及其系统 |
CN104092718A (zh) * | 2013-12-12 | 2014-10-08 | 腾讯数码(天津)有限公司 | 分布式系统及分布式系统中配置信息的更新方法 |
CN106911728A (zh) * | 2015-12-22 | 2017-06-30 | 华为技术服务有限公司 | 分布式系统中主节点的选取方法和装置 |
CN106412123A (zh) * | 2016-11-28 | 2017-02-15 | 上海斐讯数据通信技术有限公司 | 云接入控制器分布式处理终端设备信息的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109150662A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109150662B (zh) | 消息传输方法、分布式系统、设备、介质和无人车 | |
CN109194736B (zh) | 消息去重方法、装置、电子设备、介质和无人车 | |
US9647972B2 (en) | Message delivery in messaging networks | |
CN110535692B (zh) | 故障处理方法、装置、计算机设备、存储介质及存储系统 | |
CN110795503A (zh) | 分布式存储系统的多集群数据同步方法及相关装置 | |
CN111371898B (zh) | 一种消息监听方法、装置、设备及存储介质 | |
US11709620B2 (en) | Methods and systems for memory management in a publish and subscribe system | |
CN110740145A (zh) | 消息消费方法、装置、存储介质及电子设备 | |
CN112346926A (zh) | 资源状态监控方法、装置及电子设备 | |
CN111818145B (zh) | 一种文件传输方法、装置、系统、设备及存储介质 | |
CN111078238A (zh) | 容器环境下应用配置集中处理方法及装置 | |
CN114938395A (zh) | 服务响应方法、装置、设备及存储介质 | |
CN111240760B (zh) | 基于注册中心的应用发布方法、系统、存储介质及设备 | |
CN109309583B (zh) | 基于分布式系统的信息获取方法、装置、电子设备和介质 | |
CN110874473A (zh) | 病毒检测方法、装置及系统、云服务系统、存储介质 | |
CN114816866A (zh) | 故障处理方法、装置、电子设备和存储介质 | |
US20220159070A1 (en) | Methods and systems for enabling publish-subscribe message transmission in a distributed environment | |
US8380938B2 (en) | Providing shared access to data storage resources across cluster computing environment boundaries | |
CN112217718A (zh) | 一种业务处理方法、装置、设备及存储介质 | |
CN112162842A (zh) | 用于撤销请求的方法、装置、电子设备及可读存储介质 | |
CN113495794B (zh) | 一种Android系统的模块桥接方法、装置、电子设备及存储介质 | |
CN115767448B (zh) | 一种消息发送方法、装置、设备和存储介质 | |
CN109150612B (zh) | 一种用于无人车的基于分布式系统的检测方法及电子设备 | |
CN116244099B (zh) | 嵌入式系统内进程通讯方法、装置、电子设备和存储介质 | |
CN117493024B (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 |