CN114465895A - 一种基于微服务的请求分发方法、装置、设备及存储介质 - Google Patents
一种基于微服务的请求分发方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114465895A CN114465895A CN202210208933.4A CN202210208933A CN114465895A CN 114465895 A CN114465895 A CN 114465895A CN 202210208933 A CN202210208933 A CN 202210208933A CN 114465895 A CN114465895 A CN 114465895A
- Authority
- CN
- China
- Prior art keywords
- target
- subsystem
- request
- configuration information
- mapping table
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于微服务的请求分发方法、装置、设备及存储介质,包括:若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,接收分布式配置中心发送的目标子系统重启后的目标配置信息;利用目标配置信息更新用于记录目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,得到目标映射表;接收互联网请求,利用目标映射表对互联网请求进行鉴权操作,当鉴权通过则将互联网请求分发至目标子系统。本申请在网关与子系统之间设计分布式配置中心,实时接收子系统上传的配置信息,完成了架构之间配置信息的动态交互,并在接收到互联网请求后在网关内进行统一的权限验证,提高了系统的安全性,减少了数据冗余。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种基于微服务的请求分发方法、装置、设备及存储介质。
背景技术
目前,在独立系统中请求权限验证是通过Shiro(一种安全框架)的管理来实现的,但是多系统之间有独立的菜单权限验证,网关只能对独立系统分别进行验证。同时在微服务架构中,系统菜单访问是通过携带账号、密码和Token(令牌)来进行验证,而这种验证方法存在以下两个问题:一是每次请求都需要携带账号与密码,这造成了系统的不安全性;二是每次请求子系统都需要传输账号与密码,导致请求头数据冗余;并且每个子系统都要做重复的权限验证逻辑,权限验证较分散,不符合系统设计逻辑。
发明内容
有鉴于此,本发明的目的在于提供一种基于微服务的请求分发方法、装置、设备和存储介质,能够对所有的子系统进行验证,提高系统的安全性,并减少数据冗余。其具体方案如下:
第一方面,本申请公开了一种基于微服务的请求分发方法,应用于网关,包括:
若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统;
利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表;
接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,当鉴权通过则将所述互联网请求分发至所述目标子系统。
可选的,所述若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息,所述目标子系统为基于微服务构建的系统,包括:
若当前分布式配置中心中利用预设消息摘要算法对目标子系统的目标配置信息与相应的历史配置信息分别进行摘要得到的第一摘要值与第二摘要值不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统。
可选的,所述利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表,包括:
基于所述目标配置信息生成实时映射表;
利用所述实时映射表对存储在网关的预设存储区域中的用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表进行更新,以得到目标映射表。
可选的,所述接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,包括:
接收互联网请求,以确定所述互联网请求对应的目标子系统接口;
查询所述互联网请求对应的权限信息;
获取所述目标映射表中与所述目标子系统接口对应的所述权限码,以得到目标权限码;
判断所述互联网请求对应的所述权限信息是否包含所述目标权限码;
若所述互联网请求中的所述权限信息中包含所述目标权限码,则判定鉴权通过。
可选的,所述判断所述互联网请求中的所述权限信息是否包含所述目标权限码,包括:
当所述互联网请求中的所述权限信息不包含所述目标权限码时,抛出权限异常信息,判定鉴权不通过并结束。
可选的,所述利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表之后,还包括:
基于所述目标映射表中的全部子系统接口实时生成菜单,并将所述菜单返回至互联网前端界面,以便用户在所述互联网前端界面点击所述菜单中的所述子系统接口后生成对应的所述互联网请求。
可选的,所述当鉴权通过则将所述互联网请求分发至所述目标子系统之后,还包括:
通过预设网关监控组件监控所述网关分发所述互联网请求,以得到后端返回的分发状态码;
基于所述分发状态码判断所述互联网请求是否转发成功。
第二方面,本申请公开了一种请求分发装置,应用于网关,包括:
信息接收模块,用于若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统;
映射表更新模块,用于利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表;
鉴权模块,用于接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作;
请求分发模块,用于当鉴权通过则将所述互联网请求分发至所述目标子系统。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如前述公开的基于微服务的请求分发方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如前述公开的基于微服务的请求分发方法。
可见,本申请提供了一种基于微服务的请求分发方法,包括:若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统;利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表;接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,当鉴权通过则将所述互联网请求分发至所述目标子系统。由此可见,本申请通过在网关与子系统之间设置分布式配置中心来判断子系统的配置信息是否改变,当子系统的配置信息改变时可以更新网关中对应的信息,然后在接收到互联网请求时使用更新后到配置信息进行相应的鉴权与分发操作,能对所有的子系统进行验证,提高了系统的安全性,并减少了数据冗余。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种基于微服务的请求分发方法流程图;
图2为本申请公开的一种具体的基于微服务的请求分发方法架构图;
图3为本申请公开的一种具体的数据上报流程图;
图4为本申请公开的一种具体的基于微服务的请求分发方法流程图;
图5为本申请公开的一种具体的基于微服务的请求分发方法流程图;
图6为本申请公开的一种具体的信息获取流程图;
图7为本申请公开的一种具体的基于微服务的请求分发方法流程图;
图8为本申请公开的一种实际应用架构图;
图9为本申请公开的一种权限信息示意图;
图10为本申请提供的请求分发装置结构示意图;
图11为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在独立系统中请求权限验证是通过Shiro的管理来实现的,但是多系统之间有独立的菜单权限验证,网关只能对独立系统分别进行验证。同时在微服务架构中,系统菜单访问是通过携带账号、密码和Token来进行验证,而这种验证方法存在以下两个问题:一是每次请求都需要携带账号与密码,这造成了系统的不安全性;二是每次请求子系统都需要传输账号与密码,导致请求头数据冗余;并且每个子系统都要做重复的权限验证逻辑,权限验证较分散,不符合系统设计逻辑。为此,本申请提供了一种基于微服务的请求分发方法,能够对所有的子系统进行验证,提高了系统的安全性,并减少了数据冗余。
本发明实施例公开了一种基于微服务的请求分发方法,参见图1所示,应用于网关,该方法包括:
步骤S11:若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统。
本实施例中,若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统。可以理解的是,利用分布式配置中心(Nacos)作为中间件来实现网关与子系统之间配置信息的实时交互,即当子系统的配置信息发送改变时能及时通知网关。Nacos有三个功能特性:动态配置、服务发现与管理、动态DNS(Domain Name Server)服务。本发明中利用Nacos的动态配置的特性,当子系统启动或者重启时将子系统新的信息注册上报到分布式配置中心Nacos,网关注册监听方法到Nacos。需要指出的是,如图2所示的架构图,描述了设计的整体思路,SDK(SoftwareDevelopment Kit,软件开发工具包)作为底层的基础工具服务是架构设计核心的支撑,每个子系统接入SDK上报请求restful接口以及与接口对应的权限code码,Gateway(网关)则包含三个模块:Monitor(监控)模块、Forward(转发)模块和Authority(权限)模块。该架构的主要功能是实时监听nacos配置信息的变动,维护子系统与reportData的映射集合,并对互联网请求做分发和鉴权。每个子系统都接入SDK,SDK是一个后端的基础服务架构,接入子系统的方式较为简洁。上报流程如图3所示,通过SDK的数据上报功能,为子系统接入SDK,子系统启动或者重启时,SDK解析子系统的接口信息与code码,得到reportData并自动将子系统新的信息注册上报到分布式配置中心,然后通过分布式配置中心与网关进行实时的数据交互,即当分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,分布式配置中心将所述目标子系统重启后的所述目标配置信息发送至网关,完成实时的数据交互。另外,每个接口的code码根据接口的权限进行设定,架构符合系统设计中的高内聚,低耦合的特性。
可以理解的是,目前后端架构主要是基于Spring的生态,依赖Spring对bean的管理。基础服务在Spring初始化控制器Controller的bean时,对其进行后置的拦截,获取子系统Controller上的restful接口和每个接口上的配置的权限code码,以便网关进行鉴权操作。
具体的,架构实施研发过程如下:各个子系统请求的restful接口的定义,以区别各个子系统的请求。开发网关的功能服务Permission-SDK,用于处理子系统restful接口和权限code的上报:Permission-SDK中使用Spring对bean的管理,对容器中的类型为Controller的bean进行前置处理;将子系统所有控制器Controller中的@PostMapping的路径restful接口和@PermissionCheck中的code组装成对象PermissionMapping,最后子系统中的所有的PermissionMapping封装为reportData上报到配置服务中心Nacos;子系统的重新启动都会将reportData重新上报到Nacos。网关的实施包括以下几个方面:网关中维护一个系统名-reportData的映射systemMap,并且网关监听Nacos,当配置变更时主动更新systemMap中的映射数据;网关负责对接权限服务,根据当前登录的用户的角色以及对应的权限展示相应的系统菜单;核心是当用户点击部分菜单和按钮时校验该用户是否有该菜单和按钮的权限。
步骤S12:利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表。
本实施例中,利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表。可以理解的是,网关里维护一个记录所述目标子系统的子系统接口与对应的权限码之间的映射关系映射表,当接收到所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息时,利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,实现数据的实时交互,得到目标映射表,即最新的映射表。映射表可以加快请求的权限验证,能在时间复杂度最低的情况下取出任意接口对应的code权限码。例如当子系统增加、减少、更改配置信息时,网关都能获取到实时正确的信息。
步骤S13:接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,当鉴权通过则将所述互联网请求分发至所述目标子系统。
本实施例中,接收到互联网请求后,利用所述目标映射表对所述互联网请求进行鉴权操作,当鉴权通过则将所述互联网请求分发至所述目标子系统。可以理解的是,网关对互联网请求的鉴权主要是以key-value的形式,网关在处理请求时能高效的从映射表中获取到访问该restful接口需要的权限code码。当鉴权通过则通过子系统与请求的映射关系转发互联网请求。
可见,本申请提供了一种基于微服务的请求分发方法,包括:若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表;接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,当鉴权通过则将所述互联网请求分发至所述目标子系统。由此可见,本申请通过在网关与子系统之间设置分布式配置中心来判断子系统的配置信息是否改变,当子系统的配置信息改变时可以更新网关中对应的信息,然后在接收到互联网请求时使用更新后到配置信息进行相应的鉴权与分发操作,能对所有的子系统进行验证,提高了系统的安全性,并减少了数据冗余。
参见图4所示,本发明实施例公开了一种基于微服务的请求分发方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
步骤S21:若当前分布式配置中心中利用预设消息摘要算法对目标子系统的目标配置信息与相应的历史配置信息分别进行摘要得到的第一摘要值与第二摘要值不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统。
本实施例中,若当前分布式配置中心中利用预设消息摘要算法对目标子系统的目标配置信息与相应的历史配置信息分别进行摘要得到的第一摘要值与第二摘要值不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统。可以理解的是,所述分布式配置中心获取到目标子系统上传的目标配置信息之后,利用预设摘要算法分别对所述目标配置信息与相应的历史配置信息进行摘要处理,得到第一摘要值与第二摘要值,当所述第一摘要值与所述第二摘要值不同时,表明所述目标子系统对应的所述目标配置信息已经发生变化,此时需要通知网关进行相应的配置信息更新,即网关接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息。例如,所述摘要值可以为MD5值,也可以为通过其他信息摘要算法进行摘要后得到的摘要值。
步骤S22:基于所述目标配置信息生成实时映射表。
本实施例中,接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息之后,基于所述目标配置信息生成实时映射表。可以理解的是,基于所述目标配置信息生成接口与权限码一一对应的实时映射表,即所述映射表是用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系。
步骤S23:利用所述实时映射表对存储在网关的预设存储区域中的用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表进行更新,以得到目标映射表。
本实施例中,利用所述实时映射表对存储在网关的预设存储区域中的用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表进行更新,以得到目标映射表。例如,当所述目标子系统重启后配置信息减少,此时所述实时映射表中的数据比存储在网关中的历史映射表的信息少,因此利用所述实时映射表更新所述历史映射表,实现网关中存储映射表的实时更新。
步骤S24:接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,当鉴权通过则将所述互联网请求分发至所述目标子系统。
步骤S25:通过预设网关监控组件监控所述网关分发所述互联网请求,以得到后端返回的分发状态码。
本实施例中,鉴权通过则将所述互联网请求分发至所述目标子系统之后,通过预设网关监控组件监控所述网关分发所述互联网请求,以得到后端返回的分发状态码。可以理解的是,完成相应的请求分发后进行预设测试步骤:可用性测试、效率测试以及安全测试。网关监控的信息包含子系统请求成功次数,子系统请求失败次数,子系统请求平均响应时间。可用性测试通过编写网关监控组件对网关进行监控,例如当网关每日监控请求分发成功率100%,请求处理成功率99%时表明网关能准确进行请求的分发;效率测试通过网关监控的统计数据进行效率判断,例如网关分发和请求完成的平均响应时间为210ms,单个系统的最快平均响应时间为40ms,最慢平均响应时间为430ms,由于正常web端的接口的正常请求时间在200毫秒至500毫秒,因此可确定该网关的设计并不影响请求的时间效率。根据上述效率测试的结果可知,将对子系统的鉴权集中在网关进行处理并不影响请求的处理效率,同时集中鉴权又避免了子系统做大量的重复性工作;安全测试如下:网关对子系统的请求做统一的鉴权,分发时不必携带账号与密码,保证了系统的安全性,所以无法通过抓包软件、网络截取等方式获取当前的登录名和密码信息,减少了用户核心数据泄露的可能性。
需要指出的是,判断分发是否准确进行的步骤如下:判断请求是否成功获取对应的数据;判断请求是否报错404(接口未定义)。当分发成功率是100%时表明分发正常,若分发成功率低于100%则表明网关的分发中存在问题。
步骤S26:基于所述分发状态码判断所述互联网请求是否转发成功。
本实施例中,基于所述分发状态码判断所述互联网请求是否转发成功。可用理解的是,通过后端返回的状态码判断请求是否成功,例如返回的状态码为200则表明请求成功,返回的状态码为201则表明请求已实现,返回的状态码为202则表明请求已接受,返回的状态码为204则表明服务器成功执行请求但是没有返回信息,返回的状态码为205则表明服务器成功执行了请求但是没有返回内容同时需要请求者重置相应的数据。
关于上述步骤S24的具体内容可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例在当前分布式配置中心中利用预设消息摘要算法对目标子系统的目标配置信息与相应的历史配置信息分别进行摘要得到的第一摘要值与第二摘要值不一致时,接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;基于所述目标配置信息生成实时映射表;利用所述实时映射表对存储在网关的映射表进行更新,得到目标映射表;接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,当鉴权通过则将所述互联网请求分发至所述目标子系统;然后通过预设网关监控组件监控所述网关分发所述互联网请求,得到后端返回的分发状态码并基于所述分发状态码判断所述互联网请求是否转发成功,提高了系统的安全性,并减少了数据冗余。
参见图5所示,本发明实施例公开了一种基于微服务的请求分发方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
步骤S31:若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统。
步骤S32:利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表。
本实施例中,利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表。可用理解的是,如图6所示,得到所述目标映射表之后,基于所述目标映射表中的全部子系统接口实时生成菜单,并将所述菜单返回至互联网前端界面,以便用户在点击所述菜单中的所述子系统接口后生成对应的所述互联网请求。
步骤S33:接收互联网请求,以确定所述互联网请求对应的目标子系统接口。
本实施例中,接收互联网请求,以确定所述互联网请求对应的目标子系统接口。可用理解的是,互联网前端界面的菜单包含网关中的目标映射表内的全部子系统接口,如图7所示,当用户在点击所述菜单中的所述子系统接口后,生成对应的所述互联网请求,因此当网关接收到所述互联网请求时可直接确定用户请求的子系统接口。需要指出的是,互联网请求主要是基于Restful接口的规范,例如/a/b/c,/a/b/d,/aa/b,请求的规范有利于后续对请求进行分发和鉴权。
步骤S34:查询所述互联网请求对应的权限信息。
本实施例中,接收互联网请求并确定所述互联网请求对应的目标子系统接口后,访问互联网请求对应的用户的权限信息。可用理解的是,根据当前用户的ID可以从门神权限系统查询到当前用户所具有的权限code码信息。
步骤S35:获取所述目标映射表中与所述目标子系统接口对应的所述权限码,以得到目标权限码。
本实施例中,获取所述目标映射表中与所述目标子系统接口对应的所述权限码,以得到目标权限码。可用理解的是,确定所述互联网请求对应的目标子系统接口之后,在网关中存储的目标映射表中查询所述互联网请求对应的目标子系统接口的权限码。
步骤S36:判断所述互联网请求对应的所述权限信息是否包含所述目标权限码。
本实施例中,判断所述互联网请求对应的所述权限信息是否包含所述目标权限码。可用理解的是,若所述互联网请求对应的所述权限信息中包含所述目标权限码,则表明所述互联网请求可以访问目标子系统接口;若所述互联网请求对应的所述权限信息中不包含所述目标权限码,则表明所述互联网请求不能访问目标子系统接口,抛出权限异常信息,判定鉴权不通过并结束。
步骤S37:若所述互联网请求中的所述权限信息中包含所述目标权限码,则判定鉴权通过。
本实施例中,若所述互联网请求中的所述权限信息中包含所述目标权限码,则判定鉴权通过。可以理解的是,如图8所示实例,所述互联网请求的权限信息中存在与网关中的映射表内对应的权限码,所述互联网请求的鉴权通过。例如,在实际项目麒麟中,在研发麒麟项目时多个子系统(客成、美团、活动、餐饮和天梭)的请求都经过麒麟项目进行分发,相关的权限信息如图9所示的权限信息示意图,门神角色权限是一个维护角色与对应权限的系统,图中所示是一个权限的交集,在三者交叉的地方当前登录人才能正常访问该子系统接口。
步骤S38:将所述互联网请求分发至所述目标子系统。
关于上述步骤S31、S38的具体内容可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;利用所述目标配置信息更新映射表,得到目标映射表;接收互联网请求并确定所述互联网请求对应的目标子系统接口;获取所述目标映射表中与所述目标子系统接口对应的所述权限码,得到目标权限码;查询所述互联网请求对应的权限信息;然后通过判断所述互联网请求对应的所述权限信息是否包含所述目标权限码来进行鉴权,当所述互联网请求中的所述权限信息中包含所述目标权限码时鉴权通过,提高了系统的安全性,并减少了数据冗余。
参见图10所示,本申请实施例还相应公开了一种请求分发装置,应用于网关,包括:
信息接收模块11,用于若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统;
映射表更新模块12,用于利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表;
鉴权模块13,用于接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作;
请求分发模块14,用于当鉴权通过则将所述互联网请求分发至所述目标子系统。
可见,本申请包括:若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统;利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表;接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,当鉴权通过则将所述互联网请求分发至所述目标子系统。由此可见,本申请通过在网关与子系统之间设置分布式配置中心来判断子系统的配置信息是否改变,当子系统的配置信息改变时可以更新网关中对应的信息,然后在接收到互联网请求时使用更新后到配置信息进行相应的鉴权与分发操作,能对所有的子系统进行验证,提高了系统的安全性,并减少了数据冗余。
在一些具体实施例中,所述鉴权模块13,具体包括:
请求接收单元,用于接收互联网请求;
接口确定单元,用于确定所述互联网请求对应的目标子系统接口;
权限信息查询单元,用于查询所述互联网请求对应的权限信息;
权限码获取单元,用于获取所述目标映射表中与所述目标子系统接口对应的所述权限码,以得到目标权限码;
权限判断单元,用于判断所述互联网请求对应的所述权限信息是否包含所述目标权限码;
鉴权通过单元,用于若所述互联网请求中的所述权限信息中包含所述目标权限码,则判定鉴权通过。
在一些具体实施例中,所述请求分发模块14,具体包括:
请求分发单元,用于当鉴权通过则将所述互联网请求分发至所述目标子系统;
监控单元,用于通过预设网关监控组件监控所述网关分发所述互联网请求,以得到后端返回的分发状态码;
分发结果判断单元,用于基于所述分发状态码判断所述互联网请求是否转发成功。
进一步的,本申请实施例还提供了一种电子设备。图11是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图11为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的基于微服务的请求分发方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的基于微服务的请求分发方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的基于微服务的请求分发方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种基于微服务的请求分发方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于微服务的请求分发方法,其特征在于,应用于网关,包括:
若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统;
利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表;
接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,当鉴权通过则将所述互联网请求分发至所述目标子系统。
2.根据权利要求1所述的基于微服务的请求分发方法,其特征在于,所述若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息,所述目标子系统为基于微服务构建的系统,包括:
若当前分布式配置中心中利用预设消息摘要算法对目标子系统的目标配置信息与相应的历史配置信息分别进行摘要得到的第一摘要值与第二摘要值不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统。
3.根据权利要求1所述的基于微服务的请求分发方法,其特征在于,所述利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表,包括:
基于所述目标配置信息生成实时映射表;
利用所述实时映射表对存储在网关的预设存储区域中的用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表进行更新,以得到目标映射表。
4.根据权利要求1所述的基于微服务的请求分发方法,其特征在于,所述接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作,包括:
接收互联网请求,以确定所述互联网请求对应的目标子系统接口;
查询所述互联网请求对应的权限信息;
获取所述目标映射表中与所述目标子系统接口对应的所述权限码,以得到目标权限码;
判断所述互联网请求对应的所述权限信息是否包含所述目标权限码;
若所述互联网请求中的所述权限信息中包含所述目标权限码,则判定鉴权通过。
5.根据权利要求4所述的基于微服务的请求分发方法,其特征在于,所述判断所述互联网请求中的所述权限信息是否包含所述目标权限码,包括:
当所述互联网请求中的所述权限信息不包含所述目标权限码时,抛出权限异常信息,判定鉴权不通过并结束。
6.根据权利要求1所述的基于微服务的请求分发方法,其特征在于,还包括:
基于所述目标映射表中的全部子系统接口实时生成菜单,并将所述菜单返回至互联网前端界面,以便用户在所述互联网前端界面点击所述菜单中的所述子系统接口后生成对应的所述互联网请求。
7.根据权利要求1至6任一项所述的基于微服务的请求分发方法,其特征在于,所述当鉴权通过则将所述互联网请求分发至所述目标子系统之后,还包括:
通过预设网关监控组件监控所述网关分发所述互联网请求,以得到后端返回的分发状态码;
基于所述分发状态码判断所述互联网请求是否转发成功。
8.一种请求分发装置,其特征在于,应用于网关,包括:
信息接收模块,用于若当前分布式配置中心的目标子系统的目标配置信息与相应的历史配置信息不一致,则接收所述分布式配置中心发送的所述目标子系统重启后的所述目标配置信息;所述目标子系统为基于微服务构建的系统;
映射表更新模块,用于利用所述目标配置信息更新用于记录所述目标子系统的子系统接口与对应的权限码之间的映射关系的映射表,以得到目标映射表;
鉴权模块,用于接收互联网请求,并利用所述目标映射表对所述互联网请求进行鉴权操作;
请求分发模块,用于当鉴权通过则将所述互联网请求分发至所述目标子系统。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的基于微服务的请求分发方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于微服务的请求分发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210208933.4A CN114465895A (zh) | 2022-03-03 | 2022-03-03 | 一种基于微服务的请求分发方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210208933.4A CN114465895A (zh) | 2022-03-03 | 2022-03-03 | 一种基于微服务的请求分发方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114465895A true CN114465895A (zh) | 2022-05-10 |
Family
ID=81414969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210208933.4A Pending CN114465895A (zh) | 2022-03-03 | 2022-03-03 | 一种基于微服务的请求分发方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114465895A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115473766A (zh) * | 2022-08-22 | 2022-12-13 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和系统 |
CN116881942A (zh) * | 2023-07-21 | 2023-10-13 | 广州三叠纪元智能科技有限公司 | 分布式系统角色权限校验方法及其系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483538A (zh) * | 2017-07-06 | 2017-12-15 | 聚好看科技股份有限公司 | 一种在微服务集群的节点上处理访问请求包的方法和装置 |
CN108901022A (zh) * | 2018-06-28 | 2018-11-27 | 深圳云之家网络有限公司 | 一种微服务统一鉴权方法及网关 |
CN110430255A (zh) * | 2019-07-31 | 2019-11-08 | 阿里巴巴集团控股有限公司 | 分布式集群中服务请求的处理方法、系统以及电子设备 |
CN110474863A (zh) * | 2018-05-10 | 2019-11-19 | 中国移动通信集团浙江有限公司 | 微服务安全认证方法及装置 |
CN110995702A (zh) * | 2019-12-02 | 2020-04-10 | 杭州安恒信息技术股份有限公司 | 一种基于分布式微服务的用户认证方法 |
CN111953799A (zh) * | 2020-08-25 | 2020-11-17 | 山东合天智汇信息技术有限公司 | 一种基于微服务的电子证照分布式管理方法及系统 |
CN112788031A (zh) * | 2021-01-11 | 2021-05-11 | 百果园技术(新加坡)有限公司 | 基于Envoy架构的微服务接口认证系统、方法及装置 |
CN113824712A (zh) * | 2021-09-17 | 2021-12-21 | 上海浦东发展银行股份有限公司 | 一种基于微服务的请求处理方法、装置、电子设备及介质 |
-
2022
- 2022-03-03 CN CN202210208933.4A patent/CN114465895A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483538A (zh) * | 2017-07-06 | 2017-12-15 | 聚好看科技股份有限公司 | 一种在微服务集群的节点上处理访问请求包的方法和装置 |
CN110474863A (zh) * | 2018-05-10 | 2019-11-19 | 中国移动通信集团浙江有限公司 | 微服务安全认证方法及装置 |
CN108901022A (zh) * | 2018-06-28 | 2018-11-27 | 深圳云之家网络有限公司 | 一种微服务统一鉴权方法及网关 |
CN110430255A (zh) * | 2019-07-31 | 2019-11-08 | 阿里巴巴集团控股有限公司 | 分布式集群中服务请求的处理方法、系统以及电子设备 |
CN110995702A (zh) * | 2019-12-02 | 2020-04-10 | 杭州安恒信息技术股份有限公司 | 一种基于分布式微服务的用户认证方法 |
CN111953799A (zh) * | 2020-08-25 | 2020-11-17 | 山东合天智汇信息技术有限公司 | 一种基于微服务的电子证照分布式管理方法及系统 |
CN112788031A (zh) * | 2021-01-11 | 2021-05-11 | 百果园技术(新加坡)有限公司 | 基于Envoy架构的微服务接口认证系统、方法及装置 |
CN113824712A (zh) * | 2021-09-17 | 2021-12-21 | 上海浦东发展银行股份有限公司 | 一种基于微服务的请求处理方法、装置、电子设备及介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115473766A (zh) * | 2022-08-22 | 2022-12-13 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和系统 |
CN115473766B (zh) * | 2022-08-22 | 2024-01-26 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和系统 |
CN116881942A (zh) * | 2023-07-21 | 2023-10-13 | 广州三叠纪元智能科技有限公司 | 分布式系统角色权限校验方法及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110401696B (zh) | 一种去中心化处理的方法、通信代理、主机以及存储介质 | |
US11088903B2 (en) | Hybrid cloud network configuration management | |
CN113169952B (zh) | 一种基于区块链技术的容器云管理系统 | |
CN108108223B (zh) | 基于Kubernetes的容器管理平台 | |
CN108881232B (zh) | 业务系统的登录访问方法、装置、存储介质和处理器 | |
US8271632B2 (en) | Remote access providing computer system and method for managing same | |
US20020082820A1 (en) | Data model for automated server configuration | |
US7152109B2 (en) | Automated provisioning of computing networks according to customer accounts using a network database data model | |
US7246174B2 (en) | Method and system for accessing and managing virtual machines | |
CN114465895A (zh) | 一种基于微服务的请求分发方法、装置、设备及存储介质 | |
US20020156831A1 (en) | Automated provisioning of computing networks using a network database data model | |
US20060248182A1 (en) | Formatted and/or tunable QoS data publication, subscription, and/or distribution including dynamic network formation | |
WO2006116866A1 (en) | Formatted and/or tunable qos data publication, subscription, and/or distribution including dynamic network formation | |
WO2012050734A1 (en) | Intelligent interface for a distributed control system | |
CN106533961B (zh) | 一种流量控制方法及装置 | |
CN101548263B (zh) | 模拟用户和/或拥有者的不透明管理数据选项的方法和系统 | |
CN116781564B (zh) | 一种容器云平台的网络检测方法、系统、介质和电子设备 | |
US20230362252A1 (en) | IoT Licensing Platform and Architecture | |
KR20190026394A (ko) | IoT 단말기간 접근 제어 방법 | |
CN117155606A (zh) | 网页登录状态的维持方法及系统 | |
CN116346834A (zh) | 一种会话同步方法、装置、计算设备及计算机存储介质 | |
CN111176782B (zh) | 一种在线实验方法和装置 | |
CN115525442A (zh) | 一种远程命令执行方法及装置 | |
US20240214434A1 (en) | Remote desktop connection communications | |
US20240078164A1 (en) | Techniques for managing software agent health |
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 |