一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式服务调度方法、装置、电子设备和存储介质与流程

2021-10-22 22:55:00 来源:中国专利 TAG:微服 分布式 调度 总体 方法


1.本发明总体来说涉及一种微服务技术,具体而言,涉及一种分布式服务调度方法。


背景技术:

2.在分布式服务集群中,由于软件和硬件原因,每个服务提供者其性能是动态变化的。当前性能较好的服务提供者经过一段时间后可能性能变差,反之也有可能性能较差的服务提供者经过一段时间后性能变好。由于性能较差的服务提供者会造成服务调用积压,因此,应该尽量将流量调度到性能较好的服务提供者中。更进一步的讲,科学的分布式服务流量调度机制应该能根据服务提供者的实时性能来动态调整调度参数,从而达到流量的最优调度,减少分布式服务集群的整体积压。
3.dubbo的四种算法中,基于hash一致性算法只会根据入参生成的hash值来选择服务提供者。很显然,当服务提供者性能发生变化时,只要入参相同,该算法并不会调整下一次调用所选择的服务提供者。
4.dubbo的基于权重随机算法、基于加权轮询算法均依赖于每个服务提供者的权重值(weight)来挑选具体的服务提供者。但是,在dubbo的实现中,权重值是手动配置的,需要管理员手动为每个服务提供者配置对应的权重值。因此,在实际部署中,当服务提供者发生性能变化时,面对成百上千的服务提供者,管理员根本无法实时调整权重值,顶多只能做到事后修复。所以,这两种算法也无法对服务提供者的性能变化做出实时响应。
5.dubbo的基于最少活跃调用数算法中,虽然有根据活跃调用数的多少来判断服务提供者的性能,但是该活跃调用数只是单个服务消费者(consumer)本地的统计数据,而无法对服务提供者的全局性能进行准确衡量。更进一步的,当单个服务消费者对分布式服务的调用并发度很低(比如串行调用)时,由于同一时间该服务消费者可能只存在一个调用请求,则该算法会失效(因为在调用发生时,该服务消费者看到的每一个服务提供者的当前调用数均为0)。因此,该算法也没有真正解决基于服务提供者的实时性能来动态调整调度参数。
6.另外,现有技术中还提出了分别通过预测算法和遗传算法来动态选择最优服务提供者的方案,但是这两种方案在大规模分布式服务集群中无法实际使用。因为当选出全局最优的服务提供者时,会造成较短时间内所有服务消费者均将调用流量发送至该服务提供者,从而导致流量洪峰效应,甚至最终在一瞬间击垮该服务提供者,导致服务不可用。因此,流量调度的动态调整依然需要在满足流量均衡的基本前提下进行。
7.在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

