System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及通信,尤其涉及一种分布式系统异常消息转发控制方法、装置、设备及介质。
技术介绍
1、现有技术中,对于分布式系统,分布式消息中间件的异步消息复制通常采用并行转发的方式,即消息的业务处理过程和转发过程同时进行。此方案的优势是转发时延较低,无须等待业务处理完成即可转发,转发过程也不会阻塞消息的处理过程。
2、但是,上述处理方式中消息的转发进度不受控制,业务处理过程无法控制转发的时机,因此可能出现从节点先于主节点完成消息处理的情况。
技术实现思路
1、鉴于以上内容,有必要提供一种分布式系统异常消息转发控制方法、装置、设备及介质,旨在解决分布式系统异常消息转发时机无法控制的问题。
2、一种分布式系统异常消息转发控制方法,应用于分布式系统,所述分布式系统包括主节点、从节点及应用端;所述分布式系统异常消息转发控制方法包括:
3、当所述主节点接收到待处理消息时,所述主节点启动递交线程将所述待处理消息同时递交至所述应用端的业务线程及所述主节点的转发线程;
4、所述业务线程对所述待处理消息进行处理得到处理结果,并根据所述处理结果确定所述待处理消息是否为异常消息;
5、当确定所述待处理消息是异常消息时,所述业务线程向所述转发线程发送异常消息通知;
6、当所述转发线程接收到所述异常消息通知时,所述转发线程为所述待处理消息添加异常标识得到目标消息,并将所述目标消息转发至所述从节点;
7、当所述从节点接收到所述目
8、根据本专利技术优选实施例,所述根据所述处理结果确定所述待处理消息是否为异常消息后,所述方法还包括:
9、当确定所述待处理消息不是所述异常消息时,所述业务线程向所述转发线程发送所述待处理消息的已正常处理完成通知。
10、根据本专利技术优选实施例,在所述主节点启动递交线程将所述待处理消息同时递交至所述应用端的业务线程及所述主节点的转发线程后,所述方法还包括:
11、当所述转发线程接收到所述待处理消息时,所述转发线程获取预先配置的消息格式;
12、所述转发线程基于所述消息格式对所述待处理消息进行封装;
13、在完成封装后,所述转发线程等待所述业务线程发送通知;
14、其中,发送的通知包括所述异常消息通知及所述已正常处理完成通知。
15、根据本专利技术优选实施例,所述业务线程向所述转发线程发送异常消息通知包括:
16、当所述待处理消息处理异常时,所述业务线程生成异常序号;
17、所述业务线程基于所述异常序号向所述转发线程发送所述异常消息通知。
18、根据本专利技术优选实施例,所述转发线程为所述待处理消息添加异常标识得到目标消息包括:
19、所述转发线程向所述待处理消息的消息头中添加所述异常标识,得到所述目标消息。
20、根据本专利技术优选实施例,当所述转发线程接收到所述异常消息通知时,所述方法还包括:
21、所述转发线程将所述应用端回滚至处理所述待处理消息前的状态。
22、根据本专利技术优选实施例,所述业务线程向所述转发线程发送所述待处理消息的已正常处理完成通知后,所述方法还包括:
23、所述转发线程将封装后的所述待处理消息转发至所述从节点;
24、当所述从节点接收到封装后的所述待处理消息时,所述从节点向所述应用程序递交封装后的所述待处理消息。
25、一种分布式系统异常消息转发控制装置,运行于分布式系统,所述分布式系统包括主节点、从节点及应用端;所述分布式系统异常消息转发控制装置包括:
26、所述主节点,用于当所述主节点接收到待处理消息时,启动递交线程将所述待处理消息同时递交至所述应用端的业务线程及所述主节点的转发线程;
27、所述业务线程,用于对所述待处理消息进行处理得到处理结果,并根据所述处理结果确定所述待处理消息是否为异常消息;
28、所述业务线程,还用于当确定所述待处理消息是异常消息时,向所述转发线程发送异常消息通知;
29、所述转发线程,用于当所述转发线程接收到所述异常消息通知时,为所述待处理消息添加异常标识得到目标消息,并将所述目标消息转发至所述从节点;
30、所述从节点,用于当所述从节点接收到所述目标消息且识别到所述异常标识时,不向应用程序递交所述目标消息。
31、一种计算机设备,所述计算机设备包括:
32、存储器,存储至少一个指令;及
33、处理器,执行所述存储器中存储的指令以实现所述分布式系统异常消息转发控制方法。
34、一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述分布式系统异常消息转发控制方法。
35、由以上技术方案可以看出,本专利技术能够先基于业务线程对待处理消息的处理结果判断待处理消息是否为异常消息,再由业务线程向转发线程发送异常消息通知,在接到通知后转发线程为异常消息添加异常标识后再将得到的目标消息转发至从节点,由于转发线程等待通知后再对消息进行转发,因此不会出现异常消息已转发给从节点但主节点对应的应用处理还未完成的现象;从节点不递交带有异常标识的消息至应用程序,这样,对异常消息同样进行了转发,即主从节点接收和处理的消息的数量及内容相同,以保证主从节点状态的一致性,但从节点不递交异常消息至应用,因此即便将异常消息转发给从节点也不会造成应用异常。
本文档来自技高网...【技术保护点】
1.一种分布式系统异常消息转发控制方法,其特征在于,应用于分布式系统,所述分布式系统包括主节点、从节点及应用端;所述分布式系统异常消息转发控制方法包括:
2.如权利要求1所述的分布式系统异常消息转发控制方法,其特征在于,所述根据所述处理结果确定所述待处理消息是否为异常消息后,所述方法还包括:
3.如权利要求2所述的分布式系统异常消息转发控制方法,其特征在于,在所述主节点启动递交线程将所述待处理消息同时递交至所述应用端的业务线程及所述主节点的转发线程后,所述方法还包括:
4.如权利要求1所述的分布式系统异常消息转发控制方法,其特征在于,所述业务线程向所述转发线程发送异常消息通知包括:
5.如权利要求1所述的分布式系统异常消息转发控制方法,其特征在于,所述转发线程为所述待处理消息添加异常标识得到目标消息包括:
6.如权利要求1所述的分布式系统异常消息转发控制方法,其特征在于,当所述转发线程接收到所述异常消息通知时,所述方法还包括:
7.如权利要求3所述的分布式系统异常消息转发控制方法,其特征在于,所述业务线程向所
8.一种分布式系统异常消息转发控制装置,其特征在于,运行于分布式系统,所述分布式系统包括主节点、从节点及应用端;所述分布式系统异常消息转发控制装置包括:
9.一种计算机设备,其特征在于,所述计算机设备包括:
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现如权利要求1至7中任意一项所述的分布式系统异常消息转发控制方法。
...【技术特征摘要】
1.一种分布式系统异常消息转发控制方法,其特征在于,应用于分布式系统,所述分布式系统包括主节点、从节点及应用端;所述分布式系统异常消息转发控制方法包括:
2.如权利要求1所述的分布式系统异常消息转发控制方法,其特征在于,所述根据所述处理结果确定所述待处理消息是否为异常消息后,所述方法还包括:
3.如权利要求2所述的分布式系统异常消息转发控制方法,其特征在于,在所述主节点启动递交线程将所述待处理消息同时递交至所述应用端的业务线程及所述主节点的转发线程后,所述方法还包括:
4.如权利要求1所述的分布式系统异常消息转发控制方法,其特征在于,所述业务线程向所述转发线程发送异常消息通知包括:
5.如权利要求1所述的分布式系统异常消息转发控制方法,其特征在于,所述转发线程为所述待处理消息添加异常标识得到目标消...
【专利技术属性】
技术研发人员:张希,张卫,李杰,马昭,张彬彬,
申请(专利权)人:深圳华锐分布式技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。