CN114024733B - 一种服务的访问控制方法、装置、存储介质及控制器 - Google Patents
一种服务的访问控制方法、装置、存储介质及控制器 Download PDFInfo
- Publication number
- CN114024733B CN114024733B CN202111283953.XA CN202111283953A CN114024733B CN 114024733 B CN114024733 B CN 114024733B CN 202111283953 A CN202111283953 A CN 202111283953A CN 114024733 B CN114024733 B CN 114024733B
- Authority
- CN
- China
- Prior art keywords
- service
- identifier
- state
- access address
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000001419 dependent effect Effects 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 16
- 230000008569 process Effects 0.000 abstract description 11
- 230000002159 abnormal effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种服务的访问控制方法、装置、存储介质及控制器,方法包括:根据拦截器拦截到的访问请求匹配出待访问服务的目标访问地址;查询目标访问地址对应的至少一个依赖服务的服务标识;从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的;当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。本申请通过配置服务状态数组,从而实现在客户端对请求的服务进行拦截或放行,减轻了服务端处理访问请求的压力,减少了服务访问过程中消耗的时间和资源,降低了系统出现宕机的风险。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种服务的访问控制方法、装置、存储介质及控制器。
背景技术
随着互联网技术的不断发展,软件项目变得越来越复杂,功能变得越来越强大,因此基于微服务架构的应用随之普及。在微服务产品线中,每一个服务专心于自己的业务逻辑,并对外提供接口;随着业务的扩展,服务的数量就会越来越多,逻辑会更加复杂,一个服务的某个逻辑需要依赖多个服务才能完成。这种情况下,如果某个服务出现宕机,很可能会产生雪崩效应,最后导致整个服务端不可访问。因此对于微服务中出现的这种问题的处理,保证服务的正常运行,将显得非常重要。
在现有技术中,通常采用熔断机制在后台服务端控制对依赖的访问,例如图1所示,如果调用的服务不可用时,则不再调用,直接返回错误,或者降级处理。主要思想是设置阈值,比如最大并发数,错误率百分比,熔断尝试恢复时间等。能通过这些阈值来转换熔断器的状态,熔断器的状态可分为关闭状态、打开状态以及半开状态。关闭状态下允许调用服务;打开状态下不允许调用服务,并直接返回错误,或者调用fallback;半开状态下根据熔断尝试恢复时间来开启,允许调用依赖,如果调用成功则关闭,失败则继续打开。由于现有技术中采用熔断机制在后台服务端控制对依赖的访问,控制过程中需要消耗大量的时间去等待依赖的服务响应,同时增加了服务端资源的消耗。
发明内容
本申请实施例提供了一种服务的访问控制方法、装置、存储介质及控制器。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
第一方面,本申请实施例提供了一种服务的访问控制方法,应用于网关设备,方法包括:
根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址;
查询目标访问地址对应的至少一个依赖服务的服务标识;
从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的;
当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。
可选的,根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址,包括:
当通过拦截器拦截到访问请求时,解析访问请求得到解析数据;
根据预设访问地址标识符从解析数据中匹配出初始访问地址;
从缓存中加载预设访问地址表;
当预设访问地址表中存在与初始访问地址相同的访问地址时,将相同的访问地址确定为待访问服务的目标访问地址。
可选的,当预设访问地址表中存在与初始访问地址相同的访问地址时,将相同的访问地址确定为待访问服务的目标访问地址,包括:
当访问地址表中不存在与初始访问地址相同的访问地址时,生成并返回访问失败信息。
可选的,按照以下步骤生成预设访问地址表,包括:
确定当前系统中各功能节点的每个访问地址;
获取每个访问地址对应的服务标识;其中,服务标识为待访问服务的服务标识或待访问服务标识和与其依赖的至少一个依赖服务的服务标识;
将每个访问地址和与其对应的服务标识以键值对的形式进行保存,生成预设访问地址表。
可选的,查询目标访问地址对应的至少一个依赖服务的服务标识,包括:
从预设访问地址表中获取目标访问地址的目标键值对;
从目标键值对中查询存在的至少一个依赖服务的服务标识。
可选的,按照以下步骤生成预先设置的服务状态数组,包括:
获取当前系统中服务的数量;
根据服务的数量创建服务状态数组;
将当前系统中每个服务的标识逐一设置在服务状态数组中,并将服务状态数组中的每个服务的状态标识符的值置为第一状态标识符;
启动当前系统中服务后得到响应结果,并基于所述响应结果将所述服务状态数组中的每个服务的状态标识符的值置为第二状态标识符;
构建定时任务,并基于定时任务实时调整服务状态数组中的每个服务的状态标识符的值;
生成预先设置的服务状态数组。
可选的,当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务,包括:
当所述待访问服务及其至少一个依赖服务的所述服务标识对应的状态标识符为正常状态标识符时,将所述访问请求发送至所述待访问服务进行访问。
第二方面,本申请实施例提供了一种服务的访问控制装置,应用于网关设备,装置包括:
访问地址匹配模块,用于根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址;
服务标识查询模块,用于查询目标访问地址对应的至少一个依赖服务的服务标识;
状态标识符查询模块,用于从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的;
服务访问控制模块,用于当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。
第三方面,本申请实施例提供一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种控制器,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
本申请实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,服务的访问控制装置首先根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址,然后查询目标访问地址对应的至少一个依赖服务的服务标识,其次从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的,最后当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。由于本申请通过在客户端配置服务状态数组,从而实现在客户端对请求的服务进行处理,如果服务状态正常,则放行,如果服务状态存在异常则直接拦截请求,从而减轻了服务端处理访问请求的压力,同时减少了服务访问过程中消耗的时间和资源,进而降低了系统出现宕机的风险。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本申请实施例提供的一种现有的访问控制方法的流程示意图;
图2是本申请实施例提供的一种服务的访问控制方法的流程示意图;
图3是本申请实施例提供的一种访问判断过程示意图;
图4是本申请实施例提供的一种服务的访问控制过程的过程示意框图;
图5是本申请实施例提供的一种服务的访问控制装置的结构示意图;
图6是本申请实施例提供的一种控制器的结构示意图;
图7是本申请实施例提供的一种存储介质示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请提供了一种服务的访问控制方法、装置、存储介质及控制器,以解决上述相关技术问题中存在的问题。本申请提供的技术方案中,由于本申请通过在客户端配置服务状态数组,从而实现在客户端对请求的服务进行处理,如果服务状态正常,则放行,如果服务状态存在异常则直接拦截请求,从而减轻了服务端处理访问请求的压力,同时减少了服务访问过程中消耗的时间和资源,进而降低了系统出现宕机的风险,下面采用示例性的实施例进行详细说明。
下面将结合附图2-附图4,对本申请实施例提供的服务的访问控制方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的服务的访问控制装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
请参见图2,为本申请实施例提供了一种服务的访问控制方法的流程示意图,应用于网关设备。如图2所示,本申请实施例的方法可以包括以下步骤:
S101,根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址;
其中,网关设备可以为API网关设备,是两个系统中间通信的中介。拦截器是用于拦截访问请求的功能模块,拦截器部署在API网关中。
在一种可能的实现方式中,匹配待访问服务的目标访问地址时,首先当通过拦截器拦截到访问请求时,解析访问请求得到解析数据,然后根据预设访问地址标识符从解析数据中匹配出初始访问地址,再从缓存中加载预设访问地址表,最后当预设访问地址表中存在与初始访问地址相同的访问地址时,将相同的访问地址确定为待访问服务的目标访问地址。
具体的,预设访问地址标识符可以为url,也可是其他的标识符。缓存可以是Redis缓存,也可以是其它缓存组件。
进一步地,当访问地址表中不存在与初始访问地址相同的访问地址时,生成并返回访问失败信息。
进一步地,在生成预设访问地址表时,首先确定当前系统中各功能节点的每个访问地址,然后获取每个访问地址对应的服务标识;其中,服务标识为待访问服务的服务标识或待访问服务标识和与其依赖的至少一个依赖服务的服务标识,最后将每个访问地址和与其对应的服务标识以键值对的形式进行保存,生成预设访问地址表,例如表1所示。
表1
Key | value |
URL1 | A服务标识、C服务标识、E服务标识 |
URL2 | B服务标识、C服务标识、E服务标识 |
具体的,键值对中的键(key)就是存的值的编号,值(value)就是要存放的数据。在本实施中,对多个服务之间有依赖关系的,则在缓存中配置好对应的关系,关系为key,value形式,key为访问的url,value为相关依赖的服务,例如服务A的URL1对应的服务有A服务、C服务、E服务,即key为URL1,value为A服务标识、C服务标识、E服务标识。
S102,查询目标访问地址对应的至少一个依赖服务的服务标识;
在一种可能的实现方式中,首先从预设访问地址表中获取目标访问地址的目标键值对,然后从目标键值对中查询存在的至少一个依赖服务的服务标识。
例如,从预设访问地址表中获取目标访问地址的目标键值对为:<URL1,A服务标识、C服务标识、E服务标识>,可知key为URL1,value为A服务标识、C服务标识、E服务标识,此时查询到的服务标识为A服务标识、C服务标识、E服务标识。
S103,从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的;
在本申请实施例中,按照以下步骤生成预先设置的服务状态数组,首先获取当前系统中服务的数量,再根据服务的数量创建服务状态数组,然后将当前系统中每个服务的标识逐一设置在服务状态数组中,并将服务状态数组中的每个服务的状态标识符的值置为第一状态标识符,其次启动当前系统中服务后得到响应结果,并基于所述响应结果将所述服务状态数组中的每个服务的状态标识符的值置为第二状态标识符,再构建定时任务,并基于定时任务实时调整服务状态数组中的每个服务的状态标识符的值,最后即可生成预先设置的服务状态数组。
在本申请实施例中,第二状态标识符可以为服务状态正常的标识符,记为1,第一状态标识符可以为服务状态不正常的标识符,记为0。
进一步地,在基于定时任务实时调整服务状态数组中的每个服务的状态标识符的值时,根据定时任务的心跳监测机制在预设周期内逐一对每个服务发送预设访问请求后得到返回结果,如果返回结果显示每个服务都可以正常访问,则将每个服务的服务状态设置为1,否则设置为1。
需要说明的是,心跳机制是通过定时访问服务状态,确认服务是否宕机。
具体的,根据服务的数量,设置数组的结构,假设有8个服务,按顺序设置服务的位置,然后设置长度为8的bit数组,并将每一个位置都置为0。然后将8个服务全部启动后,配置定时任务,通过心跳监测获取服务的状态,如果服务正常的话,则将指定位置中的服务状态设置为1,如果服务不正常的话,则将不正常服务的指定位置中的服务状态设置为0。
进一步地,缓存、服务状态数组、定时任务以及预设访问地址表设置于API网关中。
S104,当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。
在本申请实施例中,当所述待访问服务及其至少一个依赖服务的所述服务标识对应的状态标识符为正常状态标识符时,将所述访问请求发送至所述待访问服务进行访问。
在一种可能的实现方式中,首先将各服务的状态标识符进行与运算,生成计算结果,并当计算结果为真时,将访问请求发送至待访问服务进行访问;或者当计算结果为假时,生成并返回访问失败信息。
例如图3所示,图3是本申请实施例提供的一种访问控制流程图,当用户终端访问服务端的时候,API网关通过拦截器拦截访问请求,然后去和缓存中配置的预设访问地址表中的url进行对比并匹配。如果匹配成功,获取相关依赖的服务的状态并进行与运算。如果运算结果为1,则继续访问服务端的接口,如果运算结果为0,则直接返回将错误信息返回前端。
其中,与运算是计算机中一种基本的逻辑运算方式,符号表示为&,只有在多个结果全部为真时,最终的结果为真,只要存在一个结果为假时,最终的运算结果均为假。
例如,服务A、B、C的状态均为正常时,则与运算后的结果为1&1&1=1,即为真。如果服务A的状态正常、B的状态正常、C的状态不正常,则与运算后的结果为1&1&0=0,即为假。
例如图4所示,图4是本申请提供的一种服务的访问控制过程的过程示意框图,心跳监测机制实时监测每个服务的运行状态,根据运行状态调整每个服务的状态标识符。用户端发出服务访问请求后,访问请求随之到达API网关,API网关采用拦截器拦截该请求进行分析判断,如果判断结果为真时,则允许访问,否则生成并返回访问错误信息。
需要说明的是,本申请通过缓存、拦截器、心跳机制、网关来实现对于服务之间有依赖关系的服务进行管理,从而可以提前预防雪崩效应的发生,减轻后端服务器的压力,减少后端服务宕机的可能性,防止因为一个接口的调用,引起其他服务不能访问。
在本申请实施例中,服务的访问控制装置首先根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址,然后查询目标访问地址对应的至少一个依赖服务的服务标识,其次从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的,最后当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。由于本申请通过在客户端配置服务状态数组,从而实现在客户端对请求的服务进行处理,如果服务状态正常,则放行,如果服务状态存在异常则直接拦截请求,从而减轻了服务端处理访问请求的压力,同时减少了服务访问过程中消耗的时间和资源,进而降低了系统出现宕机的风险。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参见图5,其示出了本发明一个示例性实施例提供的服务的访问控制装置的结构示意图,应用于网关设备。该服务的访问控制装置可以通过软件、硬件或者两者的结合实现成为控制器的全部或一部分。该装置1包括访问地址匹配模块10、服务标识查询模块20、状态标识符查询模块30、服务访问控制模块40。
访问地址匹配模块10,用于根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址;
服务标识查询模块20,用于查询目标访问地址对应的至少一个依赖服务的服务标识;
状态标识符查询模块30,用于从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的;
服务访问控制模块40,用于当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。
需要说明的是,上述实施例提供的服务的访问控制装置在执行服务的访问控制方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务的访问控制装置与服务的访问控制方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,服务的访问控制装置首先根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址,然后查询目标访问地址对应的至少一个依赖服务的服务标识,其次从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的,最后当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。由于本申请通过在客户端配置服务状态数组,从而实现在客户端对请求的服务进行处理,如果服务状态正常,则放行,如果服务状态存在异常则直接拦截请求,从而减轻了服务端处理访问请求的压力,同时减少了服务访问过程中消耗的时间和资源,进而降低了系统出现宕机的风险。
本发明还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的服务的访问控制方法。
本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例的服务的访问控制方法。
请参见图6,为本申请实施例提供了一种控制器的结构示意图。如图6所示,该控制器包括通过系统总线连接的处理器、介质、存储器和网络接口。其中,该控制器的介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种服务的访问控制方法。该控制器的处理器用于提供计算和控制能力,支撑整个设备的运行。该控制器的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种服务的访问控制方法。该控制器的网络接口用于与终端连接通信。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,介质为一种可读的存储介质。该控制器中的处理器执行计算机程序时实现以下步骤:
根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址;
查询目标访问地址对应的至少一个依赖服务的服务标识;
从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的;
当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。
在一个实施例中,处理器执行根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址时,具体执行以下操作:
当通过拦截器拦截到访问请求时,解析访问请求得到解析数据;
根据预设访问地址标识符从解析数据中匹配出初始访问地址;
从缓存中加载预设访问地址表;
当预设访问地址表中存在与初始访问地址相同的访问地址时,将相同的访问地址确定为待访问服务的目标访问地址。
在一个实施例中,处理器执行当预设访问地址表中存在与初始访问地址相同的访问地址时,将相同的访问地址确定为待访问服务的目标访问地址时,具体执行以下操作:
当访问地址表中不存在与初始访问地址相同的访问地址时,生成并返回访问失败信息。
在一个实施例中,处理器执行以下步骤生成预设访问地址表,具体为:
确定当前系统中各功能节点的每个访问地址;
获取每个访问地址对应的服务标识;其中,服务标识为待访问服务的服务标识或待访问服务标识和与其依赖的至少一个依赖服务的服务标识;
将每个访问地址和与其对应的服务标识以键值对的形式进行保存,生成预设访问地址表。
在一个实施例中,处理器执行查询目标访问地址对应的至少一个依赖服务的服务标识时,具体执行以下操作:
从预设访问地址表中获取目标访问地址的目标键值对;
从目标键值对中查询存在的至少一个依赖服务的服务标识。
在一个实施例中,处理器执行以下步骤生成预先设置的服务状态数组,具体为:
获取当前系统中服务的数量;
根据服务的数量创建服务状态数组;
将当前系统中每个服务的标识逐一设置在服务状态数组中,并将服务状态数组中的每个服务的状态标识符的值置为第一状态标识符;
启动当前系统中服务后得到响应结果,并基于所述响应结果将所述服务状态数组中的每个服务的状态标识符的值置为第二状态标识符;
构建定时任务,并基于定时任务实时调整服务状态数组中的每个服务的状态标识符的值;
生成预先设置的服务状态数组。
在一个实施例中,处理器执行当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务时,具体执行以下操作:
当所述待访问服务及其至少一个依赖服务的所述服务标识对应的状态标识符为正常状态标识符时,将所述访问请求发送至所述待访问服务进行访问。
在本申请实施例中,服务的访问控制装置首先根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址,然后查询目标访问地址对应的至少一个依赖服务的服务标识,其次从预先设置的服务状态数组中查询至少一个依赖服务的服务标识对应的状态标识符;其中,预先设置的服务状态数组中各服务的状态标识符是根据来自各服务端反馈的响应结果动态调整的,最后当任一依赖服务的服务标识对应的状态标识符为故障状态标识符时,拒绝访问请求发往待访问服务。由于本申请通过在客户端配置服务状态数组,从而实现在客户端对请求的服务进行处理,如果服务状态正常,则放行,如果服务状态存在异常则直接拦截请求,从而减轻了服务端处理访问请求的压力,同时减少了服务访问过程中消耗的时间和资源,进而降低了系统出现宕机的风险。
本申请实施方式还提供一种与前述实施方式所提供的服务的访问控制方法对应的计算机可读存储介质,请参考图7,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),计算机程序在被处理器运行时,会执行前述任意实施方式所提供的服务的访问控制方法。
需要说明的是,计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的服务的访问控制方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,服务的访问控制的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (9)
1.一种服务的访问控制方法,其特征在于,应用于网关设备,所述方法包括:
根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址;
查询所述目标访问地址对应的至少一个依赖服务的服务标识;
从预先设置的服务状态数组中查询至少一个依赖服务的所述服务标识对应的状态标识符;其中,所述预先设置的服务状态数组中各服务的状态标识符是根据来自所述各服务端反馈的响应结果动态调整的;
当任一依赖服务的所述服务标识对应的状态标识符为故障状态标识符时,拒绝所述访问请求发往所述待访问服务;
所述方法按照以下步骤生成预先设置的服务状态数组:
获取当前系统中服务的数量;
根据所述服务的数量创建服务状态数组;
将所述当前系统中每个服务的标识逐一设置在所述服务状态数组中,并将所述服务状态数组中的每个服务的状态标识符的值置为第一状态标识符;
启动当前系统中服务后得到响应结果,并基于所述响应结果将所述服务状态数组中的每个服务的状态标识符的值置为第二状态标识符;
构建定时任务,并基于所述定时任务实时调整所述服务状态数组中的每个服务的状态标识符的值。
2.根据权利要求1所述的方法,其特征在于,所述根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址,包括:
当通过拦截器拦截到访问请求时,解析所述访问请求得到解析数据;
根据预设访问地址标识符从所述解析数据中匹配出初始访问地址;
从缓存中加载预设访问地址表;
当所述预设访问地址表中存在与所述初始访问地址相同的访问地址时,将相同的所述访问地址确定为待访问服务的目标访问地址。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述预设访问地址表中不存在与所述初始访问地址相同的访问地址时,生成并返回访问失败信息。
4.根据权利要求2所述的方法,其特征在于,按照以下步骤生成预设访问地址表,包括:
确定当前系统中各功能节点的每个访问地址;
获取所述每个访问地址对应的服务标识;其中,所述服务标识为待访问服务的服务标识或待访问服务标识和与其依赖的至少一个依赖服务的服务标识;
将所述每个访问地址和与其对应的所述服务标识以键值对的形式进行保存,生成预设访问地址表。
5.根据权利要求4所述的方法,其特征在于,所述查询所述目标访问地址对应的至少一个依赖服务的服务标识,包括:
从所述预设访问地址表中获取所述目标访问地址的目标键值对;
从所述目标键值对中查询存在的至少一个依赖服务的服务标识。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述待访问服务及其至少一个依赖服务的所述服务标识对应的状态标识符为正常状态标识符时,将所述访问请求发送至所述待访问服务进行访问。
7.一种服务的访问控制装置,其特征在于,应用于网关设备,所述装置包括:
访问地址匹配模块,用于根据拦截器拦截到的访问请求从缓存中匹配出待访问服务的目标访问地址;
服务标识查询模块,用于查询所述目标访问地址对应的至少一个依赖服务的服务标识;
状态标识符查询模块,用于从预先设置的服务状态数组中查询至少一个依赖服务的所述服务标识对应的状态标识符;其中,所述预先设置的服务状态数组中各服务的状态标识符是根据来自所述各服务端反馈的响应结果动态调整的;
服务访问控制模块,用于当任一依赖服务的所述服务标识对应的状态标识符为故障状态标识符时,拒绝所述访问请求发往所述待访问服务;
所述装置还包括:
生成模块:用于获取当前系统中服务的数量;根据所述服务的数量创建服务状态数组;将所述当前系统中每个服务的标识逐一设置在所述服务状态数组中,并将所述服务状态数组中的每个服务的状态标识符的值置为第一状态标识符;启动当前系统中服务后得到响应结果,并基于所述响应结果将所述服务状态数组中的每个服务的状态标识符的值置为第二状态标识符;以及构建定时任务,并基于所述定时任务实时调整所述服务状态数组中的每个服务的状态标识符的值。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1-6任意一项的方法步骤。
9.一种控制器,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-6任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111283953.XA CN114024733B (zh) | 2021-11-01 | 2021-11-01 | 一种服务的访问控制方法、装置、存储介质及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111283953.XA CN114024733B (zh) | 2021-11-01 | 2021-11-01 | 一种服务的访问控制方法、装置、存储介质及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114024733A CN114024733A (zh) | 2022-02-08 |
CN114024733B true CN114024733B (zh) | 2024-01-26 |
Family
ID=80059312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111283953.XA Active CN114024733B (zh) | 2021-11-01 | 2021-11-01 | 一种服务的访问控制方法、装置、存储介质及控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114024733B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115550445B (zh) * | 2022-10-31 | 2023-08-01 | 浪潮云信息技术股份公司 | 一种分布式系统请求响应方法及相关组件 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109302469A (zh) * | 2018-09-26 | 2019-02-01 | 平安科技(深圳)有限公司 | 微服务管理方法、装置、计算机设备以及存储介质 |
CN111290865A (zh) * | 2020-02-10 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种服务调用方法、装置、电子设备和存储介质 |
CN111405019A (zh) * | 2020-03-10 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112655185A (zh) * | 2018-09-17 | 2021-04-13 | 上海诺基亚贝尔股份有限公司 | 软件定义网络中的服务分配的设备、方法和存储介质 |
CN113472831A (zh) * | 2020-03-31 | 2021-10-01 | 北京金山云网络技术有限公司 | 一种服务访问方法、装置、网关设备及存储介质 |
CN113542384A (zh) * | 2021-07-08 | 2021-10-22 | 平安科技(深圳)有限公司 | 访问请求接入控制方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101950636B1 (ko) * | 2017-12-27 | 2019-02-20 | 주식회사 팍스에스앤티 | 단말기, 단말기의 신호 처리 방법 및 주소 통합 관리 시스템 |
-
2021
- 2021-11-01 CN CN202111283953.XA patent/CN114024733B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112655185A (zh) * | 2018-09-17 | 2021-04-13 | 上海诺基亚贝尔股份有限公司 | 软件定义网络中的服务分配的设备、方法和存储介质 |
CN109302469A (zh) * | 2018-09-26 | 2019-02-01 | 平安科技(深圳)有限公司 | 微服务管理方法、装置、计算机设备以及存储介质 |
CN111290865A (zh) * | 2020-02-10 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种服务调用方法、装置、电子设备和存储介质 |
CN111405019A (zh) * | 2020-03-10 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN113472831A (zh) * | 2020-03-31 | 2021-10-01 | 北京金山云网络技术有限公司 | 一种服务访问方法、装置、网关设备及存储介质 |
CN113542384A (zh) * | 2021-07-08 | 2021-10-22 | 平安科技(深圳)有限公司 | 访问请求接入控制方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Yuanlong Cao ; Jianfeng Guan ; Changqiao Xu ; Wei Quan ; Hongke Zhang.Cognitive Adaptive Access-Control System for a Secure Locator/Identifier Separation Context.《2014 IEEE 13th International Conference on Trust, Security and Privacy in Computing and Communications》.2015,全文. * |
一种基于业务的AP转发模式智能切换方法;熊高祥;黄涛;;光通信研究(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114024733A (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110351357B (zh) | 服务器限流方法、装置、计算机设备以及存储介质 | |
USRE45806E1 (en) | System and method for the optimization of database access in data base networks | |
US10771318B1 (en) | High availability on a distributed networking platform | |
CN108881066B (zh) | 一种路由请求的方法、接入服务器以及存储设备 | |
CN110708247B (zh) | 消息路由方法、装置、计算机设备和存储介质 | |
CN107181636B (zh) | 一种负载均衡系统中的健康检查方法及装置 | |
CN110602169A (zh) | 服务调用方法、装置、计算机设备和存储介质 | |
CN112202853B (zh) | 数据同步方法、系统、计算机设备和存储介质 | |
CN110673941A (zh) | 多机房中微服务的迁移方法、电子设备及存储介质 | |
CN114024733B (zh) | 一种服务的访问控制方法、装置、存储介质及控制器 | |
KR102594203B1 (ko) | 비정상 트랜잭션 요청의 발생 위치 제공 방법 및 그 장치 | |
CN111343102A (zh) | 流速控制方法、服务端服务器、客户端服务器和系统 | |
CN113220723A (zh) | 一种流量控制方法、装置、计算机设备及存储介质 | |
US20200374222A1 (en) | Peer-to-Peer Application Layer Distributed Mesh Routing | |
CA3138764A1 (en) | Data processing method, device, computer equipment and storage medium | |
CN113312234B (zh) | 一种健康检测的优化方法及终端 | |
CN112153036B (zh) | 一种基于代理服务器的安全防御方法及系统 | |
CN113220453A (zh) | 区块链系统中发起交易的方法及装置 | |
CN105574020B (zh) | 一种数据库操作方法和装置 | |
CN115604227B (zh) | 通信控制方法及装置、通信系统及计算机可读存储介质 | |
CN117614996A (zh) | 负载均衡器配置方法以及云应用系统 | |
CN114389851B (zh) | 交换机维护服务身份验证方法、系统、终端及存储介质 | |
CN115905271B (zh) | 一种病毒库更新方法、装置及多引擎检测系统 | |
CN113468195B (zh) | 服务器数据缓存更新方法、系统和主数据库服务器 | |
US20230305964A1 (en) | Method and apparatus for verifying integrity in memory-disaggregated environment |
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 |