CN113765964A - 一种分布式系统服务分发的方法和装置 - Google Patents
一种分布式系统服务分发的方法和装置 Download PDFInfo
- Publication number
- CN113765964A CN113765964A CN202010796724.7A CN202010796724A CN113765964A CN 113765964 A CN113765964 A CN 113765964A CN 202010796724 A CN202010796724 A CN 202010796724A CN 113765964 A CN113765964 A CN 113765964A
- Authority
- CN
- China
- Prior art keywords
- service
- server
- performance index
- request
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000011156 evaluation Methods 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 24
- 238000009530 blood pressure measurement Methods 0.000 claims description 18
- 230000003068 static effect Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 230000015654 memory Effects 0.000 description 6
- 238000013468 resource allocation Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002147 killing effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种分布式系统服务分发的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:该分布式系统提供多个服务,且每个服务部署于不少于一个服务器上,接收服务请求,服务请求包括请求提供服务的服务标识;根据服务标识获取提供该服务的服务器的运行参数,并根据运行参数得到服务器的调优系统性能指标的实时值;根据系统性能指标的基准值和实时值对每个服务器的系统运行状态进行评估,并根据评估结果确定服务请求应转发的服务器;将服务请求发送给所确定的服务器。该实施方式能够在整体网络资源与硬件资源不变的情况下,提升了分布式服务系统整体的资源利用率,提升了热点服务系统的性能或吞吐量。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式系统服务分发的方法和装置。
背景技术
目前常用的应用系统性能优化或调优的方法主要有:基于压测工具手动调优、参数优化调优、业务代码功能调优、系统资源流量调度和网络分发等外部调优以及根据硬件资源以及网络配置进行参数权限配置调优等。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
目前常用的这些系统调优方法均是基于外部工具或静态资源进行离线、手动调优的,具有滞后性,并不能实时反映系统当时的运行情况,造成了系统资源的浪费和性能的降低。
发明内容
有鉴于此,本发明实施例提供一种分布式系统服务分发的方法和装置,能够通过代理服务对分布式服务系统的各个服务的系统性能与吞吐量进行动态监控,并根据监控结果动态分配分布式服务系统的资源,在整体网络资源与硬件资源不变的情况下,提升了分布式服务系统整体的资源利用率,提升了热点服务系统的性能或吞吐量。
为实现上述目的,根据本发明实施例的一个方面,提供了一种分布式系统服务分发的方法。
一种分布式系统服务分发的方法,所述分布式系统提供多个服务,且每个服务部署于不少于一个服务器上,所述方法包括:接收服务请求,所述服务请求包括请求提供服务的服务标识;根据所述服务标识获取提供所述服务的服务器的运行参数,并根据所述运行参数得到所述服务器的系统性能指标的实时值;根据所述系统性能指标的基准值和所述实时值对每个所述服务器的系统运行状态进行评估,并根据评估结果确定所述服务请求应转发的服务器;将所述服务请求发送给所确定的服务器。
可选地,所述系统性能指标的基准值是在系统资源总量固定的情况下,通过对系统进行静态压测得到的。
可选地,所述方法还包括:在对系统进行静态压测时,记录所述系统性能指标的基准值所对应的资源配置参数,并将所述基准值所对应的资源配置参数作为系统的初始化资源配置参数;以及,将在不同时间段有交叉产生高并发访问的多个服务部署于一个服务器上。
可选地,所述运行参数包括预设时长内的请求个数、每个请求的开始时间和结束时间;所述系统性能指标包括系统单位时间的查询率和系统请求处理耗时。
可选地,所述系统运行状态包括超负荷、均衡和低负荷,并且,根据评估结果确定所述服务请求应转发的服务器包括:若每个所述服务器的系统运行状态均为低负荷,则将任一所述服务器作为所述服务请求应转发的服务器;否则,判断是否有系统运行状态为低负荷的服务器;若是,则将系统运行状态为低负荷的任一服务器作为所述服务请求应转发的服务器;否则,根据每个所述服务器的系统性能指标的实时值与基准值之间的差值确定所述服务请求应转发的服务器。
可选地,所述方法通过代理服务来执行。
根据本发明实施例的另一方面,提供了一种分布式系统服务分发的装置。
一种分布式系统服务分发的装置,所述分布式系统提供多个服务,且每个服务部署于不少于一个服务器上,所述装置包括:请求接收模块,用于接收服务请求,所述服务请求包括请求提供服务的服务标识;实时参数处理模块,用于根据所述服务标识获取提供所述服务的服务器的运行参数,并根据所述运行参数得到所述服务器的系统性能指标的实时值;评估转发处理模块,用于根据所述系统性能指标的基准值和所述实时值对每个所述服务器的系统运行状态进行评估,并根据评估结果确定所述服务请求应转发的服务器;请求转发模块,用于将所述服务请求发送给所确定的服务器。
可选地,所述装置还包括初始配置模块,用于:在对系统进行静态压测时,记录所述系统性能指标的基准值所对应的资源配置参数,并将所述基准值所对应的资源配置参数作为系统的初始化资源配置参数;以及,将在不同时间段有交叉产生高并发访问的多个服务部署于一个服务器上。
根据本发明实施例的又一方面,提供了一种分布式系统服务分发的电子设备。
一种分布式系统服务分发的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的分布式系统服务分发的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的分布式系统服务分发的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过接收服务请求,并根据服务标识获取提供服务的服务器的运行参数,并根据运行参数得到服务器的系统性能指标的实时值;根据系统性能指标的基准值和实时值对每个服务器的系统运行状态进行评估,并根据评估结果确定服务请求应转发的服务器;将服务请求发送给所确定的服务器,可以通过代理服务对分布式服务系统的各个服务的系统性能与吞吐量进行动态监控,并根据监控结果动态分配分布式服务系统的资源,在整体网络资源与硬件资源不变的情况下,提升了分布式服务系统整体的资源利用率,提升了热点服务系统的性能或吞吐量。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的分布式系统服务分发的方法的主要步骤示意图;
图2是本发明一个实施例的服务资源动态分配的过程示意图;
图3是根据本发明实施例的分布式系统服务分发的装置的主要模块示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
目前常用的应用系统性能优化或调优主要有以下方式:
压测工具手动调优:使用压测工具对系统进行压测,根据压测结果进行系统资源和参数调整配置;
参数优化调优:对业务参数、缓存参数、JVM(Java虚拟机)配置参数、tomcat等web服务器、jobss等应用服务器、nginx等中间件服务器参数根据业务进行调优等;
业务代码功能调优:对系统的功能代码进行梳理,调整功能代码的实现方法等;
外部调优:系统资源流量调度、CDN(Content Delivery Network,内容分发网络)网络分发等;
网络调优:在代理服务器上根据不同的网络配置和硬件资源进行固定的参数权限配置。比如不同的内存CPU核数按照权限对网络访问的权重进行对应的匹配配置等。
然而,现有的这些对应用系统进行调优的方法大多是针对静态系统进行测试,且需要离线进行调整,具有滞后性。而在系统运行过程中,系统包括的资源服务器的运行情况并不能提前预知,例如:服务器的运行参数可能与压测时并不相同;当网络发生了变更(比如:不同移动网络服务商的无线网络)时对网络的调优也不具有通用性,等等。因此,需要根据系统的实时运行情况来进行系统资源调整以及性能优化。
为了解决现有技术中存在的上述技术问题,本发明提供了一种分布式系统服务分发的方法和装置,可以根据当前分布式的服务系统在不同时间段的不同繁忙程度或系统资源利用率进行动态监控,并调整服务接口或提供同一个机器(docker)部署的多个服务之间的服务资源阈值控制,在整体分布式系统硬件和网络资源没有变化的情况下,提升系统资源利用率,提升服务吞吐量。
通常情况下,分布式服务系统各接口的繁忙程度在时间和空间上不尽相同,比如典型的一个电商网站大促节点和时间绑定很紧密,在大促开始前,更多的是交易前流程服务比如页面浏览、加购物车、活动分享等服务访问量极大,而提交订单、支付等交易类服务接口访问量并不大;而在大促开始后,更多的是在抢购结算、下单支付,这个时候页面浏览、购物车、活动分享页等很多服务的访问量就没有那么高了。又如,对于微博、新闻等网站,会在某个集中的时间点时出现某一个新闻或话题的流量激增,其他服务接口访问量相对较少。一般情况下,一段时间范围内,用户的关注度可能集中在某一个点(即:服务或微服务)上,而另外的资源利用率则相对较低。类似的例如还有秒杀、抽奖、竞价等等场景。对于这些场景来说,在保持现有网络资源和硬件环境下,动态的根据各服务的繁忙程度调整提供的服务资源,来提升分布式服务系统整体的资源利用率,提升热点服务的系统吞吐量则显得很有意义。
图1是根据本发明实施例的分布式系统服务分发的方法的主要步骤示意图。其中,分布式系统提供多个服务,且每个服务部署于不少于一个服务器上。如图1所示,本发明实施例的分布式系统服务分发的方法主要包括如下的步骤S101至步骤S104。
步骤S101:接收服务请求,服务请求包括请求提供服务的服务标识;;
步骤S102:根据服务标识获取提供该服务的服务器的运行参数,并根据运行参数得到服务器的系统性能指标的实时值;
步骤S103:根据系统性能指标的基准值和实时值对每个服务器的系统运行状态进行评估,并根据评估结果确定服务请求应转发的服务器;
步骤S104:将服务请求发送给所确定的服务器。
根据上述的步骤S101至步骤S104,即可实现通过设定系统性能指标,实时统计提供对应服务的服务器的系统运行过程中的运行参数并计算服务器的系统性能指标的实时值,从而了解系统运行过程中的实际情况,并结合系统运行过程中的实际情况以及系统性能指标的基准值来确定服务应转发的服务器以进行系统动态调优,使得可以根据系统的实时运行情况来实时、动态地进行分布式系统服务分发,从而提升了分布式服务系统整体的资源利用率,提升热点服务的系统吞吐量。
根据本发明的一个实施例,系统性能指标的基准值是在系统资源总量固定的情况下,通过对系统进行静态压测得到的。在本发明的实施例中,可以借助现有的静态优化系统的方法,进行系统压测,在系统资源固定的情况下得出系统性能指标的基准值,并作为进行系统服务资源调度的基准。系统性能指标包括系统单位时间的查询率和系统请求处理耗时,系统性能指标例如是:系统最佳性能指标(例如:百分之九十九的网络请求所需要的最低耗时TP99,等)或系统最佳吞吐量指标(例如:每秒/分钟系统查询率QPS/QPM),并以这些指标作为依据来衡量域名系统服务器的机器的性能。并且,在对系统进行静态压测时,记录系统性能指标的基准值所对应的资源配置参数,并将基准值所对应的资源配置参数作为系统的初始化资源配置参数,在系统初始化时的资源配置如系统线程池、数据库连接池等参数。同时,在服务配置上,还可以从业务角度,将在不同时间段有交叉产生高并发访问的服务部署在同一个(组/网络组件)分布式系统资源(例如:服务器或者服务器集群,在本发明的实施例介绍中,均以服务器进行指代)上,以便在调度时候更合理的利用整体的系统资源。
其中,在确定系统性能指标的基准值时,应结合应用的具体需求来进行。由于系统最佳性能指标(例如:TP99)和系统最佳吞吐量指标是具有一定的互斥性的。例如:以公路类比于系统资源,公路上汽车类比于系统请求,速度最快即代表性能最佳;在业务可容忍的速度条件下,车辆尽可能的多即代表吞吐量最优,而一般情况下是无法使得系统最佳性能指标与系统最佳吞吐量指标两者均达到最大化的。而无论是系统最佳性能指标还是系统最佳吞吐量指标,两者对服务间的资源调度的目标是一致的,即:使整个系统的资源得到合理利用。故而,在确定系统性能指标的基准值时,应结合应用系统的功能实现需要来进行。
之后,即可实时获取系统的运行参数,并根据运行参数得到系统性能指标的实时值。根据本发明的另一个实施例,运行参数例如可以包括预设时长内的请求个数、每个请求的开始时间和结束时间,等等。系统性能指标例如包括系统单位时间的查询率和系统请求处理耗时,其中,系统单位时间的查询率例如是系统最佳吞吐量指标—每秒/分钟系统查询率QPS/QPM,系统请求处理耗时例如是系统最佳性能指标TP99。并且,本发明的分布式系统服务分发的方法可以是通过代理服务来执行的。使用代理服务记录每个服务器的实时运行参数并进行计算以确定服务请求应转发的服务器,可以减少各个服务不必要的计算能力,减少不必要的服务系统性能损耗。使用代理服务控制请求过来后调度到哪台服务器或者哪个集群的服务器进行业务处理,可以使得系统资源调度更加客观、合理。
在本发明的实施例中,在代理服务中增加每个请求开始和结束的时间记录,以及指定时长内的请求次数等等运行参数记录,并根据这些运行参数来计算调优指标的实时值,例如:可以按照每秒/分钟(TP99、QPS等可根据业务情况选择)的周期来进行平均响应时长或总响应个数值计算,以得到系统性能指标的实时值。以便将系统性能指标的实时值和之前进行静态压测得到的系统性能指标(例如:系统最佳性能指标或系统最佳吞吐量指标)的基准值进行比较,并将比较结果作为动态调整服务资源调度的依据。其中,在统计系统的运行参数和根据运行参数计算得到系统性能指标的实时值时,通过业务系统和代理服务都可以实现,但是,业务系统进行数据记录和计算会增加少许的资源占用,故而推荐使用代理服务的方式来进行数据记录和计算。
在获取到系统性能指标的基准值以及实时值之后,即可根据系统性能指标的基准值与实时值对每个服务器的系统运行状态进行评估。其中,系统运行状态包括超负荷、均衡和低负荷。在具体实现时,可以设定具体的评估规则,例如:当系统单位时间的查询率的实时值大于基准值,且系统请求处理耗时的实时值小于基准值时,即认为系统处于低负荷运行状态;当系统单位时间的查询率的实时值小于基准值,且系统请求处理耗时的实时值大于基准值时,即认为系统处于超负荷运行状态,等等。又如,并非仅仅根据数值之间的大小来判定系统运行状态,还可以设定每个系统运行状态所对应的系统性能指标的基准值的范围区间,进而根据系统性能指标的实时值是否位于设定的基准值的范围区间内来判断系统运行状态。具体地,可根据业务应用需要进行灵活设定。
在本发明的实施例中,对于超负荷运行的服务来说,其TP99性能低于该指标的基准值或者QPS达到预先配置的对应的基准值,那么,就需要对超负荷运行的服务动态增加服务资源分配;而对于低负荷运行的服务来说,其QPS未达到预先配置的基准值,那么,就需要对低负荷运行的服务进行部分服务的屏蔽以动态减少服务资源分配,从而实现平衡高访问量(超负荷)服务接口和低访问量(低负荷)服务接口的资源分配,并持续对高、低访问量的服务接口进行运行参数的统计监控,以求达到一个相对的平衡点(比如,高、低访问量的服务接口的TP99会接近,或者根据业务分级指定的高优先级服务达到预定的TP99值)。通过这种动态的调整可以在相对短的时间,使分布式微服务系统各接口能力整体趋于动态的平衡态,系统资源的利用率达到最大化。
其中,从代理服务整体而言,在进行资源的动态调整时,可以根据静态压测时,得到的系统性能指标的基准值对应的第一负载流量,以及系统运行过程中的实时值对应的第二负载流量来进行资源动态分配调整。例如:可根据第一负载流量和第二负载流量的比例关系来进行等比例的服务资源的增加或减少。另外,还可以根据业务应用的需要灵活设定服务资源调整的规则。由于一个业务系统一般会包括多个服务,在业务系统资源总量一定的情况下,当需要进行服务资源的动态调整时,即可根据该需要调整的多个服务的系统性能指标的变化情况来综合衡量如何进行资源的动态调整。从而实现在一个分布式系统整体资源不变的情况下,提升这些资源的利用率或复用率。
根据本发明的实施例,在进行系统资源的动态调整时,是通过根据部署有用户请求的服务的服务器的实时性能对服务器的系统运行状态进行评估,并根据评估结果将服务请求分发到这些服务器上,以使得该分布式系统的资源可以均衡分配。对于任一服务器来说,其分配给该服务的资源增加,则意味着该服务器上部署的其他服务的资源相应减少,从而实现了对超负荷运行的服务动态增加服务资源分配,对低负荷运行的服务进行部分服务的屏蔽以动态减少服务资源分配,在系统整体资源不变的情况下,提高了系统的服务性能。
在根据评估结果确定服务请求应转发的服务器时,具体可以包括以下步骤:
若每个服务器的系统运行状态均为低负荷,则将任一服务器作为服务请求应转发的服务器;
否则,判断是否有系统运行状态为低负荷的服务器;
若是,则将系统运行状态为低负荷的任一服务器作为服务请求应转发的服务器;
否则,根据每个服务器的系统性能指标的实时值与基准值之间的差值确定服务请求应转发的服务器。
在具体实施时,若每个服务器的系统运行状态均为低负荷,则说明此时系统压力较小,任一服务器均可以提供服务;当有的服务器的运行状态为超负荷或均衡,有的服务器的运行状态为低负荷时,则选择低负荷状态的服务器来提供服务;当系统压力较大,各个服务器的系统运行状态均为超负荷或均衡时,则根据每个服务器的系统性能指标的实时值与基准值之差来确定提供服务的服务器。如此,即可实现系统资源的均衡分配,使得系统的服务性能达到最优。
根据本发明的技术方案,代理服务对请求的转发控制可以使用各代理服务支持的脚本语言,比如Linux lua、Apahe php等来实现,支持动态的转发配置即可。
图2是本发明一个实施例的服务资源动态分配的过程示意图。如图2所示,其中示出了本发明的实施例中是如何进行服务资源动态分配的。其中,服务端的部署是分布式服务或者分布式微服务,通过代理服务进行客户端与服务端之间请求的转发分配。在系统运行之前,代理服务可预先获取服务的部署情况、系统性能指标(例如:QPS/TP99)的基准值,以及这些基准值对应的第一负载流量(即指定时长内的请求量)。
当客户端向服务端请求提供服务时,是由代理服务接收客户端请求,并向服务端请求业务服务,并在服务端响应后将响应转发给客户端。其中,在代理服务进行每次请求和响应转发的过程中,将记录请求时间以及服务端的响应时间,并统计指定时长内的请求总量(即:第二负载流量)以及计算系统性能指标的实时值。然后,将系统性能指标的实时值与获取的基准值进行比较,并进行系统的动态调优。
在本发明的一个实施例中,代理服务可以首先根据第一负载流量与第二负载流量进行服务资源的等比例调整,比如,若某个业务服务的第二负载流量是第一负载流量的两倍,则理论上需将该业务服务的资源量增加为原来的两倍,然而在系统运行过程中,同时运行的服务有多个,故而还需要结合每个服务的运行状态及系统性能指标的实时值来进行统筹计算。同时,由于每台服务部署机器的网络设置、运行性能等都不完全相同,故而在进行资源动态调整的过程中,需要实时监控各个服务的运行情况并得到系统性能指标的实时值,并根据实时值动态地进行服务资源的调整以达到系统资源的利用率动态最优。
在本发明的另一个实施例中,代理服务在接收到服务请求后,将获取到部署有该服务的每台服务器的系统性能指标的实时值和运行状态,然后根据每台服务器的系统性能指标的实时值和设定的基准值来确定该将服务请求分发给哪台服务器,进而调整代理服务对服务的转发配置。按照上述的方式,多次调整代理服务器的服务转发配置,即可实现系统资源的利用率动态最优。
图3是根据本发明实施例的分布式系统服务分发的装置的主要模块示意图。其中,分布式系统提供多个服务,且每个服务部署于不少于一个服务器上。如图3所示,本发明实施例的分布式系统服务分发的装置300主要包括请求接收模块301、实时参数处理模块302、评估转发处理模块303和请求转发模块304。
请求接收模块301,用于接收服务请求,所述服务请求包括请求提供服务的服务标识;
实时参数处理模块302,用于根据所述服务标识获取提供所述服务的服务器的运行参数,并根据所述运行参数得到所述服务器的系统性能指标的实时值;
评估转发处理模块303,用于根据所述系统性能指标的基准值和所述实时值对每个所述服务器的系统运行状态进行评估,并根据评估结果确定所述服务请求应转发的服务器;
请求转发模块304,用于将所述服务请求发送给所确定的服务器。
根据本发明的一个实施例,所述系统性能指标的基准值是在系统资源总量固定的情况下,通过对系统进行静态压测得到的。
根据本发明的另一个实施例,分布式系统服务分发的装置300还可以包括初始配置模块(图中未示出),用于:
在对系统进行静态压测时,记录所述系统性能指标的基准值所对应的资源配置参数,并将所述基准值所对应的资源配置参数作为系统的初始化资源配置参数;
以及,将在不同时间段有交叉产生高并发访问的多个服务部署于一个服务器上。
根据本发明的又一个实施例,所述运行参数包括预设时长内的请求个数、每个请求的开始时间和结束时间;所述系统性能指标包括系统单位时间的查询率和系统请求处理耗时。
根据本发明的另一个实施例,所述系统运行状态包括超负荷、均衡和低负荷,并且,评估转发处理模块303还可以用于:
若每个所述服务器的系统运行状态均为低负荷,则将任一所述服务器作为所述服务请求应转发的服务器;
否则,判断是否有系统运行状态为低负荷的服务器;
若是,则将系统运行状态为低负荷的任一服务器作为所述服务请求应转发的服务器;
否则,根据每个所述服务器的系统性能指标的实时值与基准值之间的差值确定所述服务请求应转发的服务器。
根据本发明的再一个实施例,分布式系统服务分发的装置300例如是通过代理服务的方式来实现的。
根据本发明实施例的技术方案,通过接收服务请求,并根据服务标识获取提供服务的服务器的运行参数,并根据运行参数得到服务器的系统性能指标的实时值;根据系统性能指标的基准值和实时值对每个服务器的系统运行状态进行评估,并根据评估结果确定服务请求应转发的服务器;将服务请求发送给所确定的服务器,可以通过代理服务对分布式服务系统的各个服务的系统性能与吞吐量进行动态监控,并根据监控结果动态分配分布式服务系统的资源,在整体网络资源与硬件资源不变的情况下,提升了分布式服务系统整体的资源利用率,提升了热点服务系统的性能或吞吐量。
图4示出了可以应用本发明实施例的分布式系统服务分发的方法或分布式系统服务分发的装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的分布式系统服务分发的方法一般由服务器405执行,相应地,分布式系统服务分发的装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统500的结构示意图。图5示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括请求接收模块、实时参数处理模块、评估转发处理模块和请求转发模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,请求接收模块还可以被描述为“用于接收服务请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收服务请求,所述服务请求包括请求提供服务的服务标识;根据所述服务标识获取提供所述服务的服务器的运行参数,并根据所述运行参数得到所述服务器的系统性能指标的实时值;根据所述系统性能指标的基准值和所述实时值对每个所述服务器的系统运行状态进行评估,并根据评估结果确定所述服务请求应转发的服务器;将所述服务请求发送给所确定的服务器。
根据本发明实施例的技术方案,通过接收服务请求,并根据服务标识获取提供服务的服务器的运行参数,并根据运行参数得到服务器的系统性能指标的实时值;根据系统性能指标的基准值和实时值对每个服务器的系统运行状态进行评估,并根据评估结果确定服务请求应转发的服务器;将服务请求发送给所确定的服务器,可以通过代理服务对分布式服务系统的各个服务的系统性能与吞吐量进行动态监控,并根据监控结果动态分配分布式服务系统的资源,在整体网络资源与硬件资源不变的情况下,提升了分布式服务系统整体的资源利用率,提升了热点服务系统的性能或吞吐量。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种分布式系统服务分发的方法,其特征在于,所述分布式系统提供多个服务,且每个服务部署于不少于一个服务器上,所述方法包括:
接收服务请求,所述服务请求包括请求提供服务的服务标识;根据所述服务标识获取提供所述服务的服务器的运行参数,并根据所述运行参数得到所述服务器的系统性能指标的实时值;
根据所述系统性能指标的基准值和所述实时值对每个所述服务器的系统运行状态进行评估,并根据评估结果确定所述服务请求应转发的服务器;
将所述服务请求发送给所确定的服务器。
2.根据权利要求1所述的方法,其特征在于,所述系统性能指标的基准值是在系统资源总量固定的情况下,通过对系统进行静态压测得到的。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在对系统进行静态压测时,记录所述系统性能指标的基准值所对应的资源配置参数,并将所述基准值所对应的资源配置参数作为系统的初始化资源配置参数;
以及,将在不同时间段有交叉产生高并发访问的多个服务部署于一个服务器上。
4.根据权利要求1所述的方法,其特征在于,所述运行参数包括预设时长内的请求个数、每个请求的开始时间和结束时间;所述系统性能指标包括系统单位时间的查询率和系统请求处理耗时。
5.根据权利要求1所述的方法,其特征在于,所述系统运行状态包括超负荷、均衡和低负荷,并且,根据评估结果确定所述服务请求应转发的服务器包括:
若每个所述服务器的系统运行状态均为低负荷,则将任一所述服务器作为所述服务请求应转发的服务器;
否则,判断是否有系统运行状态为低负荷的服务器;
若是,则将系统运行状态为低负荷的任一服务器作为所述服务请求应转发的服务器;
否则,根据每个所述服务器的系统性能指标的实时值与基准值之间的差值确定所述服务请求应转发的服务器。
6.根据权利要求1所述的方法,其特征在于,所述方法通过代理服务来执行。
7.一种分布式系统服务分发的装置,其特征在于,所述分布式系统提供多个服务,且每个服务部署于不少于一个服务器上,所述装置包括:
请求接收模块,用于接收服务请求,所述服务请求包括请求提供服务的服务标识;
实时参数处理模块,用于根据所述服务标识获取提供所述服务的服务器的运行参数,并根据所述运行参数得到所述服务器的系统性能指标的实时值;
评估转发处理模块,用于根据所述系统性能指标的基准值和所述实时值对每个所述服务器的系统运行状态进行评估,并根据评估结果确定所述服务请求应转发的服务器;
请求转发模块,用于将所述服务请求发送给所确定的服务器。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括初始配置模块,用于:
在对系统进行静态压测时,记录所述系统性能指标的基准值所对应的资源配置参数,并将所述基准值所对应的资源配置参数作为系统的初始化资源配置参数;
以及,将在不同时间段有交叉产生高并发访问的多个服务部署于一个服务器上。
9.一种分布式系统服务分发的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010796724.7A CN113765964A (zh) | 2020-08-10 | 2020-08-10 | 一种分布式系统服务分发的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010796724.7A CN113765964A (zh) | 2020-08-10 | 2020-08-10 | 一种分布式系统服务分发的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113765964A true CN113765964A (zh) | 2021-12-07 |
Family
ID=78785644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010796724.7A Pending CN113765964A (zh) | 2020-08-10 | 2020-08-10 | 一种分布式系统服务分发的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113765964A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760361A (zh) * | 2022-04-25 | 2022-07-15 | 中国平安人寿保险股份有限公司 | 业务请求分配方法、系统、设备及存储介质 |
CN114816770A (zh) * | 2022-04-29 | 2022-07-29 | 北京星汉未来网络科技有限公司 | 一种衡量计算机服务压力状态的通用系统及实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130054808A1 (en) * | 2011-08-31 | 2013-02-28 | International Business Machines Corporation | Management of storage cluster performance with hybrid workloads |
CN109729131A (zh) * | 2018-04-12 | 2019-05-07 | 平安普惠企业管理有限公司 | 一种应用请求的处理方法、装置和路由器 |
CN109769031A (zh) * | 2019-02-18 | 2019-05-17 | 珠海天天放送科技有限公司 | 一种动态自适应负载均衡方法及系统 |
CN109976917A (zh) * | 2019-04-08 | 2019-07-05 | 科大讯飞股份有限公司 | 一种负载调度方法、装置、负载调度器、存储介质及系统 |
CN111338916A (zh) * | 2018-12-18 | 2020-06-26 | 北京京东尚科信息技术有限公司 | 处理业务请求的方法、装置、电子设备和计算机可读介质 |
-
2020
- 2020-08-10 CN CN202010796724.7A patent/CN113765964A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130054808A1 (en) * | 2011-08-31 | 2013-02-28 | International Business Machines Corporation | Management of storage cluster performance with hybrid workloads |
CN109729131A (zh) * | 2018-04-12 | 2019-05-07 | 平安普惠企业管理有限公司 | 一种应用请求的处理方法、装置和路由器 |
CN111338916A (zh) * | 2018-12-18 | 2020-06-26 | 北京京东尚科信息技术有限公司 | 处理业务请求的方法、装置、电子设备和计算机可读介质 |
CN109769031A (zh) * | 2019-02-18 | 2019-05-17 | 珠海天天放送科技有限公司 | 一种动态自适应负载均衡方法及系统 |
CN109976917A (zh) * | 2019-04-08 | 2019-07-05 | 科大讯飞股份有限公司 | 一种负载调度方法、装置、负载调度器、存储介质及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760361A (zh) * | 2022-04-25 | 2022-07-15 | 中国平安人寿保险股份有限公司 | 业务请求分配方法、系统、设备及存储介质 |
CN114760361B (zh) * | 2022-04-25 | 2023-09-15 | 中国平安人寿保险股份有限公司 | 业务请求分配方法、系统、设备及存储介质 |
CN114816770A (zh) * | 2022-04-29 | 2022-07-29 | 北京星汉未来网络科技有限公司 | 一种衡量计算机服务压力状态的通用系统及实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109246229B (zh) | 一种分发资源获取请求的方法和装置 | |
CN105376111B (zh) | 资源分配方法和装置 | |
CN111614736A (zh) | 网络内容资源调度方法、域名调度服务器及电子设备 | |
US10069757B1 (en) | Reserved network device capacity | |
CN113094136A (zh) | 页面显示控制方法、装置、存储介质及电子设备 | |
CN113127168A (zh) | 服务分配方法、系统、装置、服务器及介质 | |
CN113467910B (zh) | 基于业务等级的过载保护调度方法 | |
CN112445857A (zh) | 一种基于数据库的资源配额管理方法和装置 | |
US11750711B1 (en) | Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform | |
CN110650209B (zh) | 实现负载均衡的方法和装置 | |
CN113765964A (zh) | 一种分布式系统服务分发的方法和装置 | |
KR101033813B1 (ko) | 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법 | |
CN110401731B (zh) | 用于分配内容分发节点的方法和装置 | |
CN111831503B (zh) | 一种基于监控代理的监控方法和监控代理装置 | |
CN110245014B (zh) | 数据处理方法和装置 | |
CN111008767A (zh) | 互联网金融技术架构评估方法、装置、电子设备和介质 | |
CN113765969B (zh) | 一种流量控制方法和装置 | |
KR101195123B1 (ko) | 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법 | |
CN112561301A (zh) | 工单分配方法、装置、设备和计算机可读介质 | |
CN112769960B (zh) | 一种基于Nginx服务器的主动流量控制方法及系统 | |
CN113630327B (zh) | 流量控制方法、装置、电子设备和计算机可读介质 | |
CN114465919A (zh) | 一种网络服务测试方法、系统、电子设备及存储介质 | |
CN109471574B (zh) | 用于配置资源的方法及装置 | |
CN109688432B (zh) | 信息传输方法、装置和系统 | |
CN112015745B (zh) | 一种数据管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |