CN116489214A - 一种基于微服务网关的统一服务调度方法、装置、介质及设备 - Google Patents
一种基于微服务网关的统一服务调度方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN116489214A CN116489214A CN202310453553.1A CN202310453553A CN116489214A CN 116489214 A CN116489214 A CN 116489214A CN 202310453553 A CN202310453553 A CN 202310453553A CN 116489214 A CN116489214 A CN 116489214A
- Authority
- CN
- China
- Prior art keywords
- service
- gateway
- service gateway
- tenant
- micro
- 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 41
- 230000008859 change Effects 0.000 claims abstract description 29
- 238000010276 construction Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 24
- 238000012544 monitoring process Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001105 regulatory effect Effects 0.000 claims 1
- 238000002955 isolation Methods 0.000 abstract description 12
- 239000000306 component Substances 0.000 description 53
- 238000007726 management method Methods 0.000 description 41
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 7
- 238000011161 development Methods 0.000 description 7
- 238000005129 volume perturbation calorimetry Methods 0.000 description 7
- 238000013475 authorization Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000002071 nanotube Substances 0.000 description 2
- 101001094649 Homo sapiens Popeye domain-containing protein 3 Proteins 0.000 description 1
- 101000608234 Homo sapiens Pyrin domain-containing protein 5 Proteins 0.000 description 1
- 101000578693 Homo sapiens Target of rapamycin complex subunit LST8 Proteins 0.000 description 1
- 102100027802 Target of rapamycin complex subunit LST8 Human genes 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了微服务网关技术领域的一种基于微服务网关的统一服务调度方法、装置、介质及设备,包括部署服务网关到各中台租户下;通过服务网关从网关配置中心拉取相应的服务配置,通过管控工具获取服务网关的全量初始化数据,将服务网关连接相应中台租户内的注册中心,以实现服务自动注册和路由构建;当路由发生变更时,通过管控工具向消息组件发送变更通知,服务网关接收变更通知并更新内存路由。本发明解决了现有技术中基于微服务网关的系统无法实现故障隔离且无法自动实现服务注册的技术问题,通过设置多级网关组件,实现分级路由与多租户隔离,确保各中台流量隔离,避免单节点故障,实现服务自动注册和路由构建,有效统一各中台服务调用管理。
Description
技术领域
本发明涉及一种基于微服务网关的统一服务调度方法、装置、介质及设备,属于微服务网关技术领域。
背景技术
随着我国企业全面推进数字化转型,国网公司正大力推进企业中台战略,建设业务中台、数据中台、技术中台,覆盖公司电网生产、财务管理、营销服务、项目管理等业务,数据汇总、数据计算等数据分析需求及人工智能、GIS、视频等技术领域,构建起“大中台、小前台”的数字化应用模式,为公司快速灵活响应新业务需求、提供新兴服务打好了坚实基础。在企业中台之上,建设营销2.0、PMS3.0、网上国网等业务应用,快速支撑面向新型电力系统的数字化应用需求。然而在推进中台化战略,充分发挥中台价值、服务前台业务方面,仍存在一些问题,影响推广使用:
由于建设时序、使用产品的不同,中台在微服务网关技术路线上存在一定的差异,大部分新建中台基于SpringCloud构建微服务体系,部分使用原生云厂家的微服务网关产品,如CSB、APIGateway、Romma等,这些技术上的差异虽然在前端业务应用使用时不会有太多影响,但对业务服务融合、统一服务调度方面造成了一定的困难。
大多数中台在认证鉴权方面采用主流OAuth2.0协议完成客户端与服务之间的认证和授权,采用Appid、AppSecret等参与传递客户端标识和秘钥信息,在路由方面使用服务路径URL进行服务的路由。但也有部分中台由于建设时序较早,考虑兼容传统业务服务采用webservice技术等原因,自行设计维护路由和鉴权信息实现相关功能。但这些问题给后续应用开发者使用各中台服务时产生了比较大困扰,造成了一定的门槛,往往使用不同的中台服务就要实现不同的鉴权逻辑,传入不同的参数。
微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。微服务(Microservice)这个概念是2012年出现的,作为加快Web和移动应用程序开发进程的一种方法,2014年开始受到各方的关注,而2015年,可以说是微服务的元年。
他与传统的web开发模式单体式开发主要区别在于:
单体架构模式将所有的功能打包在一个WAR包里,基本没有外部依赖(除了容器),部署在一个JEE容器(Tomcat,JBoss,WebLogic)里,包含了DO/DAO,Service,UI等所有逻辑。其优点在于开发简单,集中式管理,基本不会重复开发,功能都在本地,没有分布式的管理和调用消耗。但也存在小路低、维护难、不灵活、扩展性差等问题。而微服务架构将单体式服务根据业务解耦等原则将一个单体应用拆分成较独立的微服务共同组成一个业务应用,实现敏捷开发和部署。
不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:客户端会多次请求不同的微服务,增加了客户端的复杂性;存在跨域请求,在一定场景下处理相对复杂;认证复杂,每个服务都需要独立认证;难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施。某些微服务可能使用了防火墙或浏览器不友好的协议,直接访问会有一定的困难。
网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过网关这一层。也就是说,API的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由网关来做,这样既提高业务灵活性又不缺安全性。具有安全、易于监控、易于认证和易于统一授权的优点。只有网关系统对外进行暴露,微服务可以隐藏在内网,通过防火墙保护;可以在网关收集监控数据并将其推送到外部系统进行分析;可以在网关上进行认证,然后再将请求转发到后端的微服务,而无须在每个微服务中进行认证;减少了客户端与各个微服务之间的交互次数。
微服务网关就是一个系统,通过暴露该微服务网关系统,方便我们进行相关的鉴权、安全控制和日志统一处理,易于监控的相关功能。
实现微服务网关的技术有很多,典型的有Nginx(tengine x),它是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器。spring-cloud-gateway是spring出品的基于spring的网关项目,集成断路器,路径重写,性能比Zuul好。
申请号为202210432495.X的专利—一种基于服务网关的业务融合方法中将业务系统作为服务注册到服务网关中,在业务系统中采用Restful API技术,将功能发布为接口,并在网关中关联服务和API接口;在网关中配置服务和接口;服务发布多接口发布方式,将服务所包含的API接口与用户连接,向用户提供数据服务;实现数据互联互通,为上级和下级单位提供数据,同时支撑多部门数据共享。但此发明将各业务系统的服务都注册到统一的网关上进行业务服务融合,所有系统的服务请求流量都通过该业务融合网关进行路由转发,易造成单节点故障,可靠性存在风险。同时,当某个系统的服务压力较大,也容易对其他系统的服务请求造成影响,无法实现故障隔离,局部影响到全局。并且,在云平台跨租户环境下,服务无法通过原业务系统注册中心将服务注册至统一的业务融合网关下,需要通过手动注册或其他方式将服务注册发布至融合网关下,不适应目前云原生微服务架构下的服务自动注册。
发明内容
本发明的目的是提供一种基于微服务网关的统一服务调度方法、装置、介质及设备,针对目前现有技术中基于微服务网关的系统无法实现故障隔离且无法自动实现服务注册的问题。
为达到上述目的/为解决上述技术问题,本发明是采用下述技术方案实现的。
第一方面,本发明提供一种基于微服务网关的统一服务调度方法,包括:
部署服务网关到各中台租户下,并配置相应的中台租户ID;所述服务网关连接网关配置中心、管控工具和消息组件;
通过所述服务网关从网关配置中心拉取相应的服务配置,所述服务网关根据消息组件的默认配置开启对消息组件主体的监听;
通过所述管控工具获取服务网关的全量初始化数据和相应的中台租户ID,将服务网关连接相应中台租户内的注册中心,以实现服务自动注册和路由构建;
当路由发生变更时,通过所述管控工具向消息组件发送变更通知,服务网关接收变更通知并更新内存路由。
进一步的,还包括,通过所述消息组件收集服务网关运行日志,由管控工具订阅处理。
进一步的,还包括,在部署服务网关到各中台租户下之前,将流量网关作为服务请求的流量入口;所述流量网关采用轻量级的负载组件。
进一步的,还包括,在部署服务网关到各中台租户下时,将其他组件部署到公共VPC下,以实现服务的统一入口与调度管理。
进一步的,还包括,在部署服务网关到各中台租户下时,设置级联网关与服务网关和流量网关级联,所述级联网关用于平行网络间的服务连接、基础能力实现认证和鉴权,并与下一网关进行互信认证。
进一步的,所述服务网关根据消息组件的默认配置开启对消息组件主体的监听,包括监听消息组件的相关路由变更、权限变更和配置参数信息。
进一步的,所述服务网关采用响应式编程和Filter链式处理模式,并通过全异步化处理提高吞吐量;所述服务网关通过Filter链式处理模式将定制扩展组件插入到处理链中,所述定制扩展组件包括黑白名单组件、认证鉴权组件和访问日志组件。
第二方面,本发明提供一种基于微服务网关的统一服务调度装置,包括:
网关部署模块,用于部署服务网关到各中台租户下,并配置相应的中台租户ID;所述服务网关连接网关配置中心、管控工具和消息组件;
网关配置模块,用于通过所述服务网关从网关配置中心拉取相应的服务配置,所述服务网关根据消息组件的默认配置开启对消息组件主体的监听;
数据初始化模块,用于通过所述管控工具获取服务网关的全量初始化数据和相应的中台租户ID,将服务网关连接相应中台租户内的注册中心,以实现服务自动注册和路由构建;
变更通知模块,用于当路由发生变更时,通过所述管控工具向消息组件发送变更通知,服务网关接收变更通知并更新内存路由。
第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如第一方面任一所述的基于微服务网关的统一服务调度方法。
第四方面,本发明提供一种设备,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述设备执行实现如第一方面任一项所述的基于微服务网关的统一服务调度方法的操作。
与现有技术相比,本发明所达到的有益效果:
本发明提供一种基于微服务网关的统一服务调度方法、装置、介质及设备,通过设置多级网关组件,实现分级路由,部署服务网关到各中台租户下,实现多租户隔离,确保各中台流量隔离,避免单节点故障。通过管控工具将服务网关连接相应中台租户内的注册中心,以实现服务自动注册和路由构建,有效统一各中台服务调用管理,方便对中台服务的纳管及价值发现。
附图说明
图1所示为本发明实施例一提供的一种基于微服务网关的统一服务调度方法的整体流程示意图;
图2所示为本发明实施例一提供的一种基于微服务网关的统一服务调度方法中的总体服务调度流程示意图;
图3所示为本发明实施例一提供的一种基于微服务网关的统一服务调度方法中的客户端发起对中台服务的调用时的运行流程示意图;
图4所示为本发明实施例一提供的一种基于微服务网关的统一服务调度方法中的服务网关内部请求流转示意图。
具体实施方式
下面通过附图以及具体实施例对本发明技术方案做详细地说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符"/",一般表示前后关联对象是一种“或”的关系。
实施例1
如图1所示,本实施例介绍一种基于微服务网关的统一服务调度方法,包括:
部署服务网关到各中台租户下,并配置相应的中台租户ID;所述服务网关连接网关配置中心、管控工具和消息组件;
通过所述服务网关从网关配置中心拉取相应的服务配置,所述服务网关根据消息组件的默认配置开启对消息组件主体的监听;
通过所述管控工具获取服务网关的全量初始化数据和相应的中台租户ID,将服务网关连接相应中台租户内的注册中心,以实现服务自动注册和路由构建;
当路由发生变更时,通过所述管控工具向消息组件发送变更通知,服务网关接收变更通知并更新内存路由。
通过所述消息组件收集服务网关运行日志,由管控工具订阅处理。
下文对本实施所述的基于微服务网关的统一服务调度方法进行详细介绍。如图2所示,本实施例总体设计了一个统一的服务调度平台,包括流量网关、服务网关、管控工具、级联网关、网关配置中心、消息组件和数据存储组件。
其中,服务网关作为单中台的服务网关,实现本域内的服务代理功能。主要完成服务的路由、鉴权等工作,具有可扩展日志记录、安全防护、限流熔断等能力。
流量网关可作为请求服务的统一流量入口,采用轻量级的负载组件,比如常用的Nginx、OpenRestry或者阿里ALB等组件,完成请求流量分离,实现服务请求流量接入和负载均衡,路由策略可按网关租户进行配置,优先保障服务路由转发,同时采用轻量级组件可保障该层网关对服务转发性能的影响。
级联网关主要实现与其他网关的级联作用,主要用于总部及省市公司独立部署中台时平行网络间的服务连接、基础能力实现认证、鉴权并与下一跳的网关进行互信认证,同级级联网关能力相同。
管控工具主要实现对各类网关功能、配置的管理。
网关配置中心承担整个服务调度平台的服务注册、配置管理下发的功能。
消息组件采用MQ消息组件,主要用于管理工具与服务网关间跨域间的消息通信、配置下发和日志收集等工作,可用于实现数据请求转发与管理控制的解耦。
数据存储组件包括RDS关系数据库和Redis缓存数据库,主要用于服务调度平台各类数据的存储,包括基础数据的关系存储,以及核心鉴权、路由数据等的缓存。
该平台是主要考虑到目前基于国网云多租户隔离的情况下进行设计实现的。其中VPC1、VPC2是各个中台应用部署的网络,本身与其他VPC(专有网络)是互相隔离的,VPC0是一个公共VPC,有且仅有该VPC允许与其他VPC进行通信。所以将服务网关部署到各中台的租户下,将其他组件部署到公共VPC下,以此实现服务的统一入口与调度管理。
下文以服务网关及管控工具两者跨租户交互内容进行详细说明,其他级联网关和流量网关的交互逻辑同理并有所简化。
首先部署服务网关到各中台租户下,并配置相应的中台租户ID或编码,使管控工具可以识别到相应的中台租户进行管理。
之后,进行服务网关配置下发。服务网关可以根据其内置的网关注册配置中心的域名及端口,连接配置中心,从网关配置中心拉取相应的服务配置,同时,根据消息组件的默认配置,开启对消息组件特定主体的监听,监听相关路由变更、权限变更、配置参数等信息。
随后,初始化服务网关数据。从管控工具的初始化服务中获取服务网关的全量初始化数据,构建自身的路由表、权限表等,同时识别中台租户ID或编码,连接本中台租户内的注册中心,实现服务自动注册和路由构建。此处适配多种服务注册中心,包括常见的eds、cse、nacos等。
之后,发送变更通知。管控工具变更租户路由后,向消息组件MQ中与中台租户关联的TOPIC主题发送变更通知,中台租户的服务网关接收变更通知并更新内存路由。其中,开关参数通过同一个TOPIC主题发送,通过消息类型加以区分。
最后,进行服务网关运行日志收集。采集,消息组件MQ的队列日志接收队列收集网关运行日志后,由管控平台订阅处理,所述订阅处理包括写ES或者驱动FLINK实时计算。每个网关节点定时通过消息组件MQ发送心跳信息,实现健康状态监测。
需要说明的是,一般情况下,RDS和Redis不能跨VPC访问,网关无法直接连接存储。
实际访问运行时的总体服务调度流程顺序如图3中所示。从客户端发起对中台服务的调用,一般经过五次转发,其中,步骤①和步骤③主要是走云平台租户间负载均衡SLB的消耗。步骤②是将所有的请求由流量网关作为入口,由其作为一层软负载,实现不同服务网关租户间的服务路由。步骤④是由流量网关将请求路由发送至指定的中台租户服务网关中。步骤⑤是由服务网关进行认证鉴权之后,将请求路由转发至相应的服务。一般服务网关的认证鉴权都会集成一个统一的认证中心来实现业务应用的认证和服务的鉴权,因此在本实施例中,采用常规的OAuth2.0协议,并集成公司的统一权限中心来实现。
如图4所示为本发明实施例中的服务网关内部请求流转示意图。
本实施例中的服务网关采用响应式编程和Filter链式处理模式,以全异步化处理作为提高吞吐量的主要手段。SpringCloud Gateway本身采用Reactor+Netty技术实现,具有响应式编程的高并发、高吞吐量的优势,相关扩展组件的设计开发需完全遵守Reactor编程要求,采用响应式编程实现。
定制扩展组件如黑白名单、认证鉴权和访问日志等均采用Filter方式插入到处理链中,其中的非核心业务逻辑,如记录日志、访问日志发送和动态路由配置等均以异步方式执行,不与核心组件耦合。扩展Filter做好参数检查和异常处理,防止因运行期异常导致网关不可用。
其中,黑白名单Filter组件对应用、IP等进行访问控制,列入黑名单的应用和IP不可访问。其关键点在于黑名单的高效缓存。黑名单一般数据量不大,可全部进行内存缓存,数据变更通过消息总线进行通知,网关节点订阅并更新内存缓存。
认证鉴权Filter组件中的认证对象为业务应用,业务应用需在平台注册,由平台分配appId和appSecret。应用调用时首先使用appId和appSecret获取token,后续服务调用时需在请求header中加入x-token和x-app-id。
认证鉴权组件拦截请求后检查token的有效性,检查访问URL是否有权限,验证通过后执行下一步处理。
认证鉴权功能完全自研开发,是对网关性能影响较大的功能之一。在高并发时认证和权限数据的查询成本较高,此处需采用内存一级缓存和Redis二级缓存相结合的方式缓存原始认证数据、权限数据及认证鉴权结果数据,结合异步消息通知机制更新缓存数据。
其中,Redis中的缓存应用信息为appid和appSecret,令牌信息为appid、token和token明文;缓存权限配置信息为appid和url模式,缓存鉴权结果为appid、有效地址和true/false。
认证过程为:
(1)应用使用appId和appSecret申请token,网关认证成功后将token及token明文写入Redis及本地缓存。
(2)应用调用服务时在header中添加x-app-id,x-token等认证参数。
(3)网关节点检查header,如无认证参数返回未认证错误代码,否则从本地缓存或redis加载token,如token不存在或已失效返回未认证错误代码,如token有效则认证通过。
鉴权过程为:
(1)解析请求URL,去除URL参数,获取有效地址。
(2)检查本地缓存或Redis中此有效地址是否存在鉴权结果,如存在,则直接基于缓存结果进行处理,处理方式为放行或拒绝访问。
(3)如两级缓存中均无鉴权结果,一般表示应用首次调用这个地址,则在应用权限配置列表中进行匹配,匹配结果为true/false,之后缓存鉴权结果至内存及Redis,鉴权结果为appid、有效地址和true/false;基于鉴权结果进行后续处理,处理方式为放行或拒绝访问。
配置数据变更时,由管理工具发出消息通知,网关节点监听到变更消息后删除相关本地缓存条目,更新Redis缓存条目,后续需要时再从Redis加载最新数据。如删除应用对URL的访问权限后,需删除Redis中已缓存的这条应用权限记录及相应的鉴权结果,删除各网关节点本地缓存的鉴权结果等,确保配置与结果的一致。
生产环境中应用注册、权限变更的频率不高,采用缓存可以有效提高性能。
访问日志Filter组件采用异步消息方式发送访问日志到消息总线。
访问日志主要由应用标识、请求地址、应用IP、用户标识、用户IP、终端类型、网络类型(内外网)、状态(调用成功、认证失败、鉴权失败等)、发起时间、转发用时、中台标识和请求响应等数据项构成,其中,应用标识、用户标识、用户IP、终端类型和网络类型(内外网)等数据由调用方在请求header中传递,请求地址和应用IP由系统分析请求对象获取,中台标识来自于网关配置文件。请求响应数据由Filter拦截后截取,此处需要控制保存的请求响应数据大小,正常情况下,只需要截取部分数据。
运行日志一般采用日志文件方式存储在本地,运行日志采集组件采用FileBeat+ES对日志文件进行异步采集。将网关集群节点的运行日志统一采集存储和分析,能快速定位分析运行时异常,在容器环境中收集各POD节点日志对问题的分析尤为重要。
本地日志文件写入采用开源日志框架的异步日志appender,将写日志文件与主逻辑分离执行,减少对主逻辑的影响。
其中,FileBeat是在网关程序进程外扫描指定的日志文件,不影响网关程序运行。
本实施例设计了一套分层多级网关节点实现分层分级路由和多租户隔离控制,多种网关节点分别实现不同的功能。考虑到各中台部署租户不同,将服务网关下沉部署至各中台租户内,连接其原有注册中心,实现中台服务自动注册发现,而不需要二次发现及路由配置,是一种服务调度能力的物理多租户实现,各中台本身的服务请求相互之间互不影响,一旦出现请求阻塞或者故障之后,也不会对其他中台的服务产生影响。服务网关和管控工具采用MQ进行通信,保证异步通信效率,确保控制流数据和请求数据流相互隔离。服务网关实现本地缓存,确保请求转发的性能。
本方法可以有效统一各中台服务调用管理。利用各中台自有的注册中心将服务注册到调度平台上,进行统一的发布纳管,其他业务应用可以通过统一的服务调用入口调用各大中台的服务,方便对中台服务的纳管及价值发现,方便前台业务应用使用中台的门槛,发挥企业级建设优势。确保各中台流量隔离,避免单节点故障,通过云原生弹性伸缩和故障恢复等能力,确保统一服务调度平台的高可用性和高可靠性。
实施例2
与实施例1基于相同的发明构思,本实施例介绍一种基于微服务网关的统一服务调度装置,包括:
网关部署模块,用于部署服务网关到各中台租户下,并配置相应的中台租户ID;所述服务网关连接网关配置中心、管控工具和消息组件;
网关配置模块,用于通过所述服务网关从网关配置中心拉取相应的服务配置,所述服务网关根据消息组件的默认配置开启对消息组件主体的监听;
数据初始化模块,用于通过所述管控工具获取服务网关的全量初始化数据和相应的中台租户ID,将服务网关连接相应中台租户内的注册中心,以实现服务自动注册和路由构建;
变更通知模块,用于当路由发生变更时,通过所述管控工具向消息组件发送变更通知,服务网关接收变更通知并更新内存路由。
上述各模块的具体功能实现参考实施例1方法中的相关内容,不予赘述。
实施例3
与其它实施例基于相同的发明构思,本实施例介绍一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如实施例1中任一所述的基于微服务网关的统一服务调度方法。
实施例4
与其它实施例基于相同的发明构思,本实施例介绍一种设备,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述设备执行实现如实施例1任一项所述的基于微服务网关的统一服务调度方法的操作。
综上实施例,本发明提供一种基于微服务网关的统一服务调度方法、装置、介质及设备,通过设置多级网关组件,实现分级路由,部署服务网关到各中台租户下,实现多租户隔离,确保各中台流量隔离,避免单节点故障。通过管控工具将服务网关连接相应中台租户内的注册中心,以实现服务自动注册和路由构建,有效统一各中台服务调用管理,方便对中台服务的纳管及价值发现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种基于微服务网关的统一服务调度方法,其特征在于,包括:
部署服务网关到各中台租户下,并配置相应的中台租户ID;所述服务网关连接网关配置中心、管控工具和消息组件;
通过所述服务网关从网关配置中心拉取相应的服务配置,所述服务网关根据消息组件的默认配置开启对消息组件主体的监听;
通过所述管控工具获取服务网关的全量初始化数据和相应的中台租户ID,将服务网关连接相应中台租户内的注册中心,以实现服务自动注册和路由构建;
当路由发生变更时,通过所述管控工具向消息组件发送变更通知,服务网关接收变更通知并更新内存路由。
2.根据权利要求1所述的基于微服务网关的统一服务调度方法,其特征在于,还包括,通过所述消息组件收集服务网关运行日志,由管控工具订阅处理。
3.根据权利要求1所述的基于微服务网关的统一服务调度方法,其特征在于,还包括,在部署服务网关到各中台租户下之前,将流量网关作为服务请求的流量入口;所述流量网关采用轻量级的负载组件。
4.根据权利要求3所述的基于微服务网关的统一服务调度方法,其特征在于,还包括,在部署服务网关到各中台租户下时,将其他组件部署到公共VPC下,以实现服务的统一入口与调度管理。
5.根据权利要求4所述的基于微服务网关的统一服务调度方法,其特征在于,还包括,在部署服务网关到各中台租户下时,设置级联网关与服务网关和流量网关级联,所述级联网关用于平行网络间的服务连接、基础能力实现认证和鉴权,并与下一网关进行互信认证。
6.根据权利要求1所述的基于微服务网关的统一服务调度方法,其特征在于,所述服务网关根据消息组件的默认配置开启对消息组件主体的监听,包括监听消息组件的相关路由变更、权限变更和配置参数信息。
7.根据权利要求1所述的基于微服务网关的统一服务调度方法,其特征在于,所述服务网关采用响应式编程和Filter链式处理模式,并通过全异步化处理提高吞吐量;所述服务网关通过Filter链式处理模式将定制扩展组件插入到处理链中,所述定制扩展组件包括黑白名单组件、认证鉴权组件和访问日志组件。
8.一种基于微服务网关的统一服务调度装置,其特征在于,包括:
网关部署模块,用于部署服务网关到各中台租户下,并配置相应的中台租户ID;所述服务网关连接网关配置中心、管控工具和消息组件;
网关配置模块,用于通过所述服务网关从网关配置中心拉取相应的服务配置,所述服务网关根据消息组件的默认配置开启对消息组件主体的监听;
数据初始化模块,用于通过所述管控工具获取服务网关的全量初始化数据和相应的中台租户ID,将服务网关连接相应中台租户内的注册中心,以实现服务自动注册和路由构建;
变更通知模块,用于当路由发生变更时,通过所述管控工具向消息组件发送变更通知,服务网关接收变更通知并更新内存路由。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1-7中任一项所述的基于微服务网关的统一服务调度方法。
10.一种设备,其特征在于,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述设备执行实现如权利要求1-7任一项所述的基于微服务网关的统一服务调度方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310453553.1A CN116489214A (zh) | 2023-04-25 | 2023-04-25 | 一种基于微服务网关的统一服务调度方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310453553.1A CN116489214A (zh) | 2023-04-25 | 2023-04-25 | 一种基于微服务网关的统一服务调度方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116489214A true CN116489214A (zh) | 2023-07-25 |
Family
ID=87217362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310453553.1A Pending CN116489214A (zh) | 2023-04-25 | 2023-04-25 | 一种基于微服务网关的统一服务调度方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116489214A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117082146A (zh) * | 2023-10-13 | 2023-11-17 | 人民法院信息技术服务中心 | 一种跨业务的多元司法服务综合集成调度系统 |
CN117498994A (zh) * | 2023-11-16 | 2024-02-02 | 浪潮智慧科技有限公司 | 一种微服务架构的资源请求方法及设备 |
CN117971799A (zh) * | 2023-12-14 | 2024-05-03 | 北京宇信科技集团股份有限公司 | 一种数据开发平台和数据开发方法 |
-
2023
- 2023-04-25 CN CN202310453553.1A patent/CN116489214A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117082146A (zh) * | 2023-10-13 | 2023-11-17 | 人民法院信息技术服务中心 | 一种跨业务的多元司法服务综合集成调度系统 |
CN117082146B (zh) * | 2023-10-13 | 2024-01-23 | 人民法院信息技术服务中心 | 一种跨业务的多元司法服务综合集成调度系统 |
CN117498994A (zh) * | 2023-11-16 | 2024-02-02 | 浪潮智慧科技有限公司 | 一种微服务架构的资源请求方法及设备 |
CN117971799A (zh) * | 2023-12-14 | 2024-05-03 | 北京宇信科技集团股份有限公司 | 一种数据开发平台和数据开发方法 |
CN117971799B (zh) * | 2023-12-14 | 2024-08-13 | 北京宇信科技集团股份有限公司 | 一种数据开发平台和数据开发方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116489214A (zh) | 一种基于微服务网关的统一服务调度方法、装置、介质及设备 | |
CN111930529B (zh) | 基于消息队列及微服务的数据同步方法、装置及系统 | |
CN112488679B (zh) | 一种区块链的跨链合约解析方法、中继链及跨链系统 | |
CN111130892A (zh) | 一种企业级微服务的管理系统及方法 | |
CN110535831A (zh) | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 | |
US8788565B2 (en) | Dynamic and distributed queueing and processing system | |
CN109981789A (zh) | 一种基于代理模式的微服务引擎 | |
CN110855509B (zh) | 一种新型的云化软件定义分组传送网sptn网络架构的配置方法 | |
CN112214338A (zh) | 一种基于微服务灵活部署的物联网云平台 | |
CN111752799A (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
CN110262902B (zh) | 信息处理方法及系统、介质和计算设备 | |
CN107395729A (zh) | 一种消息队列的消费系统、方法及装置 | |
CN111885439B (zh) | 一种光网络综合管理和值勤管理系统 | |
CN112506498A (zh) | 一种智慧型可视化api编排方法、存储介质及电子设备 | |
WO2020186807A1 (zh) | 一种基于区块链技术的电力数据链接系统及方法 | |
CN110636108B (zh) | 一种用于电力计量的微服务架构及其实现方法 | |
CN110096545A (zh) | 一种基于大数据平台数据处理域构架方法 | |
CN105786683A (zh) | 自定制的日志收集系统和方法 | |
CN113821268A (zh) | 一种与OpenStack Neutron融合的Kubernetes网络插件方法 | |
CN113947485A (zh) | 一种区块链可定制化系统 | |
US8266239B2 (en) | Remote services system relocatable mid level manager | |
CN111355658A (zh) | 基于分布式服务框架的sdn跨域协作方法 | |
CN115811546B (zh) | 用于科技服务实现网络协同分布式处理的系统及其方法 | |
CN114189274A (zh) | 一种基于微服务的卫星地面站监控系统 | |
CN111813503A (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 |