一种通信连接创建方法、系统及分布式锁组件的制作方法
【专利摘要】本申请公开了一种通信连接创建方法,包括:当集群系统中的集群管理组件开启RRP工作模式,则通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP;其中,第一类通信IP为集群系统当前处于使用状态的通信IP,第二类通信IP为集群系统中当前处于未使用状态的通信IP;通知内核态分布式锁组件根据第一类通信IP,进行相应的SCTP通信连接的创建操作;若创建操作未成功,则通知内核态分布式锁组件将通信IP切换为位于第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。本申请的技术方案可避免集群锁阻塞的情况发生。本申请还相应地公开了一种通信连接创建系统及分布式锁组件。
【专利说明】
一种通信连接创建方法、系统及分布式锁组件
技术领域
[0001]本发明涉及通信技术领域,特别涉及一种通信连接创建方法、系统及分布式锁组件。
【背景技术】
[0002]当前,为了保证集群网络的稳定性,通常采用冗余网络方式来进行集群管理,也即当集群管理组件使用RRP模式(RRP,即The Totem Redundant Ring Protocol)进行通信时,若一个集群网络出现问题,则可以切换到另一个集群通信网络,以此来实现网络冗余目的。
[0003]当集群管理组件开启RRP模式后,内核态分布式锁组件会根据获取到的通信IP列表,依序建立SCTP通信连接(SCTP,即Stream Control Transmiss1n Protocol)。然而,当内核态分布式锁组件在根据当前获取到的某个通信IP尝试建立SCTP通信连接时,可能会遇到由于SCTP通信协议创建超时等问题所造成的通信连接创建操作失败的情况,此时会造成集群锁阻塞的问题,与通信IP列表中的后续通信IP对应的SCTP通信连接创建过程也不得不被迫中止。
[0004]综上所述可以看出,如何避免集群锁阻塞的情况发生是目前亟待解决的问题。
【发明内容】
[0005]有鉴于此,本发明的目的在于提供一种通信连接创建方法、系统及分布式锁组件,避免了集群锁阻塞的情况发生。其具体方案如下:
[0006]—种基于分布式锁组件的通信连接创建方法,包括:
[0007]当集群系统中的集群管理组件开启RRP工作模式,则通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP;其中,所述第一类通信IP为所述集群系统当前处于使用状态的通信IP,所述第二类通信IP为所述集群系统中当前处于未使用状态的通信IP;
[0008]通知内核态分布式锁组件根据所述第一类通信IP,进行相应的SCTP通信连接的创建操作;
[0009]判断所述创建操作是否成功,若否,则通知所述内核态分布式锁组件将通信IP切换为位于所述第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。
[0010]优选的,所述集群管理组件为corosync集群管理组件。
[0011]优选的,在所述通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP的过程之后,还包括:
[0012]将所述第一类通信IP和所述第二类通信IP依次保存至预设的通信IP列表中;其中,所述第一类通信IP保存于所述通信IP列表的首列位置,所述第二类通信IP保存于所述通信IP列表的其他位置。
[0013]优选的,所述通知内核态分布式锁组件根据所述第一类通信IP,进行相应的SCTP通信连接的创建操作的过程,包括:
[0014]通知所述内核态分布式锁组件读取位于所述通信IP列表的首列位置的通信IP,并根据该通信IP,启动相应的SCTP通信连接创建过程,并为与该SCTP通信连接创建过程对应的SCTP通信协议创建过程设定定时器。
[0015]优选的,所述判断所述创建操作是否成功的过程,包括:
[0016]判断所述定时器是否超时,如果否,则判定所述创建操作成功,如果是,则判定所述创建操作失败。
[0017]优选的,所述通信连接创建方法,还包括:
[0018]当所述创建操作失败后,则将所述首列位置处的通信IP从所述通信IP列表中删除。
[0019]优选的,所述通信连接创建方法,还包括:
[0020]当所述创建操作失败后,则将所述首列位置处的通信IP下移至所述通信IP列表的第N列所在的位置,其中,N为大于I的整数。
[0021]本发明还公开了一种基于分布式锁组件的通信连接创建系统,包括:
[0022]IP获取模块,用于当集群系统中的集群管理组件开启RRP工作模式,则通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP;其中,所述第一类通信IP为所述集群系统当前处于使用状态的通信IP,所述第二类通信IP为所述集群系统中当前处于未使用状态的通信IP;
[0023]第一连接创建模块,用于通知内核态分布式锁组件根据所述第一类通信IP,进行相应的SCTP通信连接的创建操作;
[0024]第二连接创建模块,用于判断所述创建操作是否成功,若否,则通知所述内核态分布式锁组件将通信IP切换为位于所述第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。
[0025]本发明进一步公开了一种分布式锁组件,包括:
[0026]用户态分布式锁组件,用于当集群系统中的集群管理组件开启RRP工作模式,则获取第一类通信IP和第二类通信IP;其中,所述第一类通信IP为所述集群系统当前处于使用状态的通信IP,所述第二类通信IP为所述集群系统中当前处于未使用状态的通信IP;
[0027]内核态分布式锁组件,用于根据所述第一类通信IP,进行相应的SCTP通信连接的创建操作,当该创建操作失败后,则将通信IP切换为位于所述第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。
[0028]优选的,所述集群管理组件为corosync集群管理组件。
[0029]本发明中,基于分布式锁组件的通信连接创建方法,包括:当集群系统中的集群管理组件开启RRP工作模式,则通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP;其中,第一类通信IP为集群系统当前处于使用状态的通信IP,第二类通信IP为集群系统中当前处于未使用状态的通信IP;通知内核态分布式锁组件根据第一类通信IP,进行相应的SCTP通信连接的创建操作;判断创建操作是否成功,若否,则通知内核态分布式锁组件将通信IP切换为位于第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。可见,本发明在内核态分布式锁组件根据当前处于使用状态的通信IP进行SCTP通信连接创建的过程中,若出现创建失败的情况,则会通知内核态分布式锁组件进行通信IP的切换操作,然后利用切换后的通信IP再次进行相应的SCTP通信连接的创建操作,由此可避免集群锁阻塞的情况发生。
【附图说明】
[0030]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0031 ]图1为本发明实施例公开的一种基于分布式锁组件的通信连接创建方法流程图;
[0032]图2为本发明实施例公开的一种基于分布式锁组件的通信连接创建系统结构示意图。
【具体实施方式】
[0033]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034]本发明实施例公开了一种基于分布式锁组件的通信连接创建方法,参见图1所示,该方法包括:
[0035]步骤Sll:当集群系统中的集群管理组件开启RRP工作模式,则通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP;其中,第一类通信IP为集群系统当前处于使用状态的通信IP,第二类通信IP为集群系统中当前处于未使用状态的通信IP。
[0036]也即,当集群管理组件开启RRP工作模式,则通知用户态分布式锁组件获取集群系统中当前处于使用状态以及当前处于未使用状态的通信IP。
[0037]步骤S12:通知内核态分布式锁组件根据第一类通信IP,进行相应的SCTP通信连接的创建操作。
[0038]也即,通知内核态分布式锁组件根据用户态分布式锁组件获取到的当前处于使用状态的通信IP,来进行相应的SCTP通信连接的创建操作。
[0039]步骤S13:判断上述创建操作是否成功,若否,则通知内核态分布式锁组件将通信IP切换为位于第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。
[0040]可以理解的是,上述内核态分布式锁组件进行通信IP的切换操作后,切换后的通信IP便会成为集群系统当前处于使用状态的通信IP,其余的通信IP则成为集群系统当前处于未使用状态的通信IP。
[0041]与上述步骤S13的情况相同,如果内核态分布式锁组件根据上述切换后的通信IP进行的通信连接创建操作再次失败,则会进一步通知内核态分布式锁组件将通信IP切换为位于当前集群系统中处于未使用状态的通信IP,然后根据切换后的通信IP继续进行相应的SCTP通信连接的创建操作。其他情况以此类推,在此不再重复赘述。
[0042]本发明实施例中,基于分布式锁组件的通信连接创建方法,包括:当集群系统中的集群管理组件开启RRP工作模式,则通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP;其中,第一类通信IP为集群系统当前处于使用状态的通信IP,第二类通信IP为集群系统中当前处于未使用状态的通信IP;通知内核态分布式锁组件根据第一类通信IP,进行相应的SCTP通信连接的创建操作;判断创建操作是否成功,若否,则通知内核态分布式锁组件将通信IP切换为位于第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。可见,本发明实施例在内核态分布式锁组件根据当前处于使用状态的通信IP进行SCTP通信连接创建的过程中,若出现创建失败的情况,则会通知内核态分布式锁组件进行通信IP的切换操作,然后利用切换后的通信IP再次进行相应的SCTP通信连接的创建操作,由此可避免集群锁阻塞的情况发生。
[0043]本发明实施例公开了一种具体的基于分布式锁组件的通信连接创建方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
[0044]上一实施例步骤Sll中的集群管理组件具体可以为corosync集群管理组件。
[0045]另外,为了便于对通信IP进行管理,在上一实施例步骤Sll中的通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP的过程之后,还可以进一步包括:
[0046]将第一类通信IP和第二类通信IP依次保存至预设的通信IP列表中;其中,第一类通信IP保存于上述预设的通信IP列表的首列位置,第二类通信IP保存于上述预设的通信IP列表的其他位置。也即,将第二类通信IP保存至通信IP列表中除了首列位置以外的其他列位置。
[0047]相应的,上一实施例步骤S12中,通知内核态分布式锁组件根据第一类通信IP,进行相应的SCTP通信连接的创建操作的过程,具体可以包括:
[0048]通知内核态分布式锁组件读取位于上述预设的通信IP列表的首列位置的通信IP,并根据该通信IP,启动相应的SCTP通信连接创建过程,并为与该SCTP通信连接创建过程对应的SCTP通信协议创建过程设定定时器。
[0049]也即,通知内核态分布式锁组件读出保存在上述通信IP列表中的第一类通信IP,然后通知内核态分布式锁组件根据第一类通信IP启动相应的SCTP通信连接创建过程,并为相应的SCTP通信协议创建过程设定定时器。本实施例可以根据具体需要对上述定时器的定时时长进行相应的设定,例如,可以将定时器的定时时间可以设为I分钟等。
[0050]相应的,上一实施例步骤S13中,判断创建操作是否成功的过程,具体包括:判断上述定时器是否超时,如果否,则判定创建操作成功,如果是,则判定创建操作失败。
[0051]本实施例中的通信连接创建方法,还可以进一步包括:当上一实施例步骤S12中的创建操作失败后,则将当前首列位置处的通信IP从上述预设的通信IP列表中删除。这样在后续进程中将不会再对删除的通信IP进行SCTP通信连接的创建操作。
[0052]当然,在上一实施例步骤S12中的创建操作失败后,也可以将首列位置处的通信IP下移至上述预设的通信IP列表的第N列所在的位置,其中,N为大于I的整数。也即,此时并不对第一类通信IP进行删除,而是将其由处于使用状态的角色转变为处于未使用状态的角色,后续进程还可以尝试对其进行相应的SCTP通信连接的创建操作。
[0053]相应的,本发明实施例还公开了一种基于分布式锁组件的通信连接创建系统,参见图2所示,上述通信连接创建系统包括:
[0054]IP获取模块21,用于当集群系统中的集群管理组件开启RRP工作模式,则通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP;其中,第一类通信IP为集群系统当前处于使用状态的通信IP,第二类通信IP为集群系统中当前处于未使用状态的通信IP;
[0055]第一连接创建模块22,用于通知内核态分布式锁组件根据第一类通信IP,进行相应的SCTP通信连接的创建操作;
[0056]第二连接创建模块23,用于判断创建操作是否成功,若否,则通知内核态分布式锁组件将通信IP切换为位于第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。
[0057]关于上述各个模块更加详尽的工作过程可参考前述实施例中的相关内容,在此不在进行赘述。
[0058]可见,本发明实施例在内核态分布式锁组件根据当前处于使用状态的通信IP进行SCTP通信连接创建的过程中,若出现创建失败的情况,则会通知内核态分布式锁组件进行通信IP的切换操作,然后利用切换后的通信IP再次进行相应的SCTP通信连接的创建操作,由此可避免集群锁阻塞的情况发生。
[0059]进一步的,本发明实施例还对应地公开了一种分布式锁组件,包括:
[0060]用户态分布式锁组件,用于当集群系统中的集群管理组件开启RRP工作模式,则获取第一类通信IP和第二类通信IP;其中,第一类通信IP为集群系统当前处于使用状态的通信IP,第二类通信IP为集群系统中当前处于未使用状态的通信IP;
[0061]内核态分布式锁组件,用于根据第一类通信IP,进行相应的SCTP通信连接的创建操作,当该创建操作失败后,则将通信IP切换为位于第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。
[0062]其中,上述集群管理组件为corosync集群管理组件。
[0063]最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0064]以上对本发明所提供的一种通信连接创建方法、系统及分布式锁组件进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种基于分布式锁组件的通信连接创建方法,其特征在于,包括: 当集群系统中的集群管理组件开启RRP工作模式,则通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP;其中,所述第一类通信IP为所述集群系统当前处于使用状态的通信IP,所述第二类通信IP为所述集群系统中当前处于未使用状态的通信IP; 通知内核态分布式锁组件根据所述第一类通信IP,进行相应的SCTP通信连接的创建操作; 判断所述创建操作是否成功,若否,则通知所述内核态分布式锁组件将通信IP切换为位于所述第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。2.根据权利要求1所述的基于分布式锁组件的通信连接创建方法,其特征在于,所述集群管理组件为corosync集群管理组件。3.根据权利要求1所述的基于分布式锁组件的通信连接创建方法,其特征在于,在所述通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP的过程之后,还包括: 将所述第一类通信IP和所述第二类通信IP依次保存至预设的通信IP列表中;其中,所述第一类通信IP保存于所述通信IP列表的首列位置,所述第二类通信IP保存于所述通信IP列表的其他位置。4.根据权利要求3所述的基于分布式锁组件的通信连接创建方法,其特征在于,所述通知内核态分布式锁组件根据所述第一类通信IP,进行相应的SCTP通信连接的创建操作的过程,包括: 通知所述内核态分布式锁组件读取位于所述通信IP列表的首列位置的通信IP,并根据该通信IP,启动相应的SCTP通信连接创建过程,并为与该SCTP通信连接创建过程对应的SCTP通信协议创建过程设定定时器。5.根据权利要求4所述的基于分布式锁组件的通信连接创建方法,其特征在于,所述判断所述创建操作是否成功的过程,包括: 判断所述定时器是否超时,如果否,则判定所述创建操作成功,如果是,则判定所述创建操作失败。6.根据权利要求5所述的基于分布式锁组件的通信连接创建方法,其特征在于,还包括: 当所述创建操作失败后,则将所述首列位置处的通信IP从所述通信IP列表中删除。7.根据权利要求5所述的基于分布式锁组件的通信连接创建方法,其特征在于,还包括: 当所述创建操作失败后,则将所述首列位置处的通信IP下移至所述通信IP列表的第N列所在的位置,其中,N为大于I的整数。8.一种基于分布式锁组件的通信连接创建系统,其特征在于,包括: IP获取模块,用于当集群系统中的集群管理组件开启RRP工作模式,则通过用户态分布式锁组件,获取第一类通信IP和第二类通信IP;其中,所述第一类通信IP为所述集群系统当前处于使用状态的通信IP,所述第二类通信IP为所述集群系统中当前处于未使用状态的通信IP; 第一连接创建模块,用于通知内核态分布式锁组件根据所述第一类通信IP,进行相应的SCTP通信连接的创建操作; 第二连接创建模块,用于判断所述创建操作是否成功,若否,则通知所述内核态分布式锁组件将通信IP切换为位于所述第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。9.一种分布式锁组件,其特征在于,包括: 用户态分布式锁组件,用于当集群系统中的集群管理组件开启RRP工作模式,则获取第一类通信IP和第二类通信IP;其中,所述第一类通信IP为所述集群系统当前处于使用状态的通信IP,所述第二类通信IP为所述集群系统中当前处于未使用状态的通信IP; 内核态分布式锁组件,用于根据所述第一类通信IP,进行相应的SCTP通信连接的创建操作,当该创建操作失败后,则将通信IP切换为位于所述第二类通信IP中的通信IP,并根据切换后的通信IP再次进行相应的SCTP通信连接的创建操作。10.根据权利要求9所述的分布式锁组件,其特征在于,所述集群管理组件为corosync集群管理组件。
【文档编号】H04L29/08GK105959170SQ201610571081
【公开日】2016年9月21日
【申请日】2016年7月19日
【发明人】马怀旭, 方浩, 苏广峰, 姜文涛, 赵祯龙
【申请人】浪潮(北京)电子信息产业有限公司