1.本技术涉及互联网技术领域,特别是涉及一种集群中获取服务器种子节点的方法、装置及介质。
背景技术:2.流式多元化网络业务和服务的快速增长导致网络拥塞、数据丢失等问题,传统的云计算已无法满足终端对高带宽、低时延和实时性的需求。为了解决云计算的不足,将无法完成的任务迁移到相邻空闲的服务器上进行计算,通过多个边缘服务器协作完成,但是此方法,在服务器路径搜索时成本消耗过大,可以通过服务器种子节点的获取来降低服务器路径搜索时所消耗的成本,通过k-shell分解进行服务器种子节点集的获取,根据节点的度值的大小将整个集群分解成多个集合,选取最大ks值对应的集合中与预设个数数量相同个数的节点作为服务器种子节点,进而降低了服务器路径的搜索,也可以对任务进行分担处理。
3.由于目前的技术虽然解决了服务器路径消耗的问题,但是其通过静态分析节点的信息传播能力,无法对潜在的节点的信息传播能力作分析,也无法避免选取的服务器节点比较集中的问题,导致服务器种子节点处理任务时,服务器节点重复性高,导致效率低下的问题。
4.鉴于上述技术问题,寻求一种提高效率的方法,是本领域技术人员亟待解决的问题。
技术实现要素:5.本技术的目的是提供一种集群中获取服务器种子节点的方法、装置及介质。
6.为解决上述技术问题,本技术提供一种集群中获取服务器种子节点的方法,包括:
7.从当前ks值对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合,其中,首个种子节点对应的当前ks值为最大的ks值;
8.以当前种子节点为起点,获取其余节点到当前种子节点的距离,并更新距离列表以作为当前距离列表;
9.根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最远的节点,以作为下一个当前种子节点,并将此节点放入当前种子节点集合,其中,当前ks值的下一个ks值作为下一个当前ks值;
10.判断所述种子节点集合中的节点个数是否等于预设个数;
11.若是,结束所述种子节点的获取;
12.若否,返回所述以当前种子节点为起点,获取其余节点与当前种子节点的距离,并更新距离列表以作为当前距离列表的步骤。
13.优选地,所述从当前ks值对应的集合中获取一个种子节点包括:
14.构建复杂网络图,并根据k-shell分解,得到多个集合;
15.在最大的ks值对应的集合中获取一个节点,以作为当前种子节点。
16.优选地,以当前种子节点为起点,获取其余节点与当前种子节点的距离包括:
17.以当前种子节点为起点进行广度优先遍历或深度优先遍历,确定其余节点到当前种子节点的距离。
18.优选地,所述根据k-shell分解,得到多个集合包括:
19.根据网络中所述节点的度值的大小,将网络分解成多个集合,其中,所述一个所述度值对应一个集合。
20.优选地,在所述结束所述种子节点的获取之后还包括:
21.输出当前种子节点集合。
22.优选地,在所述输出当前种子节点集合之后,还包括:
23.输出各所述种子节点的工作状态。
24.优选地,所述预设个数为5个。
25.为解决上述技术问题,本技术还提供一种集群中获取服务器种子节点的装置,包括:
26.第一获取模块,用于从当前ks值对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合,其中,当前ks值为最大的ks值;
27.第二获取模块,用于以当前种子节点为起点,获取其余节点到当前种子节点的距离,并更新距离列表以作为当前距离列表;
28.选取模块,用于根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最近且最大的节点,以作为下一个当前种子节点,并将此节点放入当前种子节点集合,其中,当前ks值的下一个ks值作为下一个当前ks值;
29.判断模块,用于判断所述种子节点集合中的节点个数是否等于预设个数,若是,触发结束模块,若否,触发所述第二获取模块;
30.所述结束模块,用于结束所述种子节点的获取。
31.为解决上述技术问题,本技术还提供一种集群中获取服务器种子节点的装置,包括存储器,用于存储计算机程序;
32.处理器,用于执行所述计算机程序时实现如上述所述的集群中获取服务器种子节点的方法的步骤。
33.为解决上述技术问题,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的集群中获取服务器种子节点的方法的步骤。
34.本技术所提供的一种基于集群中获取服务器种子节点的方法,通过从当前ks值对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合,并以当前种子节点为起点,获取其余节点到当前种子节点的距离,并更新距离列表以作为当前距离列表,根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最远的节点,并将此节点放入当前种子节点集合,最后判断种子节点集合中的节点个数是否等于预设个数,若是,结束所述种子节点的获取,若否,继续获取种子节点,可见,此方法通过距离列表从各个ks值对应的集合中获取种子节点,不仅提高了服务器路径搜索的效率,还保证了对潜在的节点的分析,也避免了获取的节点比较集中的问题,避免了在处理任务时节点
重复性高,效率低下的问题。
35.在此基础上,本技术还提供一种集群中获取服务器种子节点的装置和介质,效果同上。
附图说明
36.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1为本技术实施例提供的一种集群中获取服务器种子节点的方法的流程图;
38.图2为本技术实施例提供的另一种集群中获取服务器种子节点的方法的流程图;
39.图3为本技术实施例提供的一种集群中获取服务器种子节点的装置的结构图;
40.图4为本技术另一实施例提供的集群中获取服务器种子节点的装置的结构图。
具体实施方式
41.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
42.本技术的核心是提供一种集群中获取服务器种子节点的方法、装置及计算机可读存储介质。
43.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
44.图1为本技术实施例提供的一种集群中获取服务器种子节点的方法的流程图,如图1所示,集群中获取服务器种子节点的方法包括如下步骤:
45.s10:从当前ks对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合。
46.s11:以当前种子节点为起点,获取其余节点到当前种子节点的距离。
47.s12:根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最远的节点,以作为下一个当前种子节点,并将此节点放入当前种子节点集合。
48.s13:判断种子节点集合中的节点个数是否等于预设个数,若是,进入s14步骤,若否,返回s11步骤。
49.s14:结束种子节点的获取。
50.可以理解的是,流式多元化网络业务和服务的快速增长导致网络拥塞、数据丢失等问题,传统的云计算已无法满足终端对高带宽、低时延和实时性的需求。为了解决云计算的不足,将无法完成的任务迁移到相邻空闲的服务器上进行计算,通过多个边缘服务器协作完成,但是此方法,在服务器路径搜索时成本消耗过大,可以通过服务器种子节点的获取来降低服务器路径搜索时所消耗的成本,通过k-shell分解进行服务器种子节点集的获取,根据节点的度值的大小将整个集群分解成多个集合,选取最大ks值对应的集合中与预设个数相同数量的节点作为服务器种子节点,进而降低了服务器路径的搜索,也可以对任务进
行分担处理。由于目前的技术虽然解决了服务器路径消耗的问题,但是其通过静态分析节点的信息传播能力,无法对潜在的节点的信息传播能力作分析,也无法避免选取的服务器节点比较集中的问题,导致服务器种子节点处理任务时,服务器节点重复性高,导致效率低下的问题。因此提出一种集群中获取服务器种子节点的方法。
51.如s10步骤所说,从当前ks值对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合,其中,一个种子节点对应一个服务器,而首个种子节点对应的当前ks值为最大的ks值,其中ks值为节点的核数,一个节点的核数就是网络在进行k-shell分解,ks等于1就是1核,也就是节点的度值等于1,ks等于2就是2核,也就是节点的度值等于2,依次类推,直到节点的度值都有对应的核,若节点中最大的度值为10,则最大的ks值为10。其中,从最大的ks值对应的集合中获取一个种子节点,本实施例对最大ks值对应的集合中哪一个节点作为取出的节点不作限定。
52.此外,对于s11步骤来说,获取其余节点到当前种子节点的距离,其中,这个距离指的是两个节点之间的最短距离,而距离列表在获取其余节点到当前种子节点的距离之后会根据最新的数据进行更新,对于潜在的节点进行一个分析,做到每个节点都分析得到。另外,对于s12步骤来说,根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最远的节点,以作为下一个当前种子节点,并将此节点放入当前种子节点集合,如上述所说,ks值与节点的度值相等,也就是下一个ks值比当前ks值少1,在此基础上,从下一个ks值中选取距离当前节点最远的节点,保证种子节点之间不会重复,因此从一开始获取的距离列表中获取,其中,当前ks值的下一个ks值作为下一个当前ks值。
53.在s13步骤中,判断种子节点集合中的节点个数是否等于预设个数,本技术实施例对预设个数不作限定,可以根据具体实施情况对预设个数进行选择。此外,若个数相等时,结束种子节点的获取,若个数不等,则返回步骤s11。值得注意的是,在返回s11步骤后,以当前种子节点为起点,现在的当前种子节点为上一个获取的节点,也就是第二个种子节点,具体的为,在ks=8对应的集合中获取一个种子节点,以这个种子节点为起点在ks=7对应的集合中获取一个最远的节点作为种子节点,而再获取时就是以刚获取的节点为起点在ks=6对应的集合中获取,直到达到预设个数。在不同的ks值对应的集合中获取种子节点,保证了节点之间的重复性低。
54.本实施例提供的集群中获取服务器种子节点的方法,通过从当前ks值对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合,并以当前种子节点为起点,获取其余节点到当前种子节点的距离,并更新距离列表以作为当前距离列表,根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最远的节点,并将此节点放入当前种子节点集合,最后判断种子节点集合中的节点个数是否等于预设个数,若是,结束所述种子节点的获取,若否,继续获取种子节点,可见,此方法通过距离列表从各个ks值对应的集合中获取种子节点,不仅提高了服务器路径搜索的效率,还保证了对潜在的节点的分析,也避免了获取的节点比较集中的问题,避免了在处理任务时节点重复性高,效率低下的问题。
55.在上述实施例的基础上,对如何从当前ks值对应的集合中获取一个种子节点进行描述,具体步骤如下:
56.构建复杂网络图,并根据k-shell分解,得到多个集合,在最大的ks值对应的集合
中获取一个节点,以作为当前种子节点。
57.其中k-shell分解的具体步骤如下,第一步,将网络中度值等于1的节点放入ks=1对应的集合中,将网络中度值等于2的节点放入ks=2对应的集合中,将网络中度值等于3的节点放入ks=3对应的集合中,以此类推,直到网络中的每个节点都被分配到对应的集合中,也就是说一个度值对应一个集合。在此基础上,在最大的ks值对应的集合中获取一个节点,并将此节点作为当前种子节点,对选取最大ks值对应的集合中的哪个节点不作限定,可以根据具体的实施情况进行选择。
58.本实施例所提供的如何从当前ks值对应的集合中获取一个种子节点,通过构建复杂网络图,并根据k-shell分解,得到多个集合,在最大的ks值对应的集合中获取一个节点,以作为当前种子节点,可见,此方法获取种子节点的方式容易实现,获取首个种子节点的方式比较简单。
59.作为一种优选的实施方式,获取其余节点与当前种子节点的距离通过以当前种子节点为起点进行广度优先遍历或深度优先遍历来确定其余节点到当前种子节点的距离。
60.其中,广度优先遍历按层来处理节点,距离种子节点最近的那些节点首先被访问,而最远的那些节点则最后被访问,这个和树的层序变量很像,广度优先搜索的代码使用了一个队列。搜索步骤:首先选择一个节点作为起始节点,并将其染成灰色,其余节点为白色。将起始节点放入队列中。从队列首部选出一个节点,并找出所有与之邻接的节点,将找到的邻接节点放入队列尾部,将已访问过节点涂成黑色,没访问过的节点是白色。如果节点的颜色是灰色,表示已经发现并且放入了队列,如果节点的颜色是白色,表示还没有发现,按照同样的方法处理队列中的下一个节点。而深度优先遍历是访问种子节点,依次从种子节点的未被访问的邻接节点出发,对图进行深度优先遍历;直至图中和种子节点有路径相通的节点都被访问,若此时图中尚有节点未被访问,则从一个未被访问的节点出发,重新进行深度优先遍历,直到图中所有节点均被访问过为止。而在本实施例中,优先访问当前ks值的下一个ks值对应的集合中的节点,因此,在本实施例中主要运用广度优先遍历来获取其余节点到种子节点的距离,但不限于广度优先遍历和深度优先遍历,可以根据具体的实施方式,对获取距离的方式进行选择。
61.本实施例所提供的广度优先遍历或深度优先遍历以种子节点为起点获取其余节点到种子节点的距离,可以更加全面的包括每一个节点,不会出现遗漏,也可以对新的节点进行一个分析,同时也增加了发现种子节点的准确度。
62.在上述实施例的基础上,在结束种子节点的获取之后还包括如下步骤,图2为本技术实施例提供的另一种集群中获取服务器种子节点的方法的流程图,如图2所示,在s14的基础上还包括:
63.s15:输出当前种子节点集合。
64.s16:输出各种子节点的工作状态。
65.在获取种子节点集合之后,将种子节点集合输出,也就是解决云计算的不足,将无法完成的任务迁移到相邻空闲的服务器上进行计算,通过多个边缘服务器协作完成,而一个种子节点对应一个服务器,多个种子节点协作分担任务。
66.此外,在输出当前种子节点集合之后还会输出各种子节点的工作状态,可以看出输出的种子节点是否成功进入工作状态。
67.本实施例所提供的输出当前种子节点集合,输出各种子节点的工作状态,可以看出当前种子节点完成任务的程度,也可以看出,若没有输出成功,这工作状态为0,有效的提高了工作的效率。
68.作为一种优选的实施方式,种子节点的预设个数为5个,但不限于5个,可以根据具体的实施情况对种子节点的预设个数进行选择。
69.在上述实施例中,对于集群中获取服务器种子节点的方法进行了详细描述,本技术还提供集群中获取服务器种子节点的装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
70.图3为本技术实施例提供的一种集群中获取服务器种子节点的装置的结构图,如图3所示,集群中获取服务器种子节点的装置包括:
71.第一获取模块14,用于从当前ks值对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合,其中,当前ks值为最大的ks值;
72.第二获取模块15,用于以当前种子节点为起点,获取其余节点到当前种子节点的距离,并更新距离列表以作为当前距离列表;
73.选取模块16,用于根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最近且最大的节点,以作为下一个当前种子节点,并将此节点放入当前种子节点集合,其中,当前ks值的下一个ks值作为下一个当前ks值;
74.判断模块17,用于判断种子节点集合中的节点个数是否等于预设个数,若是,触发结束模块,若否,触发第二获取模块;
75.结束模块18,用于结束种子节点的获取。
76.本实施例提供的一种集群中获取服务器种子节点的装置,其包含第一获取模块、第二获取模块、选取模块、判断模块和结束模块,用于实现一种基于集群中获取服务器种子节点的方法的步骤,通过从当前ks值对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合,并以当前种子节点为起点,获取其余节点到当前种子节点的距离,并更新距离列表以作为当前距离列表,根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最远的节点,并将此节点放入当前种子节点集合,最后判断种子节点集合中的节点个数是否等于预设个数,若是,结束所述种子节点的获取,若否,继续获取种子节点,可见,此方法通过距离列表从各个ks值对应的集合中获取种子节点,不仅提高了服务器路径搜索的效率,还保证了对潜在的节点的分析,也避免了获取的节点比较集中的问题,避免了在处理任务时节点重复性高,效率低下的问题。
77.图4为本技术另一实施例提供的集群中获取服务器种子节点的装置的结构图,如图4所示,集群中获取服务器种子节点的装置包括:存储器20,用于存储计算机程序;
78.处理器21,用于执行计算机程序时实现如上述实施例中所提到的集群中获取服务器种子节点的方法的步骤。
79.本实施例提供的集群中获取服务器种子节点的装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
80.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用dsp(digital signal processing,数字信号处理)、fpga(field-
programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
81.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的集群中获取服务器种子节点的方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于集群中获取服务器种子节点的方法的数据等。
82.在一些实施例中,集群中获取服务器种子节点的装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
83.本领域技术人员可以理解,图4中示出的结构并不构成对集群中获取服务器种子节点的装置的限定,可以包括比图示更多或更少的组件。
84.本实施例提供的集群中获取服务器种子节点的装置包括存储器和处理器,存储器用于存储计算机程序,处理器用于执行计算机程序实现一种集群中获取服务器种子节点的方法的步骤,通过从当前ks值对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合,并以当前种子节点为起点,获取其余节点到当前种子节点的距离,并更新距离列表以作为当前距离列表,根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最远的节点,并将此节点放入当前种子节点集合,最后判断种子节点集合中的节点个数是否等于预设个数,若是,结束所述种子节点的获取,若否,继续获取种子节点,可见,此方法通过距离列表从各个ks值对应的集合中获取种子节点,不仅提高了服务器路径搜索的效率,还保证了对潜在的节点的分析,也避免了获取的节点比较集中的问题,避免了在处理任务时节点重复性高,效率低下的问题。
85.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
86.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘
等各种可以存储程序代码的介质。
87.本实施例提供的计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行一种集群中获取服务器种子节点的方法的步骤时,通过从当前ks值对应的集合中获取一个种子节点,并作为当前种子节点放入种子节点集合,并以当前种子节点为起点,获取其余节点到当前种子节点的距离,并更新距离列表以作为当前距离列表,根据当前距离列表,从当前ks值的下一个ks值对应的集合中选取距离当前种子节点最远的节点,并将此节点放入当前种子节点集合,最后判断种子节点集合中的节点个数是否等于预设个数,若是,结束所述种子节点的获取,若否,继续获取种子节点,可见,此方法通过距离列表从各个ks值对应的集合中获取种子节点,不仅提高了服务器路径搜索的效率,还保证了对潜在的节点的分析,也避免了获取的节点比较集中的问题,避免了在处理任务时节点重复性高,效率低下的问题。
88.以上对本技术所提供的集群中获取服务器种子节点的方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
89.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。