8.在发明内容部分中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特
征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
9.本发明的一个主要目的在于克服上述现有技术的至少一种缺陷,提供一种分布式服务调度方法,其包括:
10.周期性地统计每个服务提供者在本周期内执行完的各项服务的每次调用耗时;
11.根据所统计的调用耗时实时计算出用于预测每个服务提供者执行每项服务的性能权重值,性能越高则性能权重值越大;
12.响应于服务消费者所发起的针对一项服务的调用请求,采用随机加权算法对所有服务提供者在该项服务上最新性能权重值进行计算以从所有服务提供者中选取一个服务提供者,并调用所选取出的服务提供者来执行该调用请求对应的服务。
13.在本发明的一个具体实施例中,根据所统计的调用耗时实时更新用于预测每个服务提供者执行每项服务的性能权重值,性能越高则性能权重值越大,包括以下步骤:
14.根据所统计的调用耗时计算每个周期内每个服务提供者执行每项服务需要的平均调用耗时;
15.根据每个服务提供者执行每项服务需要的平均调用耗时计算出每个服务提供者执行每项服务在每周期的性能预估值;
16.根据每个服务提供者执行每项服务在每周期的性能预估值计算出每个服务提供者执行每项服务的性能权重值。
17.在本发明的一个具体实施例中,
18.根据下列步骤获得每个服务提供者执行每项服务在每周期的性能预估值:
19.令每个服务提供者执行每项服务在每周期的性能预估值为零;
20.当周期数小于或等于100时,采用加权移动平均法对每个服务提供者执行每项服务在前一周期的性能预估值和同一服务提供者执行同一项服务在当前周期的平均调用耗时求加权移动算术平均数,并将该加权移动算术平均数作为同一服务提供者执行同一项服务在当前周期的性能预估值;
21.当周期数大于100时,采用加权平均法对每个服务提供者执行每项服务在前一周期的性能预估值和同一服务提供者执行同一项服务在当前周期的平均调用耗时求加权算术平均数,并将该加权算术平均数作为同一服务提供者执行同一项服务在当前周期的性能预估值。
22.在本发明的一个具体实施例中,
23.根据下列步骤计算出每个服务提供者执行每项服务的性能权重值:
24.每个服务提供者执行每项服务的性能权重值等于同一服务提供者执行同一项服务的所有性能预估值之和除以同一服务提供者执行同一项服务的最后一个周期的性能预估值。
25.在本发明的一个具体实施例中,当前周期不存在调用耗时记录时,当前周期的性能预估值等于上一个周期的性能预估值。
26.在本发明的一个具体实施例中,周期性地统计每个服务提供者在本周期内执行各项服务每次调用耗时,包括:
27.每个服务提供者中的性能上报模块周期性地将各自所对应的服务提供者在本周期内执行各项服务的每次调用耗时的统计信息发送到消息集群;
28.计算集群包括多个性能计算模块,消息集群将统计信息中具有同一服务名称和同一服务提供者的调用耗时记录发送到计算集群的同一性能计算模块中进行性能预估值计算。
29.在本发明的一个具体实施例中,根据所统计的调用耗时实时更新用于预测每个服务提供者执行每项服务的性能权重值,性能越高则性能权重值越大,还包括在计算性能预估值之后且在计算性能权重值之前的步骤:
30.计算集群的性能计算模块在计算出性能预估值后将性能预估值发送至存储集群;
31.存储集群将同一服务的每个服务提供者的性能预估值转换成性能预测向量存储,然后将性能预测向量发送至向量转换模块进行性能权重值计算,其中,性能预测向量的格式为:
32.m:(<ip1,s
m1t
>,<ip2,s
m2t
>,
……
.<ip
i
,s
mit
>)
33.其中,m为服务项目的标识,ip
i
为第i个服务提供者的标识,s
mit
为第i个服务提供者在第t个周期执行m服务的性能预估值。
34.在本发明的一个具体实施例中,根据性能预测向量中的每个性能预估值计算出相对应的性能权重值后,将性能预测向量中的性能预估值替换成与其相应的性能权重值以使得性能预测向量转换成权重向量。
35.在本发明的一个具体实施例中,所述消息集群是kafka、rocketmq、rabitmq或activemq消息集群;
36.所述计算集群是storm、flink或spark stream集群;
37.所述存储集群是redis或memcache集群。
38.在本发明的一个具体实施例中,响应于服务消费者对一项服务的调用请求,根据所有服务提供者的该项服务的性能权重值采用随机加权算法从来所有服务提供者选取一个服务提供者,并调用所选取出的服务提供者来执行该调用请求,包括:
39.所述服务消费者上的流量调度模块周期性地向服务管理中心发射心跳信号,服务管理中心在接收到心跳信号后会将存储在权重向量缓存模块中的最新权重向量发射至流量调度模块;
40.流量调度模块采用随机加权算法对该项服务的最新权重向量中的性能权重值进行计算以从所有服务提供者中选取一个服务提供者,并调用所选取出的服务提供者来执行该调用请求对应的服务。
41.本发明还提出一种分布式服务调度装置,其包括
42.多个性能上报模块,一一对应设置于服务提供者内,配置为周期性地统计每个服务提供者在本周期内执行完的各项服务的每次调用耗时;
43.权重获取集群,配置为根据所有性能上报模块所统计的调用耗时实时计算出用于预测每个服务提供者执行每项服务的性能权重值,性能越高则性能权重值越大;
44.多个流量调度模块,一一对应设置于服务消费者内,配置为当其所对应的服务消费者所发起的针对一项服务的调用请求,采用随机加权算法对所有服务提供者在该项服务上最新性能权重值进行计算以从所有服务提供者中选取一个服务提供者,并调用所选取出的服务提供者来执行该调用请求对应的服务。
45.本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,
所述计算机程序被处理器执行时实现上述的分布式服务调度方法。
46.本发明还提出了一种电子设备,其包括:
47.处理器;以及
48.存储器,用于存储所述处理器的可执行指令;
49.其中,所述处理器配置为经由执行所述可执行指令来执行上述的分布式服务调度方法。
50.由上述技术方案可知,本发明的分布式服务调度方法的优点和积极效果在于:
51.由于完成每次服务的调用耗时是随着服务提供者的性能变化而实时变化的,根据调用耗时实时更新的性能权重值能动态反映出每个服务提供者的性能,而采用随机加权算法来选取服务提供者能保证在该项服务上高性能服务提供者被使用的概率大,从而将较多的调用请求流量引导向高性能服务提供者,将较少的调用请求流量引导向低性能服务提供者,调用请求流量并不会全部挤入到最佳性能的服务提供者而导致该服务提供者被击垮,从而实现了兼顾流量的动态调整和流量均衡。
附图说明
52.通过结合附图考虑以下对本发明的优选实施例的详细说明,本发明的各种目标、特征和优点将变得更加显而易见。附图仅为本发明的示范性图解,并非一定是按比例绘制。在附图中,同样的附图标记始终表示相同或类似的部件。其中:
53.图1是根据一示例性实施方式示出的一种分布式服务调度方法的流程图;
54.图2是根据一示例性实施方式示出的一种分布式服务调度装置的结构图;
55.图3是根据一示例性实施方式示出的一种电子设备的示意图;
56.图4是根据一示例性实施方式示出的一种计算机可读存储介质的示意图。
具体实施方式
57.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。
58.云计算的微服务(microservice)构架中包含有众多的服务提供者2,服务提供者2通常是该微服务架构中的一个节点,服务消费者3(consumer)能生成一个调用请求来调用其中的一个服务提供者2来执行一项服务。
59.参照图1,图1显示了本实施例中的分布式服务调度方法的流程图。分布式服务调度方法基于分布式服务调度装置1实施。参照图2,分布式服务调度装置1包括多个性能上报模块12、多个流量调度模块14和权重获取集群13。性能上报模块12和流量调度模块14均能与权重获取集群13通讯。在本实施例中,性能上报模块12的数量与服务提供者2的数量一致,性能上报模块12一一对应设置于服务提供者2内。流量调度模块14的数量与服务消费者3的数量一致,流量调度模块14一一对应设置于服务消费者3内。
60.该分布式服务调度方法包括步骤s1~s3。
61.步骤s1:周期性地统计每个服务提供者2在本周期内执行完的各项服务的每次调
用耗时;
62.在本实施例中,性能上报模块12配置为其所对应的服务提供者2在完成每次调用执行一次服务后,立即生成一条统计记录,该条统计记录用于表征历史上哪个服务提供者2执行哪种服务耗费了多长时间。该统计记录包括服务标识、服务提供者标识和调用耗时(delay),该统计记录的格式可以是<服务标识,服务提供者标识,调用耗时>。该服务标识用于区分服务的种类,服务标识可以是服务名称。服务提供者标识可以是服务提供者2的ip地址,也可以是服务提供者2的编号或者名称。调用耗时可以是本次调用到达服务提供者2起至调用返回时整个调用过程的耗时。
63.性能上报模块12还配置为在每个周期结束时将本周期内所生成的所有统计记录发送到权重获取集群13。
64.每次统计的统计周期时长为预设值。统计的频率过高则会加重系统负担,过低则统计数据的时效性较低。该预设值优选为0.5~2秒,更优选为1秒,这样能平衡统计数据的实时性与系统负载。例如,如果服务提供者2每生成一个统计记录就直接上报,那么如果该服务提供者2每秒有10000次调用,每秒则会上报10000次统计记录,这会使得统计记录的接收者权重获取集群13产生较大的压力。
65.步骤s2:根据所统计的调用耗时实时计算出用于预测每个服务提供者2执行每项服务的性能权重值,性能越高则性能权重值越大;
66.在权重获取集群13中根据调用耗时的统计记录来预测将来每个服务提供者2在执行每项服务时的性能,并且采用性能权重值来表征该性能的高低,并且性能越高则性能权重值越大。由于完成每次服务的调用耗时是随着服务提供者2的性能变化而实时变化的,采用调用耗时来预测服务提供者2的性能所得到的预测结果是比较准确的。
67.步骤s3:响应于服务消费者3所发起的针对一项服务的调用请求,采用随机加权算法对所有服务提供者2在该项服务上最新性能权重值进行计算以从所有服务提供者2中选取一个服务提供者2,并调用所选取出的服务提供者2来执行该调用请求对应的服务。
68.在服务消费者3发起一项调用请求时,触发该服务消费者3所对应的流量调度模块14执行步骤s3。由于在权重获取集群13中通过步骤s2已经得出了每个服务提供者2在每项服务上的性能权重值的集合,流量调度模块14能预先从权重获取集群13获取该集合,然后在执行步骤s3时先从该集合中获取到每个服务提供者2在服务消费者3所要执行的服务项目上的性能权重值,再对这些性能权重值采用随机加权算法来进行服务提供者2的抽取。
69.采用随机加权算法抽取每个服务提供者2的概率的比值等于每个服务提供者2在该服务项目上的性能权重值的比值,因此,每个服务提供者2在该服务项目上的性能权重值越高则被抽取到的概率越大。例如,服务提供者a、服务提供者b和服务提供者c的性能权重值依次为2、3、3,则服务提供者a、服务提供者b和服务提供者c被抽取的概率分布为25%、37.5%、37.5%,因此,服务提供者a、服务提供者b和服务提供者c在该项服务上调用请求流量分布比例分布25%、37.5%、37.5%。
70.这样,由于完成每次服务的调用耗时是随着服务提供者2的性能变化而实时变化的,根据调用耗时实时更新的性能权重值能动态反映出每个服务提供者2的性能,而采用随机加权算法来选取服务提供者2能保证在该项服务上高性能服务提供者2被使用的概率大,从而将较多的调用请求流量引导向高性能服务提供者2,将较少的调用请求流量引导向低
性能服务提供者2,调用请求流量并不会全部挤入到最佳性能的服务提供者2而导致该服务提供者2被击垮,从而实现了兼顾流量的动态调整和流量均衡。
71.进一步地,步骤s2包括:步骤s21~步骤s23
72.步骤s21:根据所统计的调用耗时计算每个周期内每个服务提供者2执行每项服务需要的平均调用耗时;
73.在周期t内,第i个服务提供者发送了n条关于m服务的统计记录,可以通过以下算式来计算出该周期t内该服务提供者2i执行m服务时的平均调用耗时h
it

