本申请属于数据交互,尤其涉及一种数据交互方法、节点、终端设备及可读介质。
背景技术:
1、在数据广播技术中,现有的gossip广播协议是每次选取若干个直连节点进行广播,但是在一些连通性不太好或极端网(例如含有星型网络拓扑的网络)中,push模式(数据交互中数据发送端主动发送数据至数据接收端)收敛速度慢,需要借助pull模式(数据接收端主动从数据发送端拉取数据)才能达到收敛,但是为了提高收敛速度,pull模式可能导致消息重复处理的问题,造成消息冗余严重,因此存在诸多不足。
技术实现思路
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、对每个待广播节点进行排序,得到发送节点序列;
36、根据所述发送节点序列依次向待广播节点发送对应的所述第二消息。
37、在可选的实施例中,所述数据交互方法还包括:
38、若当前所述第二消息的广播次数低于设定广播次数,从直连节点中确定相邻下一次广播的待广播节点,更新所述第二消息中的所述已广播节点列表,并向相邻下一次广播的待广播节点发送所述第二消息,直至当前广播次数达到设定广播次数。
39、第二方面,本申请实施例提供一种数据交互节点,包括:
40、待广播节点确定模块,根据待广播的第一消息,确定本次广播的待广播节点;所述第一消息包括已广播节点列表;
41、第二消息生成模块,根据所述待广播节点的节点信息更新所述已广播节点列表,得到第二消息;
42、第二消息发送模块,向待广播节点发送所述第二消息。
43、第三方面,本申请实施例提供了一种终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
44、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
45、本申请的有益效果
46、本申请提供一种数据交互方法、节点、终端设备及可读介质,通过对gossip广播协议进行优化,在待广播消息中加入已广播节点列表,之后从直连节点中选取出没有被广播的节点,然后向该没有被广播的节点发送更新后的已广播节点列表的消息,从而每个节点在接收到消息时可以知晓当前已广播的节点,进而可以选择仅向未被广播的节点发送消息,降低了同一个节点重复发送的概率,提高了收敛速度,同时由于消息不会被重复处理,降低了消息的冗余度,从而解决了目前gossip广播协议出现的无法兼顾收敛速度和消息冗余度的问题。
1.一种数据交互方法,其特征在于,所述数据交互方法应用于节点;所述数据交互方法包括:
2.根据权利要求1所述的数据交互方法,其特征在于,所述第一消息包括待广播节点范围;所述根据待广播的第一消息,确定本次广播的待广播节点,包括:
3.根据权利要求2所述的数据交互方法,其特征在于,所述根据已广播节点列表和可广播节点的直连节点的节点信息,确定本次广播的待广播节点,包括:
4.根据权利要求2所述的数据交互方法,其特征在于,所述根据已广播节点列表和可广播节点的直连节点的节点信息,确定本次广播的待广播节点,包括:
5.根据权利要求4所述的数据交互方法,其特征在于,所述根据已广播节点列表和可广播节点的直连节点的节点信息,确定本次广播的待广播节点,还包括:
6.根据权利要求1所述的数据交互方法,其特征在于,所述第一消息通过所述的其他节点发送得到;所述数据交互还包括:
7.根据权利要求6所述的数据交互方法,其特征在于,所述数据交互方法还包括:
8.根据权利要求1所述的数据交互方法,其特征在于,所述第一消息通过自身节点产生的初始待广播消息形成,所述根据待广播的第一消息,从直连节点中确定待广播节点,包括:
9.根据权利要求1所述的数据交互方法,其特征在于,所述数据交互方法还包括:
10.一种数据交互节点,其特征在于,包括:
11.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9任一项所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述数据交互方法的步骤。
