CN109408207A - 微服务访问控制方法、装置及存储介质 - Google Patents

微服务访问控制方法、装置及存储介质 Download PDF

Info

Publication number
CN109408207A
CN109408207A CN201811100703.6A CN201811100703A CN109408207A CN 109408207 A CN109408207 A CN 109408207A CN 201811100703 A CN201811100703 A CN 201811100703A CN 109408207 A CN109408207 A CN 109408207A
Authority
CN
China
Prior art keywords
request
threshold
service system
micro service
access
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.)
Granted
Application number
CN201811100703.6A
Other languages
English (en)
Other versions
CN109408207B (zh
Inventor
孙永利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201811100703.6A priority Critical patent/CN109408207B/zh
Publication of CN109408207A publication Critical patent/CN109408207A/zh
Application granted granted Critical
Publication of CN109408207B publication Critical patent/CN109408207B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开是关于一种微服务访问控制方法、装置及存储介质,该方法应用于访问微服务系统的设备,该方法包括:获取预设时间内向各所述微服务系统发送的访问请求的请求成功率;根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,所述请求阈值为预设时间内允许向所述微服务系统发送访问请求的次数的最大值;根据所述请求阈值对应地控制对各所述微服务系统的访问。本公开各实施例能够减少微服务系统故障时导致的继续恶化情况,从而最大程度上保证系统的稳定运行。

Description

微服务访问控制方法、装置及存储介质
技术领域
本公开涉及软件系统技术领域,尤其涉及一种微服务访问控制方法、装置及存储介质。
背景技术
微服务作为一个新兴的软件架构,其是把一个大型的单个应用程序和服务拆分为数十个相对独立的服务系统。也就是说,一个庞大的软件服务系统可以按照系统功能的独立性,将其中的某些服务拆分出来,从而形成独立的微服务系统。每个微服务系统可以形成某种或者某些特定功能的集合。而对于原来的业务系统来说,可以依次调用这些微服务系统从而满足业务上的基本需求。有了微服务,开发者可以只更新微服务系统内部的组件逻辑即可,而不会影响到其他的部分。
然而,服务被拆分之后,一个完整的业务请求往往需要请求多个微服务系统才能获取结果,而业务系统调用微服务系统时往往会存在重试机制(如果一次调用失败,可以再次重试,避免由于网络原因或者其他原因导致请求失败),一旦微服务系统内部发生错误或者处理请求的速度过慢,则会导致微服务系统收到的访问请求数量越来越多,微服务系统的压力会越来越大,从而产生雪崩效应,这就造成微服务系统的故障会继续下去且无法恢复。因此,需要对微服务系统访问进行一定的优化控制,避免微服务系统故障时导致的继续恶化情况。
发明内容
本公开实施例提供一种微服务访问控制方法、装置及存储介质,以便对微服务系统访问进行优化控制,降低了微服务系统故障恶化的概率,从而最大程度上保证系统的稳定运行。
根据本公开实施例的第一方面,提供一种微服务访问控制方法,所述方法应用于访问微服务系统的设备,所述方法包括:
获取预设时间内向各所述微服务系统发送的访问请求的请求成功率;根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,所述请求阈值为预设时间内允许向所述微服务系统发送访问请求的次数的最大值;根据所述请求阈值对应地控制对各所述微服务系统的访问。
在一种可能的实施方式中,所述获取预设时间内向各微服务系统发送的访问请求的请求成功率包括:获取预设时间内向各微服务系统发送访问请求的第一次数值,以及从所述微服务系统获得表征请求成功的返回信息的第二次数值;利用所述第二次数值和第一次数值之间的比值,确定各所述微服务系统的所述请求成功率。
在一种可能的实施方式中,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,包括:如果所述微服务系统的所述请求成功率大于或者等于第一阈值,则按照第一预设方式增加所述微服务系统的请求阈值。
在一种可能的实施方式中,所述第一阈值为1。
在一种可能的实施方式中,所述按照第一预设方式增加所述微服务系统的请求阈值包括:按照第一预设函数,以线性增长的方式增加所述微服务系统的请求阈值,其中所述第一预设函数包括:y=kx+b;其中,y表示调整后的请求阈值,x表示调整前的请求阈值,k和b为系数。
在一种可能的实施方式中,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,还包括:如果所述微服务系统的所述请求成功率大于或者等于第二阈值且小于第三阈值,则保持所述请求阈值不变,其中,所述第二阈值小于所述第三阈值。
在一种可能的实施方式中,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,还包括:如果所述微服务系统的所述请求成功率小于第四阈值且大于0,则按照第二预设方式减小所述请求阈值。
在一种可能的实施方式中,所述按照第二预设方式减小所述请求阈值包括:
按照第二预设函数,以线性递减的方式减小所述微服务系统的请求阈值,其中所述第二预设函数包括:
y=hx-t;
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,h和t为系数。
在一种可能的实施方式中,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,还包括:
如果所述微服务系统在预设时间内的所述请求成功率为零,则按照第三预设方式减小所述微服务系统的请求阈值。
在一种可能的实施方式中,所述按照第三预设方式减小所述请求阈值包括:按照第三预设函数,以指数递减的方式减小所述微服务系统的请求阈值、。
在一种可能的实施方式中,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,还包括:在减小所述请求阈值时,判断调整后的请求阈值是否小于或者等于第五阈值;如果调整后的请求阈值小于或者等于第五阈值,则终止请求阈值的减小操作,所述第五阈值小于所述第四阈值。
在一种可能的实施方式中,所述根据所述请求阈值对应地控制对各所述微服务系统的访问包括:如果预设时间内向微服务系统发送的访问请求的次数达到与所述微服务系统对应的请求阈值,则所述预设时间内不再向该微服务系统发送访问请求。
在一种可能的实施方式中,所述根据所述请求阈值对应地控制对各所述微服务系统的访问包括:
获取待向微服务系统发送的访问请求的优先级;
按照所述访问请求从高到低的顺序,确定所述访问请求中满足各所述微服务系统的请求阈值的重要访问请求;
向所述微服务系统发送所述重要访问请求。
根据本公开实施例的第二方面,提供一种微服务访问控制装置,包括:获取模块,其用于获取预设时间内向各所述微服务系统发送的访问请求的请求成功率;调整模块,其用于根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,所述请求阈值为预设时间内允许向所述微服务系统发送访问请求的次数的最大值;访问控制模块,其用于根据所述请求阈值对应地控制对各所述微服务系统的访问。
在一种可能的实施方式中,所述获取模块还用于获取预设时间内向各微服务系统发送访问请求的第一次数值,以及从所述微服务系统获得表征请求成功的返回信息的第二次数值,并利用所述第二次数值和第一次数值之间的比值,确定各所述微服务系统的所述请求成功率。
在一种可能的实施方式中,所述调整模块还用于在所述微服务系统的所述请求成功率大于或者等于第一阈值时,按照第一预设方式增加所述微服务系统的请求阈值。
在一种可能的实施方式中,所述第一阈值为1。
在一种可能的实施方式中,所述调整模块还用于按照第一预设函数,以线性增长的方式增加所述微服务系统的请求阈值,其中所述第一预设函数包括:y=kx+b;
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,k和b为系数。
在一种可能的实施方式中,所述调整模块还用于在所述微服务系统的所述请求成功率大于或者等于第二阈值且小于第三阈值时,保持所述请求阈值不变,其中,所述第二阈值小于所述第三阈值。
在一种可能的实施方式中,所述调整模块还用于在所述微服务系统的所述请求成功率小于第四阈值且大于零时,按照第二预设方式减小所述请求阈值。
在一种可能的实施方式中,所述调整模块还用于在按照第二预设方式减小所述请求阈值时,按照第二预设函数,以线性递减的方式减小所述微服务系统的请求阈值,其中所述第二预设函数包括:
y=hx-t;
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,h和t为系数。
在一种可能的实施方式中,所述调整模块还用于当所述微服务系统在预设时间内的所述请求成功率为零时,按照第三预设方式减小所述微服务系统的请求阈值。
在一种可能的实施方式中,所述调整模块还用于在按照第三预设方式减小所述请求阈值时,按照第三预设函数,以指数递减的方式减小所述微服务系统的请求阈值,其中所述第三预设函数包括:y=x-an
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,a和n为系数。
在一种可能的实施方式中,所述调整模块还用于在减小所述请求阈值时,判断调整后请求阈值是否小于或者等于第五阈值;如果调整后的请求阈值小于或者等于第五阈值,则终止请求阈值的减小操作,所述第五阈值小于所述第四阈值。
在一种可能的实施方式中,所述访问控制模块还用于在向微服务系统发送的访问请求的次数达到与其对应的请求阈值,则预设时间内不再向该微服务系统发送访问请求。
在一种可能的实施方式中,所述访问控制模块还用于获取待向微服务系统发送的访问请求的优先级,并按照所述访问请求从高到低的顺序,确定所述访问请求中满足各所述微服务系统的请求阈值的重要访问请求,并向所述微服务系统发送所述重要访问请求。
根据本公开实施例的第三方面,提供了一种微服务访问控制装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述第一方面的方法。
根据本公开实施例的第四方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述第一方面的方法。
本公开的实施例可以使访问微服务系统的设备获取预设时间内向各所述微服务系统发送的访问请求的请求成功率;根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,所述请求阈值为预设时间内允许向所述微服务系统发送访问请求的次数的最大值;根据所述请求阈值对应地控制对各所述微服务系统的访问。通过上述配置,本公开实施例可以根据各微服务系统在预设时间内的请求成功率,对应的为每个微服务系统设置相应的请求阈值,以适应性地限定预设时间内对各微服务系统的访问次数,即本公开实施例可以根据各微服务系统实时的数据处理状态对应的调整针对微服务系统的访问操作的最大次数,从而可以在微服务系统出现故障或者处理速度下降时,通过调整其请求阈值来降低由于向该微服务系统发送大量的访问请求而造成故障恶化的概率。因此,通过本公开实施例可以合理的控制微服务系统的运行负荷,由此优化了对微服务系统的访问控制策略,可以降低业务系统在大量调用微服务系统时出现故障的情况下进一步恶化的风险,保证了系统的稳定运行。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据本公开一实施例示出的一种微服务系统访问控制方法的流程图。
图2是根据本公开一实施例示出的获取预设时间内向各所述微服务系统发送的访问请求的请求成功率的流程图。
图3是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的流程图。
图4是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的另一流程图。
图5是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的另一流程图。
图6是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的另一流程图。
图7是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的另一流程图。
图8是根据本公开一实施例示出的一种微服务系统访问装置的框图。
图9是根据本公开一实施例示出的一种微服务系统访问装置的框图。
图10是根据本公开一实施例示出的一种微服务系统访问装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种微服务访问控制方法的流程图,如图1所示,本公开实施例的微服务访问控制方法可以包括以下步骤。
S11:获取预设时间内向各所述微服务系统发送的访问请求的请求成功率;
S12:根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,所述请求阈值为预设时间内允许向所述微服务系统发送访问请求的次数的最大值;
S13:根据所述请求阈值对应地控制对各所述微服务系统的访问。
下面分别对本公开实施例的各步骤过程进行详细说明。在步骤S11中,获取预设时间内向各所述微服务系统发送的访问请求的请求成功率。
本公开实施例中提供的微服务访问控制方法可以应用在能够访问微服务系统的设备中,该能够访问微服务系统的设备可以是业务端系统内的设备或者也可以是终端设备。例如本公开实施例业务端系统设备可以包括业务服务器,该业务服务器可以通过与至少一个微服务系统交互来完成对应的业务操作。终端设备可以为任意的手持终端或者便携式终端,例如,计算机、手机或平板电脑等。只要是能够执行与微服务系统的访问并具有访问权限的设备都可以应用本公开实施例所提供的微服务访问控制方法。
如上所述,访问微服务系统的设备可以处于微服务系统架构中的业务系统中,当业务系统执行对微服务系统的某种业务操作时,可以向微服务系统发送对应的访问请求。本公开实施例中,访问请求的形式可以根据所要执行的业务操作以及系统的配置要求确定。在执行不同的业务操作时,访问请求可以具有不同的信息。例如,用户通过终端设备购买一件商品时,其通过终端设备向业务系统提交订单信息,业务系统内的设备(或者服务器)可以根据该订单信息向其中的一个微服务系统发出第一访问请求,以使得微服务系统执行该商品数量的减1操作,还可以向另一微服务系统发送第二访问请求,以使得该另一微服务系统执行订单信息的存储操作。也即,在执行一项业务操作时,可以至少向一个微服务系统发送访问请求,而且可以向不同的微服务系统发送不同的访问请求以完成该业务操作。上述实施例仅为访问请求的示例性说明,在执行其他业务操作时,向微服务系统发送的访问请求可以用于执行不同功能的操作,本公开实施例对此不进行限定。
另外,本公开实施例中,生成访问请求的方式可以包括:基于接收到的业务请求生成对应的访问请求、基于接收的访问控件的选择操作生成访问请求,或者基于检测到的预设配置的特定操作生成访问请求。其中,基于业务请求生成访问请求的示例可以参照前述示例。除此之外,用户可以通过点击设备或者执行预设的特定操作来生成访问请求。例如可以通过点击设备的显示界面上的访问控件(例如,可以是设备上安装的应用程序界面中的控件,其中点击一个控件可以表示访问对应的一个微服务系统,也可以表示同时访问多个微服务系统的集合),或者通过预先设置的特定操作等方式生成相应的访问请求,并向微服务系统发送该访问请求,微服务系统的微服务器可以接收设备发送的访问请求,并执行对应的操作。
另外,本公开实施例中,向微服务系统发送的访问请求中可以包括访问微服务系统的设备的第一标识信息,例如该第一标识信息可以为设备的ID(Identification)、地址、名称等信息,该访问请求中还可以包括将要访问的微服务系统的微服务器的第二标识信息,例如微服务器的ID(Identification)、地址、名称等信息中的至少一种,该访问请求中还可以包括设备对所述微服务系统的访问类型信息,例如对微服务系统的访问的类型可以包括登录、信息的查看、下载、数据验证等,另外该访问请求中还可以包括设备对所述微服务系统的访问类型的优先级信息。上述仅为访问请求内的信息的举例说明,在本公开的其他实施例中也可以包括其他类型的信息或者内容。
本公开实施例中,该访问微服务系统的设备可以向各微服务系统发送访问请求,并且可以接收各微服务系统返回的针对访问请求的返回信息,例如,可以返回信息可以是针对访问请求的返回数据,或者也可以是通知设备完成该访问请求的通知信息。因此,该访问微服务系统的设备可以获知访问请求是否成功的被执行。基于此,本公开实施例可以统计预设时间内向每个微服务系统发送的访问请求的请求成功率,该预设时间可以是设备按照特定的规则提前设定好的时间长度。例如,可以设定为1s。或者在本公开的其他实施例中,也可以根据访问微服务系统的设备或者需要访问的微服务系统的特殊需求来设定,本公开实施例对此不进行限定。
如上所述,本公开实施例可以根据设定的预设时间统计该预设时间内向每个微服务系统发送的访问请求的请求成功率。其中,可以统计预设时间内向各微服务系统发送的访问请求的请求次数,以及从各微服务系统返回的表示请求成功的返回信息的次数,并根据统计的该两个次数值计算请求成功率。本公开实施例可以根据配置的统计程序来统计向各微服务系统发送的访问请求的请求次数以及返回的返回信息的次数,从而计算预设时间内的请求成功率。本公开的其他实施例中,也可以通过其他方式确定各次数值,以计算请求成功率,本公开对此不进行限定。
在步骤S12中,根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,所述请求阈值为预设时间内允许向所述微服务系统发送访问请求的次数的最大值。
本公开实施例中,可以根据在步骤S11中统计到的预设时间内微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值。即可以根据预设时间内各微服务系统的请求成功率来适应性的调整在之后的预设时间内能够向该微服务系统发送的访问请求的最大数量。
其中,本公开实施例可为每个微服务系统设置请求阈值,以控制对各微服务系统的访问操作的次数。例如如果设定第一微服务系统的请求阈值是200,则表明预设时间内允许向该第一微服务系统发送访问请求的次数最多200次,当预设时间内向第一微服务系统发送的访问请求的次数达到200次时,则在该预设时间内不再向第一微服务系统发送任何访问请求,直至到达下一预设时间,则可以根据新的请求阈值执行微服务系统的访问控制。从而可以将预设时间作为一个周期,即可以根据一个周期的时间内微服务系统的请求成功率确定下一周期内微服务系统的请求阈值。即可以实时地根据微服务系统的状态调整其请求阈值。
另外,在本公开实施例中,当向第一微服务系统发送的访问请求的次数满足预设要求时,可以按照访问请求的优先级信息向第一微服务系统发送访问请求。该预设要求可以包括预设时间内向第一微服务系统已发送的访问请求的次数达到请求阈值对应的最大次数的预设百分比,例如该预设百分比为70%-90%范围内的任意数值。即,预设时间内向第一微服务系统发送的访问请求将要达到200次时,可以根据预先设定的访问请求的业务类型的优先级情况优先发送优先级高的访问请求,禁止发送优先级低的访问请求,以此实现业务处理的优化。
本公开实施例中,可以为每个微服务系统设置一初始请求阈值,并在执行业务操作后,实时的根据各微服务系统在预设时间内的请求成功率对应的调整请求阈值。例如,可以在业务服务系统启动或者微服务系统启动时为微服务系统设置初始请求阈值,该初始请求阈值可以是设备自行设置的默认值,也可以从对应的微服务系统接收的默认值,在业务进行的过程中可以对默认的请求阈值进行动态调整,以适用于微服务系统的不同状态。
其中,步骤S12中,可以根据预设时间内的访问请求的请求成功率与预设阈值之间的比较结果,确定用于调整该微服务系统的请求阈值的策略。即,对于不同的情况,可以使用不同的调整策略对微服务系统的请求阈值进行调整。其中,可以按照预设策略调整各所述微服务系统的请求阈值,其中预设策略可以是在设备本地保存的预设策略,也可以是设备从其他设备接收的预设策略,设备按照预设策略调整各所述微服务系统的请求阈值可以是增加某个微服务系统的请求阈值,或者也可以减小微服务系统的请求阈值,或者也可以保持微服务系统的阈值。
其中,在微服务系统在预设时间内的访问请求的请求成功率满足第一预设条件时,可以增加该微服务系统的请求阈值。例如,当微服务系统在预设时间内的访问请求的请求成功率大于或者等于第一阈值时,即判断为满足该第一预设条件,此时可以增加微服务系统的请求阈值,即可以在预设时间内向该微服务系统发送更多的访问请求。另外,在微服务在预设时间内的访问请求的请求成功率满足第二预设条件时,可以保持该微服务系统的请求阈值。例如,当微服务系统在预设时间内的访问请求的请求成功率大于或者等于第二阈值且小于第三阈值时(第二阈值小于第三阈值),或者处于其他范围区域内时,即可以判断为满足该第二预设条件,此时可以保持微服务系统的请求阈值,即可以在预设时间内保持向该微服务系统发送的访问请求的数量。其中,本公开实施例的第三阈值可以与第一阈值相等,或者也可以是小于第一阈值的数值,也可以是根据需求设定的其他数值,本公开实施例对此不进行限定。另外,在当微服务在预设时间内的访问请求的请求成功率满足第三预设条件时,可以减小该微服务系统的请求阈值。例如,当微服务系统在预设时间内的访问请求的请求成功率大于零且小于第四阈值时,或者处于其他范围区域内时,即可以判断为满足该第三预设条件,此时可以减小微服务系统的请求阈值,即可以在预设时间内减少向该微服务系统发送的访问请求的数量。其中,第四阈值可以与第二阈值相等,也可以是小于第二阈值的任意数值,或者也可以是根据需求设定的其他数值,本公开对此不进行限制。
即,本公开实施例可以实时的根据微服务系统当前的处理能力或者状态,来适应性的调节其请求阈值。当微服务系统的状态正常,且请求成功率很高,则可以对应的增加其请求阈值,如果微服务系统的状态基本正常,但是请求成功率保持在中上水平,则可以保持其请求阈值,如果微服务系统出现故障,或者处理速度慢,请求成功率交底,则可以减少其请求阈值,减少由于发送过多的访问造成微服务系统的继续故障。
在通过步骤S12确定调整请求阈值的策略之后,即可以对预设时间内的请求阈值进行调整。并可以在步骤S13中执行,根据所述请求阈值对应地控制对各所述微服务系统的访问。
在调整了各微服务系统的请求阈值之后,则可以根据调整后的请求阈值,控制对各微服务系统的访问,设备在预设时间内对微服务系统的访问请求的数量则不能超过请求阈值中对应的访问请求的最大值。例如将上述预设时间内的请求阈值由200次调整为大于300次,则在下一个预设时间段内就按照200次的访问请求的数量控制对相应微服务系统的访问。
在本公开实施例中,步骤S13中,根据所述请求阈值对应地控制对各所述微服务系统的访问,可以包括:如果预设时间内向微服务系统发送的访问请求的次数达到与所述微服务系统对应的请求阈值,则所述预设时间内不再向该微服务系统发送访问请求。
本公开实施例,可以获取预设时间内向微服务系统发送的访问请求的次数,例如,可以对向各微服务系统发送的访问请求的次数进行计数,只需要获取对应的计数数值就可获取预设时间内向各微服务系统发送访问请求的次数值。当预设时间内向一微服务系统发送的访问请求的次数值达到请求阈值,该设备在所述时间内可以不再向该微服务系统发送访问请求。
另外,在本公开实施例中,可以根据访问请求的优先级发送各访问请求,其中所述根据所述请求阈值对应地控制对各所述微服务系统的访问(步骤S13)可以包括:
获取待向微服务系统发送的访问请求的优先级;
按照优先级从高到低的顺序,确定所述访问请求中满足各所述微服务系统的请求阈值的重要访问请求;
向所述微服务系统发送所述重要访问请求。
即,本公开实施例中,业务服务系统接收到的业务请求中可以包括请求的优先级信息,或者业务服务系统可以根据接收的业务请求的请求项目确定其优先级信息,并进一步的,对应的向微服务系统发送的访问请求也可以包括相应的优先级信息。基于此,本公开实施例可以按照该优先级信息发送各访问请求。首先,可以确定待向各微服务系统发发送的访问请求的优先级,并根据该优先级对各访问请求进行排序。在向微服务系统发送各访问请求时,可以按照优先级从高到低的顺序发送各访问请求。其中,可以按照优先级从高到低的顺序,确定所述访问请求中满足各所述微服务系统的请求阈值的重要访问请求,即可以根据为每个微服务系统设置的请求阈值,按照优先级从高到低的顺序确定在该请求阈值范围内的重要访问请求,并发送重要访问请求。对于不满足请求阈值的访问请求,即按照优先级排序不在请求阈值所包括的范围内的访问请求,可以丢弃该部分访问请求,也可以待微服务系统的请求成功率满足预设条件时再发送。其中,预设条件可以包括请求成功率大于第二阈值,或者其他阈值范围。通过该配置,可以在微服务系统出现故障时,在减少微服务系统压力的情况下还能保证重要请求的访问。
或者,本公开实施例中,在该预设时间的开始时刻时或者当访问请求的次数值即将达到请求阈值(发送的访问请求的次数占请求阈值的百分比超过预设比例)时,还可以根据携带在访问请求中的业务类型优先级信息,优先允许优先级高的访问请求类型的发送,禁止优先级低的访问请求类型的发送,这样就可以有效的缓解微服务系统的负荷压力,降低微服务系统的请求量,给微服务系统故障恢复的时机,最大限度的避免故障的进一步恶化出现。其中,预设百分比可以为大于85%的数值,或者也可以其他数值,本领域技术人员可以根据需求设置。
基于上述配置,本公开实施例可以获取预设时间内向多个微服务系统发送的访问请求的请求成功率,并根据获取的各微服务系统的请求成功率,按照预先设定的策略调整在一定的时间内允许向微服务系统发送访问请求的次数的最大值,从而使得设备根据调整后的请求阈值对应地控制对各微服务系统的访问,优化了对微服务系统的访问控制,避免在大量地访问微服务系统的请求的失败情况下,微服务系统出现故障而无法恢复,提高了用户的体验。
下面,对本公开实施例的各步骤进行详细说明。图2是根据本公开一实施例示出的获取预设时间内向各所述微服务系统发送的访问请求的请求成功率的流程图(步骤S11)。如图2所示,获取预设时间内向各所述微服务系统发送的访问请求的请求成功率可以包括:
步骤S1101,获取预设时间内向各微服务系统发送访问请求的第一次数值。
步骤S1102,从所述微服务系统获得表征请求成功的返回信息的第二次数值。
步骤S1103,利用所述第二次数值和第一次数值之间的比值,确定各所述微服务系统的所述请求成功率。
如上述实施例所述,本公开实施例中,可以获取预设时间内各个微服务系统的请求成功率。其中该预设时间可以为1s,或者也可以为其他时间范围。其中,在确定各微服务系统的请求成功率之前,需要确定在预设时间内向各微服务系统发送的访问请求的次数,以及微服务系统对该访问请求成功的执行请求操作的次数,即执行步骤S1101和步骤S1102。
其中,可以在向每个微服务系统发送的访问请求时,对预设时间内向该微服务系统发送的请求次数进行计数。另外各微服务系统在接收到发送的访问请求时,可以对接收到的访问请求进行应答,可以回复请求成功的应答消息,例如确认消息表示请求成功。或者也可以在微服务系统在执行访问请求对应的请求操作时,实时的将执行的过程和结果返回给业务系统,以告知该操作在正常的进行并成功完成。从而业务系统可以获知针对每个访问请求是否访问成功的情况,并对应的获取访问成功的次数。在获取预设时间内发送访问请求的第一次数值A和请求成功的第二次数值B时,可以基于B与A的比值,确定预设时间内的请求成功率。
上述步骤S1101和步骤S1102可以同时执行,或者也可以先执行步骤S1101获取第一次数值,再执行步骤S1102获取到第二次数值,或者也可以先执行步骤S1102,在执行步骤S1101,本公开实施例对该两个步骤的顺序不进行限定。
通过上述配置,可以在获取预设时间内向各微服务系统发送访问请求的第一次数值和从所述微服务系统获得表征请求成功的返回信息的第二次数值之后,计算所述第二次数值和第一次数值之间的比值以确定各所述微服务系统在预设时间内的所述请求成功率。而后,可以根据确定的各所述微服务系统的所述请求成功率,按照预设策略调整各所述微服务系统的请求阈值,并根据该请求阈值对应地控制对各所述微服务系统的访问,防止各微服务系统出现拥塞故障难以恢复的情况发生。
图3是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的流程图(对应步骤S12)。如图3所示,本公开实施例的步骤S12可以包括:
步骤S1201,判断所述微服务系统在预设时间内的请求成功率是否大于或者等于第一阈值;
步骤S1202,如果所述微服务系统的所述请求成功率大于或者等于第一阈值,则按照第一预设方式增加所述微服务系统的请求阈值。
其中可以为各微服务系统设置第一阈值,该第一阈值的数值可以根据系统常规的运行规律预先设定,也可以根据其他特定的规则预先设定,例如可以设置该第一阈值为98%,根据获取到预设内向每个微服务系统发送的访问请求的请求成功率与第一阈值相比较,当所述微服务系统的请求成功率大于或等于第一阈值时,可以按照第一预设方式增加微服务系统的请求阈值。例如当预设时间内向某个微服务系统发送的访问请求的请求成功率大于或等于98%,说明此时向某个微服务系统发送访问请求的成功率较高,系统运行正常,可以增加该微服务系统的请求阈值,则可以在下一个预设时间内以增加的向该微服务系统发送访问请求的最大次数来控制访问。
或者,在本公开的另一些实施例中,第一阈值也可以为1,即只有在预设时间内向微服务系统发送的访问请求全部成功时,才按照第一预设方式增加该微服务系统的请求阈值,从而可以更加精确的执行各微服务系统的访问控制。
其中,可以按照第一预设方式增加请求阈值,其中,第一预设方式可以包括向当前的请求阈值中增加预设次数的访问请求数,例如当前的请求阈值为200,且预设时间内的请求成功率大于第一阈值,则可以将请求阈值调整为200+100(100为预设次数),即新的请求阈值为300。本公开实施例中预设次数的值可以根据不同的需求进行设定在此不进行限制。另外,第一预设方式也可以包括按照线性增长的方式增加请求阈值,例如按照预设函数y=kx+b增加请求阈值,其中,y表示调整后的请求阈值,x表示调整前的请求阈值,k和b可以为系数,其中k为大于1的数值,b为大于0的数值。本公开实施例可以通过设置k和b中的至少一个来调整请求阈值以增加请求阈值。第一预设方式还可以是能够增加所述微服务系统的请求阈值的其他方式,本公开实施例不再赘述。
在本公开实施例中,图4是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的另一流程图(对应步骤S12)。如图4所示,步骤S12可以包括:
步骤S1211,判断所述微服务系统在预设时间内的请求成功率是否大于或者等于第二阈值且小于第三阈值;
步骤S1212,如果所述微服务系统的所述请求成功率大于或者等于第二阈值且小于第三阈值,则保持所述请求阈值不变,其中,所述第二阈值小于所述第三阈值。
其中可以为各微服务系统设置第二阈值和第三阈值,该第二阈值可以小于第三阈值,同样地,该第二阈值和第三阈值的数值可以根据系统常规的运行规律预先设定,也可以根据其他特定的规则预先设备,例如可以设置第三阈值为98%,第二阈值为80%,根据获取到预设内向每个微服务系统发送的访问请求的请求成功率与第三阈值和第二阈值相比较,当所述微服务系统的请求成功率大于或等于第二阈值且小于第三阈值时,例如在请求成功率在80%至98%之间,说明此时向某个微服务系统发送访问请求的成功率仍较高,但是也出现部分访问请求失败,系统仍可正常运行,可以保持微服务系统的请求阈值不变,例如在下一个预设时间内保持向该微服务系统发送访问请求的次数不变来控制访问。同样的第三阈值也可以为1,即在预设时间内微服务系统发送的访问请求存在失败的情况,且请求成功率大于第二阈值,则保持微服务系统的请求阈值不变。另外,本公开实施例中的第三阈值可以是与第一阈值相等的值,或者也可以是比第一阈值小的值,本公开实施例对此不进行限定。
在本公开实施例中,图5是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的另一流程图(对应步骤S12)。如图5所示,步骤S12可以包括:
步骤S1221,判断所述微服务系统在预设时间内的请求成功率是否小于第四阈值且大于零;
步骤S122,如果所述微服务系统的所述请求成功率小于第四阈值且大于零,则按照第二预设方式减小所述请求阈值。
其中第四阈值与图4中示例的第二阈值可以相同,也可以不同,例如可以是小于或者等于第二阈值的任意数值,例如也可以为80%,根据获取到预设内向每个微服务系统发送的访问请求的请求成功率与第二阈值相比较,当所述微服务系统在预设时间内的请求成功率小于第四阈值时且大于零(即大部分访问请求失败),可以按照第二预设方式减小微服务系统的请求阈值,例如当向某个微服务系统发送的访问请求的请求成功率小于80%,说明此时向某个微服务系统发送访问请求的失败率较高,系统运行可能出现故障,此时可以减小微服务系统的请求阈值,例如在下一个预设时间内以减小的向该微服务系统发送访问请求的最大次数来控制访问。
其中,可以按照第二预设方式减小请求阈值,其中,第二预设方式可以包括向当前的请求阈值中减少预设次数的访问请求数,例如当前的请求阈值为200,且预设时间内的请求成功率小于第二阈值,则可以将请求阈值调整为200-100(100为预设次数),即新的请求阈值为100。本公开实施例中预设次数的值可以根据不同的需求进行设定在此不进行限制。另外,第二预设方式也可以包括按照线性递减的方式减少请求阈值,例如按照预设函数y=hx-t减少请求阈值,其中,y表示调整后的请求阈值,x表示调整前的请求阈值,h和t可以为系数,其中h为大于1的数值,t为大于0的数值。本公开实施例可以通过设置h和t中的至少一个来调整请求阈值以减小请求阈值。或者,第二预设方式也可以为按照指数递减的方式减少请求阈值,指数递减的方式能够较快的基于当前的请求阈值执行递减操作,即可以更加快速的响应微服务系统出现故障时的状态。例如指数函数可以为y=x-an,其中,y表示调整后的请求阈值,x表示调整前的请求阈值,a和n为系数,其中a可以为大于1的数值,n可以为大于1的数值,通过调节a或者n中的至少一个来执行请求阈值的指数性递减。或者,在其他实施例中指数函数也可以是其他形式的函数,例如可以为y(n+1)=y(n)×e^(-x),其中y(n+1)为调整后的请求阈值,y(n)为调整前的请求阈值,x为系数,通过调节x执行请求阈值的指数性递减。另外第二预设方式还可以是能够减小所述微服务系统的请求阈值的其他方式,本公开实施例不再赘述。
另外,在本公开实施例中,在预设时间内向微服务系统发送的访问请求全部失败,即在预设时间内微服务系统的请求成功来为零时,可以按照第三预设方式减小微服务系统的请求阈值。该第三预设方式可以是相对于第二预设方式的减小速度更快的减少方式,以快速的减小对微服务系统的请求的积累,避免造成微服务系统的故障加重。
其中,按照第三预设方式减小所述微服务系统的请求阈值可以包括:按照第三预设函数,以指数递减的方式减小所述微服务系统的请求阈值,其中所述第三预设函数可以包括任意形式的递减的指数函数:例如,可以为y=x-an;其中,y表示调整后的请求阈值,x表示调整前的请求阈值,a和n为系数。其中,其中a可以为大于1的数值,n可以为大于1的数值,可以通过调节a和n的数值,调整指数性减少的速率,适应于微服务系统的故障情况。或者在其他实施例中第三预设函数也可以是其他形式的指数函数,例如可以为y(n+1)=y(n)×e^(-x),其中y(n+1)为调整后的请求阈值,y(n)为调整前的请求阈值,x为系数,通过调节x执行请求阈值的指数性递减。本公开实施例对指数函数的形式不作详细限定。
需要说明书的是,本公开实施例中的图3、图4、和图5的判断和调整过程可以单独执行,也可以具有先后顺序,例如图5所示的步骤可以在图3中所示的步骤S121之后执行,也可以单独地执行,单独的执行就按照上述介绍的方式执行,在步骤S1201之后执行可以是先将微服务系统的成功率与第一阈值比较,如果当所述微服务系统的所述请求成功率大于或者等于第一阈值时,则按照第一预设方式增加所述微服务系统的请求阈值,即执行步骤S1202,如果请求成功率小于第一阈值,则再将请求成功率与第二阈值和第三阈值比较,即执行图4的判断过程,如果所述微服务系统的所述请求成功率大于第二阈值且小于第三阈值,则保持请求阈值,或者如果大于零且小于第四阈值,则按照第二预设方式减小所述请求阈值,即执行图5示出的判断过程,如果请求成功率为零,则按照第三预设方式减小所述请求阈值。上述执行方式不被限定。
在本公开实施例中,图6是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的另一流程图(对应步骤S12)。如图6所示,步骤S12还可以包括:
步骤S1231,在减小所述请求阈值时,判断调整后的请求阈值是否小于或者等于第五阈值;
步骤S1232,如果调整后请求阈值小于或者等于第五阈值,则终止请求阈值的减小操作,所述第五阈值小于所述第四阈值。
在按照第二预设方式或者第三预设方式减小请求阈值时,该请求阈值会减小,此时执行步骤S1241,判断调整后的请求阈值是否小于或者等于第五阈值,其中第五阈值可以是为每个微服务系统设置的阈值,表示允许向微服务系统发送的访问请求的最大次数的最低限,该第五阈值的大小同样可以根据系统常规的运行规律预先设定,也可以根据其他特定的规则预先设备,第五阈值可以是小于第四阈值的值。例如可以设置第五阈值为探测窗口大小,该探测窗口大小可以为3-5个,即预设时间内只允许请求3-5个访问请求的数量,主要是用来探测微服务系统是否恢复正常。若调整后的请求阈值小于或者等于第五阈值,将不再减小请求阈值,仍以该请求阈值大小来控制对微服务系统的访问控制,如果用于探测的访问请求全部请求成功,则表明该微服务系统的故障开始逐渐恢复了,那么可以重新基于预设时间各所述微服务系统发送的访问请求的请求成功率增加或者保持调节请求阈值的过程。
若调整后的请求阈值大于第五阈值,设备将按照调整后的请求阈值对应地控制对各所述微服务系统的访问。通过上述方式可以有效的防止请求阈值的无限制减小,阻止微服务系统故障停止运行的可能,同时能够给予系统缓解故障恢复的空间。
下面,为了更加清楚的体现本公开实施例的调整请求阈值的过程,通过图7进行举例说明。图7是根据本公开一实施例示出的根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值的另一流程图。
步骤S1251:判断所述请求成功率是否大于第一阈值,如是则执行S1252,否则执行S1253;
步骤S1252:按照第一预设方式增加请求阈值;
步骤S1253:判断所述请求成功率是否大于或者等于第二阈值且小于第一阈值(此时第三阈值和第一阈值相等),如是则执行步骤S1254,否则执行步骤S1255(第四阈值和第二阈值相等);
S1254:保持所述请求阈值;
S1255:如果请求成功率不等于零,则按照第二预设方式减小请求阈值,否则按照第三预设方式减小请求阈值;
S1256:判断在按照第二预设方式或者第三预设方式减小请求阈值时,减小后的请求阈值是否小于探测窗口对应的阈值(第五阈值),如是,则终止请求阈值的减小,如否,则执行步骤S1251。
上述仅为本公开实施例的示例性说明,不对本公开实施例的保护范围进行限定。
综上所述,本公开实施例可以根据各微服务系统在预设时间内的请求成功率,对应的为每个微服务系统设置相应的请求阈值,以适应性地限定预设时间内对各微服务系统的访问次数,即本公开实施例可以根据各微服务系统实时的数据处理状态对应的调整针对微服务系统的访问操作的最大次数,从而可以在微服务系统出现故障或者处理速度下降时,通过调整其请求阈值来降低由于向该微服务系统发送大量的访问请求而造成故障恶化的概率。因此,通过本公开实施例可以合理的控制微服务系统的运行负荷,由此优化了对微服务系统的访问控制策略,可以降低业务系统在大量调用微服务系统时出现故障的情况下进一步恶化的风险,保证了系统的稳定运行。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。
此外,本公开还提供了微服务访问控制装置、电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种微服务访问控制方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图8是根据一示例性实施例示出的一种微服务访问控制装置框图。参照图8,该装置可以应用于访问微服务系统的设备,该装置包括获取模块10,调整模块20和访问控制模块30。
获取模块10,其被配置为用于获取预设时间内向各所述微服务系统发送的访问请求的请求成功率;
确定模块20,其被配置为用于根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,所述请求阈值为预设时间内允许向所述微服务系统发送访问请求的次数的最大值;
访问控制模块30,其被配置为用于根据所述请求阈值对应地控制对各所述微服务系统的访问。
在一种可能的实施方式中,所述获取模块还配置为获取预设时间内向各微服务系统发送访问请求的第一次数值,以及从所述微服务系统获得表征请求成功的返回信息的第二次数值,并利用所述第二次数值和第一次数值之间的比值,确定各所述微服务系统的所述请求成功率。
在一种可能的实施方式中,调整模块还配置为在所述微服务系统的所述请求成功率大于或者等于第一阈值时,按照第一预设方式增加所述微服务系统的请求阈值。
在一种可能的实施方式中,所述第一阈值为1。
在一种可能的实施方式中,调整模块还配置为按照第一预设函数,以线性增长的方式增加所述微服务系统的请求阈值,其中所述第一预设函数包括:y=kx+b;
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,k和b为系数。
在一种可能的实施方式中,调整模块还配置为在所述微服务系统的所述请求成功率大于或者等于第二阈值且小于第三阈值时,保持所述请求阈值不变,其中,所述第二阈值小于所述第三阈值。
在一种可能的实施方式中,调整模块还配置为在所述微服务系统的所述请求成功率小于第四阈值且大于零时,按照第二预设方式减小所述请求阈值。
在一种可能的实施方式中,所述调整模块还用于在按照第二预设方式减小所述请求阈值时,按照第二预设函数,以线性递减的方式减小所述微服务系统的请求阈值,其中所述第二预设函数包括:
y=hx-t;
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,h和t为系数。
在一种可能的实施方式中,所述调整模块还用于当所述微服务系统在预设时间内的所述请求成功率为零时,按照第三预设方式减小所述微服务系统的请求阈值。
在一种可能的实施方式中,调整模块还配置为在按照第三预设方式减小所述请求阈值时,按照第三预设函数,以指数递减的方式减小所述微服务系统的请求阈值。
在一种可能的实施方式中,调整模块还配置为在按照所述第二预设方式减小所述请求阈值时,判断调整后请求阈值是否小于或者等于第五阈值;如果调整后请求阈值小于或者等于第五阈值,则终止请求阈值的减小操作,其中,所述第五阈值小于所述第四阈值。
在一种可能的实施方式中,访问控制模块还配置为在向微服务系统发送的访问请求的次数达到与其对应的请求阈值,则预设时间内不再向该微服务系统发送访问请求。
在一种可能的实施方式中,所述访问控制模块还用于获取待向微服务系统发送的访问请求的优先级,并按照所述优先级从高到低的顺序,确定所述访问请求中满足各所述微服务系统的请求阈值的重要访问请求,并向所述微服务系统发送所述重要访问请求。
图9是根据一示例性实施例示出的一种微服务系统访问控制装置的框图。例如,电子设备(装置)800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图9,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如WiFi,2G或3G或4G或5G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由电子设备800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图10是根据一示例性实施例示出的一种微服务系统访问控制装置的框图。例如,电子设备(装置)1900可以被提供为一服务器。参照图10,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1932,上述指令可由电子设备1900的处理组件1922执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (28)

1.一种微服务访问控制方法,其特征在于,所述方法应用于访问微服务系统的设备,所述方法包括:
获取预设时间内向各所述微服务系统发送的访问请求的请求成功率;
根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,所述请求阈值为预设时间内允许向所述微服务系统发送访问请求的次数的最大值;
根据所述请求阈值对应地控制对各所述微服务系统的访问。
2.根据权利要求1所述的方法,其特征在于,所述获取预设时间内向各微服务系统发送的访问请求的请求成功率包括:
获取预设时间内向各微服务系统发送访问请求的第一次数值,以及从所述微服务系统获得表征请求成功的返回信息的第二次数值;
利用所述第二次数值和第一次数值之间的比值,确定该预设时间内的各所述微服务系统的所述请求成功率。
3.根据权利要求1所述的方法,其特征在于,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,包括:
如果所述微服务系统的所述请求成功率大于或者等于第一阈值,则按照第一预设方式增加所述微服务系统的请求阈值。
4.根据权利要求3所述的方法,其特征在于,所述第一阈值为1。
5.根据权利要求3或4所述的方法,其特征在于,所述按照第一预设方式增加所述微服务系统的请求阈值包括:
按照第一预设函数,以线性增长的方式增加所述微服务系统的请求阈值,其中所述第一预设函数包括:y=kx+b;
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,k和b为系数。
6.根据权利要求1所述的方法,其特征在于,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,还包括:
如果所述微服务系统的所述请求成功率大于或者等于第二阈值且小于第三阈值,则保持所述请求阈值不变,其中,所述第二阈值小于所述第三阈值。
7.根据权利要求1所述的方法,其特征在于,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,还包括:
如果所述微服务系统的所述请求成功率小于第四阈值且大于零,则按照第二预设方式减小所述请求阈值。
8.根据权利要求7所述的方法,其特征在于,所述按照第二预设方式减小所述请求阈值包括:
按照第二预设函数,以线性递减的方式减小所述微服务系统的请求阈值,其中所述第二预设函数包括:
y=hx-t;
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,h和t为系数。
9.根据权利要求1所述的方法,其特征在于,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,还包括:
如果所述微服务系统在预设时间内的所述请求成功率为零,则按照第三预设方式减小所述微服务系统的请求阈值。
10.根据权利要求9所述的方法,其特征在于,所述按照第三预设方式减小所述微服务系统的请求阈值包括:
按照第三预设函数,以指数递减的方式减小所述微服务系统的请求阈值。
11.根据权利要求7-10中任意一项所述的方法,其特征在于,所述根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,还包括:
在减小所述请求阈值时,判断调整后的请求阈值是否小于或者等于第五阈值;
如果调整后的请求阈值小于或者等于第五阈值,则终止请求阈值的减小操作,所述第五阈值小于所述第四阈值。
12.根据权利要求1所述的方法,其特征在于,所述根据所述请求阈值对应地控制对各所述微服务系统的访问包括:
如果预设时间内向微服务系统发送的访问请求的次数达到与所述微服务系统对应的请求阈值,则所述预设时间内不再向该微服务系统发送访问请求。
13.根据权利要求1所述的方法,其特征在于,所述根据所述请求阈值对应地控制对各所述微服务系统的访问包括:
获取待向微服务系统发送的访问请求的优先级;
按照优先级从高到低的顺序,确定所述访问请求中满足各所述微服务系统的请求阈值的重要访问请求;
向所述微服务系统发送所述重要访问请求。
14.一种微服务访问控制装置,其特征在于,包括:
获取模块,其用于获取预设时间内向各所述微服务系统发送的访问请求的请求成功率;
调整模块,其用于根据各所述微服务系统的请求成功率,按照预设策略调整各所述微服务系统的请求阈值,所述请求阈值为预设时间内允许向所述微服务系统发送访问请求的次数的最大值;
访问控制模块,其用于根据所述请求阈值对应地控制对各所述微服务系统的访问。
15.根据权利要求14所述的装置,其特征在于,所述获取模块还用于获取预设时间内向各微服务系统发送访问请求的第一次数值,以及从所述微服务系统获得表征请求成功的返回信息的第二次数值,并利用所述第二次数值和第一次数值之间的比值,确定各所述微服务系统的所述请求成功率。
16.根据权利要求14所述的装置,其特征在于,所述调整模块还用于在所述微服务系统的所述请求成功率大于或者等于第一阈值时,按照第一预设方式增加所述微服务系统的请求阈值。
17.根据权利要求16所述的装置,其特征在于,所述第一阈值为1。
18.根据权利要求16或17所述的装置,其特征在于,所述调整模块还用于按照第一预设函数,以线性增长的方式增加所述微服务系统的请求阈值,其中所述第一预设函数包括:y=kx+b;
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,k和b为系数。
19.根据权利要求14所述的装置,其特征在于,所述调整模块还用于在所述微服务系统的所述请求成功率大于或者等于第二阈值且小于第三阈值时,保持所述请求阈值不变,其中,所述第二阈值小于所述第三阈值。
20.根据权利要求14所述的装置,其特征在于,所述调整模块还用于在所述微服务系统的所述请求成功率小于第四阈值且大于零时,按照第二预设方式减小所述请求阈值。
21.根据权利要求20所述的装置,其特征在于,所述调整模块还用于在按照第二预设方式减小所述请求阈值时,按照第二预设函数,以线性递减的方式减小所述微服务系统的请求阈值,其中所述第二预设函数包括:
y=hx-t;
其中,y表示调整后的请求阈值,x表示调整前的请求阈值,h和t为系数。
22.根据权利要求14所述的装置,其特征在于,所述调整模块还用于当所述微服务系统在预设时间内的所述请求成功率为零时,按照第三预设方式减小所述微服务系统的请求阈值。
23.根据权利要求22所述的装置,其特征在于,所述调整模块还用于在按照第三预设方式减小所述请求阈值时,按照第三预设函数,以指数递减的方式减小所述微服务系统的请求阈值。
24.根据权利要求20-23中任意一项所述的装置,其特征在于,所述调整模块还用于在减小所述请求阈值时,判断调整后请求阈值是否小于或者等于第五阈值;如果调整后的请求阈值小于或者等于第五阈值,则终止请求阈值的减小操作,所述第五阈值小于所述第四阈值。
25.根据权利要求14所述的装置,其特征在于,所述访问控制模块还用于在向微服务系统发送的访问请求的次数达到与其对应的请求阈值,则预设时间内不再向该微服务系统发送访问请求。
26.根据权利要求14所述的装置,其特征在于,所述访问控制模块还用于获取待向微服务系统发送的访问请求的优先级,并按照所述优先级从高到低的顺序,确定所述访问请求中满足各所述微服务系统的请求阈值的重要访问请求,并向所述微服务系统发送所述重要访问请求。
27.一种微服务访问控制装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1-13中任意一项所述的方法。
28.一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行根据权利要求1-13中任意一项所述的方法。
CN201811100703.6A 2018-09-20 2018-09-20 微服务访问控制方法、装置及存储介质 Active CN109408207B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811100703.6A CN109408207B (zh) 2018-09-20 2018-09-20 微服务访问控制方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811100703.6A CN109408207B (zh) 2018-09-20 2018-09-20 微服务访问控制方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN109408207A true CN109408207A (zh) 2019-03-01
CN109408207B CN109408207B (zh) 2021-10-22

Family

ID=65465899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811100703.6A Active CN109408207B (zh) 2018-09-20 2018-09-20 微服务访问控制方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN109408207B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992431A (zh) * 2019-03-05 2019-07-09 福建天泉教育科技有限公司 一种实现重试的方法及终端
CN110417777A (zh) * 2019-07-29 2019-11-05 中国银联股份有限公司 一种优化的微服务间通信的方法及装置
CN110443512A (zh) * 2019-08-09 2019-11-12 北京思维造物信息科技股份有限公司 一种规则引擎及规则引擎实现方法
CN110809062A (zh) * 2019-11-14 2020-02-18 苏州思必驰信息科技有限公司 公有云语音识别资源调用控制方法和装置
CN111309442A (zh) * 2020-02-19 2020-06-19 望海康信(北京)科技股份公司 微服务容器数量的调整方法、装置、系统、介质及设备
CN111541620A (zh) * 2020-06-18 2020-08-14 南方电网科学研究院有限责任公司 一种微服务运行管控方法和装置
CN112241822A (zh) * 2019-07-18 2021-01-19 上海交通大学 数据中心面向微服务的电力资源分配的方法和系统
CN112306811A (zh) * 2020-11-09 2021-02-02 重庆易宠科技有限公司 一种php微服务控制方法、系统、终端及介质
CN113434337A (zh) * 2021-06-24 2021-09-24 华云数据控股集团有限公司 重试策略的控制方法、装置及电子设备
CN113824590A (zh) * 2021-09-18 2021-12-21 武汉联影医疗科技有限公司 微服务网络的问题预测方法、计算机设备和存储介质
WO2022009015A1 (en) * 2020-07-09 2022-01-13 International Business Machines Corporation Identification of invalid requests
CN114417081A (zh) * 2021-12-27 2022-04-29 深圳萨摩耶数字科技有限公司 一种处理方法、装置、系统及存储介质
CN114915663A (zh) * 2022-03-21 2022-08-16 北京沃东天骏信息技术有限公司 请求响应方法、装置、系统、电子设备和介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436835A (zh) * 2017-06-21 2017-12-05 北京小度信息科技有限公司 访问控制方法和装置
US20170364345A1 (en) * 2016-06-15 2017-12-21 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
CN107770243A (zh) * 2017-09-06 2018-03-06 北京奥鹏远程教育中心有限公司 自扩展、自适应微服务平台及其应用方法
CN107948250A (zh) * 2017-11-02 2018-04-20 努比亚技术有限公司 一种用户访问量的调整方法和设备
CN107995127A (zh) * 2017-12-13 2018-05-04 深圳乐信软件技术有限公司 一种过载保护方法及装置
CN108062256A (zh) * 2017-11-10 2018-05-22 中国民生银行股份有限公司 一种应用程序的访问方法和装置
CN108121608A (zh) * 2016-11-29 2018-06-05 杭州华为数字技术有限公司 一种队列调度方法以及节点设备
CN108200146A (zh) * 2017-12-29 2018-06-22 华南理工大学 一种轻量级的微服务架构实现方法
WO2018112539A1 (en) * 2016-12-23 2018-06-28 Telstra Corporation Limited Content streaming via a communications network
CN108345594A (zh) * 2017-01-22 2018-07-31 中国移动通信集团安徽有限公司 数据库访问请求的控制方法、控制装置及控制系统
CN108427581A (zh) * 2018-02-07 2018-08-21 平安普惠企业管理有限公司 系统微服务化方法及终端设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170364345A1 (en) * 2016-06-15 2017-12-21 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
CN108121608A (zh) * 2016-11-29 2018-06-05 杭州华为数字技术有限公司 一种队列调度方法以及节点设备
WO2018112539A1 (en) * 2016-12-23 2018-06-28 Telstra Corporation Limited Content streaming via a communications network
CN108345594A (zh) * 2017-01-22 2018-07-31 中国移动通信集团安徽有限公司 数据库访问请求的控制方法、控制装置及控制系统
CN107436835A (zh) * 2017-06-21 2017-12-05 北京小度信息科技有限公司 访问控制方法和装置
CN107770243A (zh) * 2017-09-06 2018-03-06 北京奥鹏远程教育中心有限公司 自扩展、自适应微服务平台及其应用方法
CN107948250A (zh) * 2017-11-02 2018-04-20 努比亚技术有限公司 一种用户访问量的调整方法和设备
CN108062256A (zh) * 2017-11-10 2018-05-22 中国民生银行股份有限公司 一种应用程序的访问方法和装置
CN107995127A (zh) * 2017-12-13 2018-05-04 深圳乐信软件技术有限公司 一种过载保护方法及装置
CN108200146A (zh) * 2017-12-29 2018-06-22 华南理工大学 一种轻量级的微服务架构实现方法
CN108427581A (zh) * 2018-02-07 2018-08-21 平安普惠企业管理有限公司 系统微服务化方法及终端设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
MARIO VILLAMIZAR等: "Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud", 《2015 10TH COMPUTING COLOMBIAN CONFERENCE (10CCC)》 *
简牧: "微服务可靠性设计", 《HTTPS://BLOG.CSDN.NET/QQ_35799003/ARTICLE/DETAILS/70225780》 *
袁骞骞: "负载均衡和熔断器", 《HTTPS://WWW.CNBLOGS.COM/MYFRANK/P/7511233.HTML》 *
龙新征等: "基于微服务框架的信息服务平台", 《东南大学学报(自然科学版)》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992431A (zh) * 2019-03-05 2019-07-09 福建天泉教育科技有限公司 一种实现重试的方法及终端
CN112241822B (zh) * 2019-07-18 2022-07-12 上海交通大学 数据中心面向微服务的电力资源分配的方法和系统
CN112241822A (zh) * 2019-07-18 2021-01-19 上海交通大学 数据中心面向微服务的电力资源分配的方法和系统
CN110417777A (zh) * 2019-07-29 2019-11-05 中国银联股份有限公司 一种优化的微服务间通信的方法及装置
US11683316B2 (en) 2019-07-29 2023-06-20 China Unionpay Co., Ltd. Method and device for communication between microservices
CN110443512A (zh) * 2019-08-09 2019-11-12 北京思维造物信息科技股份有限公司 一种规则引擎及规则引擎实现方法
CN110809062A (zh) * 2019-11-14 2020-02-18 苏州思必驰信息科技有限公司 公有云语音识别资源调用控制方法和装置
CN111309442A (zh) * 2020-02-19 2020-06-19 望海康信(北京)科技股份公司 微服务容器数量的调整方法、装置、系统、介质及设备
CN111309442B (zh) * 2020-02-19 2023-07-28 望海康信(北京)科技股份公司 微服务容器数量的调整方法、装置、系统、介质及设备
CN111541620A (zh) * 2020-06-18 2020-08-14 南方电网科学研究院有限责任公司 一种微服务运行管控方法和装置
WO2022009015A1 (en) * 2020-07-09 2022-01-13 International Business Machines Corporation Identification of invalid requests
US11443037B2 (en) 2020-07-09 2022-09-13 International Business Machines Corporation Identification of invalid requests
CN112306811A (zh) * 2020-11-09 2021-02-02 重庆易宠科技有限公司 一种php微服务控制方法、系统、终端及介质
CN113434337A (zh) * 2021-06-24 2021-09-24 华云数据控股集团有限公司 重试策略的控制方法、装置及电子设备
CN113434337B (zh) * 2021-06-24 2024-03-19 华云数据控股集团有限公司 重试策略的控制方法、装置及电子设备
CN113824590A (zh) * 2021-09-18 2021-12-21 武汉联影医疗科技有限公司 微服务网络的问题预测方法、计算机设备和存储介质
CN113824590B (zh) * 2021-09-18 2024-04-26 武汉联影医疗科技有限公司 微服务网络的问题预测方法、计算机设备和存储介质
CN114417081A (zh) * 2021-12-27 2022-04-29 深圳萨摩耶数字科技有限公司 一种处理方法、装置、系统及存储介质
CN114417081B (zh) * 2021-12-27 2024-05-24 深圳萨摩耶数字科技有限公司 一种处理方法、装置、系统及存储介质
CN114915663A (zh) * 2022-03-21 2022-08-16 北京沃东天骏信息技术有限公司 请求响应方法、装置、系统、电子设备和介质

Also Published As

Publication number Publication date
CN109408207B (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
CN109408207B (zh) 微服务访问控制方法、装置及存储介质
US9860844B2 (en) Method and apparatus of temperature control
CN107040591B (zh) 一种对客户端进行控制的方法及装置
CN107743096B (zh) 网络优化方法、装置、终端以及存储介质
CN110083266B (zh) 信息处理方法、装置及存储介质
CN108829475B (zh) Ui绘制方法、装置及存储介质
CN113703937A (zh) 动画切换方法及装置、存储介质
CN108446226B (zh) 应用异常的处理方法
CN105227426B (zh) 一种应用界面切换方法、装置及终端设备
CN112256432A (zh) 服务过载的处理方法、装置、电子设备及存储介质
CN111506234B (zh) 触摸屏边缘防误触方法、装置、存储介质及电子设备
US20220329580A1 (en) Methods for establishing social relationship and terminal
CN107483605B (zh) 文件下载方法及装置、存储介质
CN107203315B (zh) 点击事件的处理方法、装置及终端
CN110677470B (zh) 服务信息推送方法、装置及计算机可读存储介质
CN111722919B (zh) 运行后台应用程序的方法、装置、存储介质及电子设备
CN113238887A (zh) 数据处理方法、装置及存储介质
CN113407316A (zh) 服务调度方法、装置、电子设备及存储介质
CN111314232A (zh) 应用加速方法、装置及存储介质
CN112987954B (zh) 触控上报方法、装置、电子设备及存储介质
CN110637443B (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
CN112449409B (zh) 移动终端的功率控制方法和移动终端的功率控制装置
CN107885553B (zh) 动画加载方法、装置及电子设备
CN116028130A (zh) 终端控制方法、装置及计算机可读存储介质
CN115129281A (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
GR01 Patent grant
GR01 Patent grant