[0074][0075]
h
mit
为第i个服务提供者2在第t个周期执行第m项的平均调用耗时,d
min
为第i个服务提供者2执行m服务时的第n个调用耗时,n为第i个服务提供者2执行m服务时的调用耗时数量。
[0076]
步骤s22:根据每个服务提供者2执行每项服务需要的平均调用耗时计算出每个服务提供者2执行每项服务在每周期的性能预估值;
[0077]
根据下列步骤获得每个服务提供者执行每项服务在每周期的性能预估值:
[0078]
令每个服务提供者执行每项服务在每周期的性能预估值为零;采用算式可以表达为:
[0079]
当t=0时,s
mi0
=0;
[0080]
其中,t为周期数,s
mi0
为第i个服务提供者2在第0个周期执行m服务的性能预估值。
[0081]
当周期数小于或等于100时,采用加权移动平均法对每个服务提供者执行每项服务在前一周期的性能预估值和同一服务提供者执行同一项服务在当前周期的平均调用耗时求加权移动算术平均数,并将该加权移动算术平均数作为同一服务提供者执行同一项服务在当前周期的性能预估值;采用算式可以表达为:
[0082]
当0<t≤100时,
[0083]
其中,t为周期数,s
mit
为第i个服务提供者2在第t个周期执行m服务的性能预估值,h
mit
为第i个服务提供者2在第t个周期执行m服务的平均调用耗时,β为预设常数,β∈[0,1)。在一个优选的实施例中,β=0.4。
[0084]
当周期数大于100时,采用加权平均法对每个服务提供者执行每项服务在前一周期的性能预估值和同一服务提供者执行同一项服务在当前周期的平均调用耗时求加权算术平均数,并将该加权算术平均数作为同一服务提供者执行同一项服务在当前周期的性能预估值。采用算式可以表达为:
[0085]
当t>100时,s
mit
=β
×
s
mit-1
(1-β)
×
h
mit

[0086]
其中,t为周期数,s
mit
为第i个服务提供者2在第t个周期执行m服务的性能预估值,h
mit
为第i个服务提供者2在第t个周期执行m服务的平均调用耗时,β为预设常数,β∈[0,1)。在一个优选的实施例中,β=0.4。
[0087]
在本实施例中,若第i个服务提供者2在周期t内不具有关于服务m的任何调用耗时的统计记录,则第i个服务提供者2在第t个周期关于服务m的性能预估值s
it
等于其在前一个
周期关于服务m的性能预估值s
mi(t-1)
,即:
[0088]
s
mit
=s
mi(t-1)
[0089]
其中,s
mit
为第i个服务提供者2在第t个周期执行m服务的性能预估值,s
mi(t-1)
为第i个服务提供者2在第t-1个周期执行m服务的性能预估值。
[0090]
步骤s23:根据每个服务提供者2执行每项服务在每周期的性能预估值计算出每个服务提供者2执行每项服务的性能权重值。
[0091]
在本实施例中,根据下列步骤计算出每个服务提供者执行每项服务的性能权重值:
[0092]
每个服务提供者执行每项服务的性能权重值等于同一服务提供者执行同一项服务的所有性能预估值之和除以同一服务提供者执行同一项服务的最后一个周期的性能预估值。采用算式可以表达为:
[0093][0094]
其中,w
mi
为第i个服务提供者2在执行m服务的性能权重值,s
mit
为第i个服务提供者2在第t个周期执行m服务的性能预估值。
[0095]
进一步地,在本实施例中,权重获取集群13包括服务质量实时计算集群131和服务管理中心132。
[0096]
服务质量实时计算集群131包括消息集群133和计算集群134。消息集群133与各个性能上报模块12相互连接。消息集群133能接收来自各个性能上报模块12所上报的统计记录。消息集群133在接收到一个周期的统计记录后,将统计记录发送到计算集群134。计算集群134根据统计记录计算出性能权重值。该消息集群133可以是kafka、rocketmq、rabitmq或activemq消息集群。计算集群134包括多个性能计算模块135,每个性能计算模块135连接于消息集群133。计算集群134中的性能计算模块135的数量能进行扩张。例如,性能计算模块135的数量与计算负荷成正相关,即计算负荷越大、性能计算模块135的数量越多。该计算集群134可以是storm、flink或spark stream集群。
[0097]
步骤s11,包括:步骤s11~s12。
[0098]
步骤s11:每个性能上报模块12周期性地将其所对应的服务提供者2在本周期内执行各项服务的每次调用耗时的统计信息发送到消息集群133;
[0099]
步骤s12:消息集群133将统计信息中具有同一服务名称和同一服务提供者2的调用耗时统计记录发送到计算集群134的同一性能计算模块135中进行性能预估值计算。
[0100]
在本实施例中,计算集群134为storm集群,消息集群133是kafka消息集群。kafka消息集群接收到性能上报模块12上报的统计记录后,通过storm集群的storm spout分发到storm集群中的性能计算模块135上。消息集群133在接收到统计记录后对统计记录进行分类,具有同一服务名称和同一服务提供者2的统计记录分为同一类。在本实施例中,统计记录的格式为<服务标识,服务提供者标识,调用耗时>,将统计记录前缀为<服务标识,服务提供者标识>的统计记录分到同一类。然后将属于同一类的统计记录发送到同一个性能计算模块135上进行计算,这样可以保证同一服务的相同服务提供者2的统计记录都发送到同一性能计算模块135中进行聚合计算,使得计算效率得到提高。若某个服务提供者2的统计记
录分发到多个性能计算模块135上,则无法实现聚合计算完全在内存中进行,导致聚合计算的性能下降,无法保证时效性。
[0101]
在性能计算模块135中,性能计算模块135周期性地对所接收到的统计记录进行聚合,并动态计算出相应服务提供者2执行相应服务的性能权重值。
[0102]
进一步地,在步骤s2中还包括步骤s22之后且在步骤s23之前的步骤s221。
[0103]
服务质量实时计算集群131还包括存储集群136和向量转换模块137。存储集群136连接于计算集群134。存储集群136可以是redis或memcache集群。向量转换模块137连接于存储集群136。
[0104]
步骤s221:计算集群134的性能计算模块135在计算出性能预估值后将性能预估值发送至存储集群136;
[0105]
计算集群的每个性能计算模块135在计算出性能预估值后,将性能预估值发送到存储集群136。性能预测向量在存储集群136中的存储可使用sorted set结构,其中s
mit
作为score,ip作为member。性能预测向量的key为对应的服务名称。这样,存储集群136将同一服务的每个服务提供者2的性能预估值转换成性能预测向量存储,然后将性能预测向量发送至向量转换模块137进行性能权重值计算,其中,性能预测向量的格式为:
[0106]
m:(<ip1,s
m1t
>,<ip2,s
m2t
>,
……
.<ip
i
,s
mit
>)
[0107]
其中,m为服务项目的标识,ip
i
为第i个服务提供者2的标识,s
mit
为第i个服务提供者2在第t个周期执行m服务的性能预估值。
[0108]
存储集群136将获得的性能预测向量发送至向量转换模块137,向量转换模块137对性能预测向量中的性能预估值进行计算以获得对应的性能权重值,向量转换模块137再将性能预测向量中的性能预估值替换成与其相应的性能权重值以使得性能预测向量转换成权重向量。权重向量的格式为:
[0109]
m:(<ip1,w
m1
>,<ip2,w
m2
>,
……
.<ip
i
,w
mi
>)
[0110]
其中,m为服务项目的标识,ip
i
为第i个服务提供者2的标识,w
mi
为第i个服务提供者2在执行m服务的性能权重值。
[0111]
向量转换模块137将权重向量发射至服务管理中心132。
[0112]
在本实施例中,使用<服务名、ip>前缀分组,结合kafka、storm、redis架构,实现算法单元的横向扩展性,使得算法单元在分布式服务集群规模扩张时具有弹力。
[0113]
进一步地,分布式服务调度装置1还包括多个流量调度模块14。服务管理中心132与向量转换模块137之间通信连接,服务管理中心132与各个流量调度模块14之间也通信连接。服务管理中心132包括权重向量缓存模块,权重向量缓存模块用于存储所接收到权重向量。
[0114]
流量调度模块14周期性地向服务管理中心132发射心跳信号,该心跳信号的发送频率为每秒一次。服务管理中心132在接收到心跳信号后会将存储在权重向量缓存模块中的最新权重向量发射至流量调度模块14。
[0115]
流量调度模块14在接收到最新权重向量后,在服务消费者3所发起的针对一项服务的调用请求时,流量调度模块14采用随机加权算法对该项服务的最新权重向量中的性能权重值进行计算以从所有服务提供者2中选取一个服务提供者2,并调用所选取出的服务提供者2来执行该调用请求对应的服务。
[0116]
设立权重向量缓存模块主要是为了将服务质量实时计算集群131与服务消费者3相隔离,使得服务质量实时计算集群131对服务消费者3透明。这样,从服务消费者3的角度,并不知道服务质量实时计算集群131的存在,只需遵从现有接口,只和服务管理中心132交互即可,从而达到兼容现有分布式服务框架的目的。
[0117]
进一步地,服务管理中心132还预存有备用权重向量,备用权重向量为手动预先配置好的权重向量。当服务管理中心132接收到心跳信号时,先判断是否权重向量缓存模块是否存储有从向量转换模块137所发送过来的权重向量,若不具有从向量转换模块137发送过来的权重向量则将备用权重向量发送到流量调度模块14。
[0118]
这样做的目的是使服务管理中心132不对服务质量实时计算集群131产生强依赖,就算服务质量实时计算集群131发生故障,也能保证服务管理中心132继续正常运行。
[0119]
下面参照图3来描述根据本发明的这种实施方式的电子设备800。图3显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0120]
如图3所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
[0121]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0122]
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。
[0123]
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0124]
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0125]
电子设备800也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得保险客户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0126]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算
设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的分布式服务调度方法。
[0127]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述一种分布式服务调度方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0128]
参考图4所示,描述了根据本发明的实施方式的用于实现上述分布式服务调度方法的程序产品900,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0129]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0130]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0131]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0132]
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如java、c 等,还包括常规的过程序程序设计语言-诸如“c”语言或类似的程序设计语言。程序代码可以完全地在保险客户计算设备上执行、部分地在保险客户设备上执行、作为一个独立的软件包执行、部分在保险客户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到保险客户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0133]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0134]
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现
期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0135]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的分布式服务调度方法。
[0136]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
[0137]
尽管已经参照某些实施例公开了本发明,但是在不背离本发明的范围和范畴的前提下,可以对所述的实施例进行多种变型和修改。因此,应该理解本发明并不局限于所阐述的实施例,其保护范围应当由所附权利要求的内容及其等价的结构和方案限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