本公开涉及通信,具体来说,涉及一种集群通信方法、集群通信设备和集群。
背景技术:
1、在集群中,可以基于分布式通信机制来进行节点之间的通信,以实现集群中节点的最终一致性。然而,随着节点数目的增多或者说集群规模的增大,这种分布式通信方式将导致通信量的大幅增加,使大量资源被用于通信,进而导致集群整体性能的下降。因此,存在对于新的集群通信方式的需求。
技术实现思路
1、本公开的目的在于提供一种集群通信方法、集群通信设备和集群。
2、根据本公开的第一方面,提供了一种集群通信方法,集群包括多个节点,所述集群通信方法包括:
3、对所述多个节点进行分组以形成多个节点组,其中,每个节点组包括主节点和从节点,主节点被配置为向其他节点组传输数据,从节点被配置为不向其他节点组传输数据;以及
4、在所述多个节点中的第一节点向所述多个节点中的第二节点传输数据时:
5、若所述第一节点与所述第二节点处于同一节点组中,则所述第一节点经由所述节点组中的组内通信路径向所述第二节点传输数据;和
6、若所述第一节点与所述第二节点处于不同节点组中,则由所述第一节点所在的第一节点组中的第一主节点向所述第二节点所在的第二节点组传输数据。
7、在一些实施例中,所述第一节点经由所述第一节点组中的组内通信路径向所述第二节点传输数据包括:
8、所述第一节点直接向所述第二节点传输数据;或
9、所述第一节点经由所述第一节点组内的不同于所述第二节点的一个或多个其他节点向所述第二节点传输数据。
10、在一些实施例中,所述第一节点经由所述第一节点组中的组内通信路径向所述第二节点传输数据包括:
11、所述第一节点基于gossip通信机制向所述第二节点传输数据;或
12、所述第一节点基于广播通信机制向所述第二节点传输数据。
13、在一些实施例中,由所述第一节点所在的第一节点组中的第一主节点向所述第二节点所在的第二节点组传输数据包括:
14、若所述第一节点是所述第一主节点,则由所述第一节点向所述第二节点组传输数据;和
15、若所述第一节点不是所述第一主节点,则所述第一节点经由所述第一节点组中的组内通信路径向所述第一主节点传输数据,并由所述第一主节点向所述第二节点组传输数据。
16、在一些实施例中,由所述第一节点所在的第一节点组中的第一主节点向所述第二节点所在的第二节点组传输数据包括:
17、由所述第一主节点直接向所述第二节点传输数据。
18、在一些实施例中,每个节点组包括链接节点,链接节点被配置为接收来自其他节点组的数据。
19、在一些实施例中,由所述第一节点所在的第一节点组中的第一主节点向所述第二节点所在的第二节点组传输数据包括:
20、若所述第二节点不是所述第二节点组中的第二链接节点,则由所述第一主节点向所述第二链接节点传输数据;以及
21、由所述第二链接节点经由所述第二节点组中的组内通信路径向所述第二节点传输数据。
22、在一些实施例中,所述集群通信方法还包括:
23、若所述第二节点组中的第二链接节点处于故障状态,则从所述第二节点组中重新选择处于运行状态的一个或多个节点作为更新的第二链接节点。
24、在一些实施例中,所述集群通信方法还包括:
25、节点组中的链接节点按照预设规则经由所述节点组中的组内通信路径向所述节点组中的其他节点传输所述链接节点接收到的最新数据,以最终同步所述节点组中的所有节点的数据。
26、在一些实施例中,所述集群通信方法还包括:
27、节点组中的链接节点按照预设规则检查所述节点组中的至少一个其他节点的数据是否与所述链接节点接收到的最新数据一致;
28、若所述链接节点检查到存在具有与最新数据不一致的数据的其他节点,则所述链接节点经由所述节点组中的组内通信路径向所述其他节点传输最新数据,以最终同步所述节点组中的所有节点的数据。
29、在一些实施例中,由所述第一节点所在的第一节点组中的第一主节点向所述第二节点所在的第二节点组传输数据包括:
30、所述第一主节点基于广播通信机制向所述第二节点组传输数据;或
31、所述第一主节点基于gossip通信机制向所述第二节点组传输数据。
32、在一些实施例中,每个节点组包括仅一个主节点。
33、在一些实施例中,所述多个节点中的每个节点分别处于仅一个节点组中。
34、在一些实施例中,对所述多个节点进行分组以形成多个节点组包括:
35、按照节点所对应的槽位对所述多个节点进行分组。
36、在一些实施例中,所述第一节点向所述第二节点传输的数据包括所述多个节点中的至少一个节点的状态变化数据。
37、在一些实施例中,所述集群通信方法还包括:
38、节点组中的主节点按照预设规则向所述多个节点组中的所有其他节点组传输所述节点组内的至少一个节点的最新数据。
39、在一些实施例中,节点组中的主节点按照预设规则向所述多个节点组中的所有其他节点组传输所述节点组内的至少一个节点的最新数据包括:
40、节点组中的主节点按照预设时间间隔基于广播通信机制向所述多个节点组中的所有其他节点组周期性地传输所述节点组内的至少一个节点的最新数据,其中,每次传输的数据包括以随机方式或轮询方式选择的所述节点组内的至少一个节点的最新数据。
41、在一些实施例中,所述集群通信方法还包括:
42、向节点组中添加至少一个从节点。
43、在一些实施例中,所述集群通信方法还包括:
44、当节点组中的主节点处于故障状态时,从所述节点组中重新选择一个处于运行状态的从节点作为更新的主节点。
45、在一些实施例中,从所述节点组中重新选择一个处于运行状态的从节点作为更新的主节点包括:
46、所述节点组中的至少一个从节点在所述节点组内发起投票;以及
47、根据投票结果,将相应的一个从节点选择为更新的主节点。
48、在一些实施例中,所述集群为redis集群。
49、根据本公开的第二方面,提出了一种集群通信设备,所述集群通信设备包括处理器和存储器,所述存储器上存储有指令,当所述指令被所述处理器执行时,实现如上所述的集群通信方法的步骤。
50、根据本公开的第三方面,提出了一种集群,所述集群包括多个节点,所述多个节点之间按照如上所述的集群通信方法的步骤来进行数据传输。
51、根据本公开的第四方面,提出了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质上存储有指令,当所述指令被执行时,实现如上所述的集群通信方法的步骤。
52、通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。