CN112333289A - 反向代理访问方法、装置、电子设备及存储介质 - Google Patents
反向代理访问方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112333289A CN112333289A CN202110005260.8A CN202110005260A CN112333289A CN 112333289 A CN112333289 A CN 112333289A CN 202110005260 A CN202110005260 A CN 202110005260A CN 112333289 A CN112333289 A CN 112333289A
- Authority
- CN
- China
- Prior art keywords
- access
- service
- access request
- micro
- reverse proxy
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/255—Maintenance or indexing of mapping tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Abstract
本发明实施例提出一种反向代理访问方法、装置、电子设备及存储介质,涉及计算机技术领域。其中,反向代理访问方法包括:接收第一微服务发送的第一访问请求;根据第一访问请求,进行服务发现,以获取到所述第一访问请求所指向的第二微服务的可选访问地址;基于所述可选访问地址,将所述第一访问请求转发给所述第二微服务,以便在接收到所述第二微服务反馈的第一响应数据的情况下,将所述第一响应数据反馈至所述第一微服务。有效解决不同团队开发的微服务之间的不兼容问题。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种反向代理访问方法、装置、电子设备及存储介质。
背景技术
目前互联网+时代的到来,互联网平台业务越发复杂。在如此复杂的业务需求下,平台往往会将业务拆分成不同的板块,这样不同板块可由不同的团队进行开发。然而,不同开发团队开发习惯不同、所用语言不同,造成不同板块之间程序代码之间不兼容,难以正常运行的问题。
发明内容
有鉴于此,本发明的目的在于提供一种反向代理访问方法、装置、电子设备及存储介质。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明提供一种反向代理访问方法,应用于容器管理平台中的反向代理侧,反向代理侧与所述容器管理平台中的微服务提供侧之间通信连接;微服务运行于所述微服务提供侧的多个容器中;所述反向代理访问方法包括:
接收第一微服务发送的第一访问请求;
根据所述第一访问请求,进行服务发现,以获取到所述第一访问请求所指向的第二微服务的可选访问地址;
基于所述可选访问地址,将所述第一访问请求转发给所述第二微服务,以便在接收到所述第二微服务反馈的第一响应数据的情况下,将所述第一响应数据反馈至所述第一微服务。
在可选的实施方式中,所述将所述第一访问请求转发给所述第二微服务的步骤包括:
利用预先配置的负载均衡规则,从所述第二微服务所对应的多个可选访问地址中选出目标访问地址;
通过所述目标访问地址将所述第一访问请求发送到所述第二微服务。
在可选的实施方式中,在接收到外界设备发送的第二访问请求的情况下,所述方法还包括:
针对所述第二访问请求进行准入判定;
若所述第二访问请求通过所述准入判定,则通过服务发现确定所述第二访问请求所指向的目标微服务;
将所述第二访问请求转发给所述目标微服务,以便在接收到所述目标微服务反馈的第二响应数据的情况下,将所述第二响应数据反馈至所述外界设备。
在可选的实施方式中,所述针对所述第二访问请求进行准入判定的步骤包括:
获取所述第二访问请求所对应的外界设备的设备标识;
基于所述设备标识及预置的权限列表,判定所述外界设备是否具有访问权限;
若所述外界设备具有访问权限,则查询所述外界设备的访问次数;
在所述访问次数超过预定值时,判定所述第二访问请求未通过准入判定;
在所述访问次数未超过预定值时,判定所述第二访问请求通过准入判定;
若所述外界设备不具有访问权限,则判定所述第二访问请求未通过准入判定。
在可选的实施方式中,所述预定值的获取方式为:
根据所述外界设备在权限列表中的对应的权限等级;
利用预设的权限等级与访问阈值之间的对应关系,获取所述外界设备所对应的目标访问阈值,以作为对应的所述预定值。
在可选的实施方式中,在判定通过所述准入判定的情况下,所述方法还包括:
将所述外界设备所对应的访问次数加一;
在持续指定时长内未接收到所述外界设备发出的第二访问请求的情况下,周期性地对所述外界设备所对应的访问次数进行减一处理,直至再次接收到所述外界设备发出的第二访问请求。
在可选的实施方式中,在接收到访问请求的情况下,所述方法还包括:
根据接收到的访问请求,生成预设格式的访问日志;
将所述访问日志进行存储,以便用户查询。
第二方面,本发明提供一种反向代理访问装置,应用于容器管理平台中的反向代理侧,反向代理侧与所述容器管理平台中的微服务提供侧之间通信连接;微服务运行于所述微服务提供侧的多个容器中;所述反向代理访问装置包括:
接收模块,用于接收第一微服务发送的第一访问请求;
发现模块,用于根据所述第一访问请求,进行服务发现,以获取到所述第一访问请求所指向的第二微服务的可选访问地址;
转发模块,用于基于所述可选访问地址,将所述第一访问请求转发给所述第二微服务,以便在接收到所述第二微服务反馈的第一响应数据的情况下,将所述第一响应数据反馈至所述第一微服务。
第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式任一所述的方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的方法。
与现有技术相比,本发明实施例提供的反向代理访问方法应用于容器管理平台中的反向代理侧,反向代理侧与所述容器管理平台中的微服务提供侧之间通信连接;微服务运行于所述微服务提供侧的多个容器中;所述反向代理访问方法在接收第一微服务发送的第一访问请求的情况下,根据第一访问请求,进行服务发现,以获取到所述第一访问请求所指向的第二微服务。将所述第一访问请求转发给所述第二微服务,以便在接收到所述第二微服务反馈的第一响应数据的情况下,将所述第一响应数据反馈至所述第一微服务。将容器与反向代理相结合,解决不同团队所负责编写的微服务之间不兼容的问题。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的应用场景示意图。
图2示出了本发明实施例提供的微服务提供侧的示例图。
图3示出了本发明实施例提供的电子设备的示意图。
图4示出了本发明实施例提供的反向代理访问方法的步骤流程图。
图5示出了本发明实施例提供的反向代理访问方法的步骤流程图的另一部分。
图6示出了本发明实施例提供的反向代理访问方法的步骤流程图的另一部分。
图7示出了本发明实施例提供的反向代理访问装置的示意图。
图标:100-电子设备;200-外界设备;300-微服务提供侧;110-存储器;120-处理器;130-通信模块;400-反向代理访问装置;401-接收模块;402-发现模块;403-转发模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
目前互联网+时代的到来,互联网平台业务越发复杂。以淘宝网为例,囊括了货品展示与购买、直播、用户画像、社交等功能。在如此复杂的业务需求下,平台往往会将业务拆分成不同的板块,这样不同板块可由不同的团队进行开发。
然而,不同团队所开发的业务板块之间由于代码编写习惯、编写语言之间的差异,存在不兼容的问题。
在此情况下,微服务架构应运而生,改善不同业务模块之间不兼容的问题。目前的微服务架构基本都是基于rpc协议,rpc协议往往需要定义统一的调用接口。这样在具有大量微服务的架构中,就需要同步大量的接口定义,这是一个容易出错且工作量巨大的过程。且rpc协议由于采用了强分布式系统,维护困难。
为了改善上述问题,本发明实施例提供了一种反向代理访问方法、装置、电子设备及存储介质。
图1示出了本发明实施例提供的反向代理访问方法的应用场景图。图1中容器管理平台分为反向代理侧与微服务提供侧300,二者之间可以进行数据交互,外界设备200可以通过反向代理侧访问微服务提供侧300。可以理解地,上述容器管理平台可以提供多个容器。容器包括用于运行服务所对应的程序段。具体而言,容器可以理解为划分出的运行资源组,不同容器之间彼此孤立。可理解地,有效的将单个操作系统的资源划分到孤立的组中,以便更好地在孤立的组之间平衡有冲突的资源使用需求,这种技术就是容器技术。不同团队所开发的实现特定功能的业务模块程序代码(比如,微服务)运行于不同的容器,以避免不兼容对单个微服务正常所造成的影响。
此外,根据所运行的服务区别,可以对不同容器进行划分。比如,可以将用于运行反向代理相关服务的容器归为反向代理侧,可以将用于运行微服务的容器归为微服务提供侧300。
上述微服务提供侧300所对应的容器运行过程中能够提供相关的微服务。从物理层面上看,微服务提供侧300可以部署于分布式计算机系统上。
在一些实施例中,分布式计算机系统包括多台分布式部署的计算机。每台计算机都可以设置至少一个容器。同一台计算机设备可以部署有运行部分微服务的容器,也可以部署有运行所有微服务(微服务提供侧300可提供的所有微服务)的多个容器。不同计算机设备上也可以部署有运行相同微服务的容器。比如图2所示,微服务提供侧300可以提供微服务a、微服务b、微服务c和微服务d。微服务提供侧300中的计算机1上可以部署有运行微服务a、微服务b的容器,计算机2上可以部署有运行微服务a、微服务c的容器,计算机3上可以部署有运行微服务a、微服务b的容器,计算机4上可以部署有运行微服务a、微服务b、微服务c和微服务d的容器。
上述反向代理侧从物理层面上,可以是一台部署有容器的电子设备100,也可以是由多台部署有容器的电子设备100组成的服务集群。可以理解地,与反向代理相关的服务可以包括准入控制服务、日志存储服务、服务发现服务、负载均衡服务及可视化管理服务。与反向代理相关的服务在多台电子设备上的部署原理与微服务提供侧300的微服务在分布式部署的计算机上的部署原理类似,在此不再赘述。
请参照图3,上述电子设备100的方框示意图。所述电子设备100包括存储器110、处理器120及通信模块130。所述存储器110、处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器110(Random Access Memory,RAM),只读存储器110(Read Only Memory,ROM),可编程只读存储器110(Programmable Read-Only Memory,PROM),可擦除只读存储器110(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器110(ElectricErasable Programmable Read-Only Memory,EEPROM)等。
处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。
通信模块130用于通过所述网络建立所述服务器与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图3所示的结构仅为服务器的结构示意图,所述服务器还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。
请参考图4,图4示出了本发明实施例提供的一种反向代理访问方法。上述反向代理访问方法应用于反向代理侧。如图4所示,上述反向代理访问方法可以包括以下步骤:
步骤S101,接收第一微服务发送的第一访问请求。
在一些实施例中,上述第一微服务属于微服务提供侧300所提供的微服务。可以理解地,上述第一微服务是微服务300提供侧中微服务运行过程中产生访问需求的微服务。
上述微服务提供侧300运行过程中,若微服务中出现第一微服务,那么部署了运行该第一微服务的容器的设备会生成一个第一访问请求。并将该第一访问请求发送给反向代理侧。
上述第一访问请求中携带有所需访问的微服务的特征信息,比如微服务的名称。可选地,上述第一访问请求也可以携带有第一微服务的特征信息,以便所访问的微服务知悉访问者,以及方便反向代理侧进行访问管制(也即,反向代理侧运行准入控制服务实现访问管制)。
在一些实施例中,反向代理侧可以接收微服务提供侧300中所有设备发出的第一访问请求。
在一些实施例中,为了提供处理访问请求的效率,反向代理侧可以是由多个电子设备100组成的服务集群。通常服务集群中每一台电子设备100都具有反向代理侧的所有功能(也即,具有运行准入控制服务、日志存储服务、服务发现服务、负载均衡服务及可视化管理服务等的容器)。因此,可以通过预设的负载均衡机制,从服务集群中选出用于接收并处理第一访问请求的电子设备100。从而,由选出的电子设备100接收上述第一访问请求。
在一些实施例中,负载均衡机制可以是轮询机制。也即,将服务集群中的电子设备100排序,然后依次选用各个电子设备100进行访问请求的接收和处理。
在一些实施例中,上述负载均衡机制还可以是运行负载机制。也即,面对每一个访问请求时,获取服务集群中所有电子设备100的实时运行负载,将实时运行负载最低的电子设备100确定为被选出的电子设备100。
步骤S102,根据第一访问请求,进行服务发现,以获取到第一访问请求所指向的第二微服务的可选访问地址。
上述服务发现可以理解为根据微服务的特征信息获取微服务的访问地址的过程。在一些实施例中,反向代理侧运行服务发现服务实现服务发现功能。
上述第二微服务也属于微服务提供侧300所提供的微服务之一。上述第二微服务一方面是不同于第一微服务的微服务,另一方面,第二微服务为第一微服务所需访问的微服务。
在一些实施例中,基于第一访问请求中携带的特征信息(比如,微服务名称),以便进行第二微服务的可选地址发现。
在一些实施例中,如果第二微服务只部署在一台计算机上,那么发现的可选访问地址便有一个。如果第二微服务部署在多台计算机上,那么发现的可选访问地址便可以有多个。
此外,该服务发现可以通过不同的形式完成,如DCOS、Kubernetes平台自带的服务发现服务,再比如,通过代码编写出该服务发现功能。
步骤S103,将第一访问请求转发给第二微服务,以便在接收到第二微服务反馈的第一响应数据的情况下,将第一响应数据反馈至第一微服务。
在一些实施例中,可以是从可选访问地址中确定一个目标访问地址,并将第一访问请求发处。如果只获取到一个可选访问地址,那么就将该可选访问地址确定为目标访问地址。如果获取到多个可选访问地址,那么可以从多个可选访问地址中随机选择一个访问地址作为目标访问地址。
在另一些实施例中,还可以是利用预先配置的负载均衡规则,从第二微服务所对应的多个可选访问地址中选出目标访问地址。比如,反向代理侧可以运行负载均衡服务实现。
在一些实施例中,上述负载均衡规则可以是轮询机制。也就是,将第二微服务所对应的多个可选访问地址进行排序,然后依序从排序后的可选访问地址中选出目标访问地址。
在另一些实施例中,上述负载均衡规则还可以是运行负载机制。也就是,通过查询各个可选访问地址对应的计算机的运行负载,选择对应的运行负载最低的可选访问地址作为目标访问地址。
此外,如前所述第二微服务所对应的负载均衡机制可以是预先配置的。能够理解地,可以预先为每一个微服务设定对应的负载均衡机制,如此,当微服务被确定为第二微服务时,则可以按照对应的负载均衡机制选择用于实现访问该第二微服务的目标访问地址。
在一些实施例中,可以使所有的微服务所对应的负载均衡机制都相同。
在另一些实施例中,可以根据微服务的特点,为微服务选择适合的负载均衡机制。如此,就可能出现不同的微服务所使用的负载均衡机制不同。比如,被访问频率较高的微服务选择运行负载机制,被访问频率较低的微服务则选择轮询机制。
在获取到目标访问地址之后,可以通过目标访问地址将第一访问请求发送到第二微服务。
如此,第二微服务在获得第一访问请求后便可以根据第一访问请求生成对应的第一响应数据,并将第一响应数据经由反向代理侧反馈给第一微服务。
可见,本发明实施例所提供的反向代理访问方法,一方面利用容器技术,使不同微服务即便是代码不兼容也能独立运行。另一方面,借助反向代理侧,无需为各个微服务定义大量调用接口,也可以实现不同微服务之间的数据交互,减少定义接口和同步接口的工作量,也避免了出错。提高运行的可靠性。
不难理解地,反向代理侧不仅可以处理不同微服务间的访问需求,还可以处理外界设备200对微服务的访问需求。因此,如图5所示,上述反向代理访问方法还可以包括以下步骤:
步骤S201,在接收到外界设备200发送的第二访问请求的情况下,针对第二访问请求进行准入判定。
上述第二访问请求为外界设备200创建的需要访问微服务的访问请求。外界设备200需要将第二访问请求先发送给微服务。
上述第二访问请求中携带有所需访问的微服务的特征信息(比如,微服务名称)。此外,第二访问请求中还携带有外界设备200的设备标识。上述设备标识可以是以字符形态呈现,且能够唯一表征该外界设备200。
在一些实施例中,为了提高处理访问请求的效率,反向代理侧可以是由多个电子设备100组成的服务集群。然后,可以通过预设的负载均衡机制,从服务集群中选出用于接收并处理第二访问请求的电子设备100。从而,由选出的电子设备100接收上述第二访问请求。
在一些实施例中,负载均衡机制可以是轮询机制。也即,将服务集群中的电子设备100排序,然后依次选用各个电子设备100进行访问请求的接收和处理。
在一些实施例中,上述负载均衡机制还可以是可用资源选择机制。也即,面对每一个第二访问请求,获取所有电子设备100的实时可用系统资源,将实时可用系统资源最高的电子设备100确定为被选出的电子设备100。
在一些实施例中,反向代理侧接收到第二访问请求后,可以从权限和行为两个方向进行准入判定。上述准入判定可以理解为是否为第二访问请求是否可以被受理。比如,反向代理侧运行准入控制服务实现准入判定。
作为一种实施方式,针对第二访问请求进行准入判定可以是:获取第二访问请求所对应的外界设备200的设备标识。基于设备标识及预置的权限列表,判定外界设备200是否具有访问权限。
上述预置的权限列表可用于查询外界设备200的访问权限。比如,权限列表对应着一个设备注册白名单和设备黑名单,设备标识未出现在设备注册名单和设备黑名单中的外界设备200对应的访问权限是游客权限。设备标识出现在设备注册名单中且有管理权限标识的外界设备200所对应的访问权限是管理权限。设备标识出现在设备注册名单中且无特别权限标识的外界设备200所对应的访问权限是普通权限。设备标识出现在设备黑名单中的外界设备200所对应的访问权限是无权限。
基于以上,在一些实施例中,上述判定外界设备200是否具有访问权限:可以是将设备标识分别与权限列表所对应的设备注册名单和设备黑名单中记录的设备标识进行比较,利用比较结果判定是否通过准入判定。需要说明的是,在判定设备标识对应着无权限时,则为没有通过准入判定。
作为另一种实施方式,针对第二访问请求进行准入判定可以是:查询外界设备200的访问次数。在访问次数超过预定值时,判定第二访问请求未通过准入判定。在访问次数未超过预定值时,判定第二访问请求通过准入判定。
在一些实施例中,上述外界设备200的访问次数是可以被更新的。通常在判定通过准入判定的情况下,将该外界设备200所对应的访问次数加一。具体地,在反向代理侧中,将外界设备200的设备标识和加一后得到的新访问次数对应存储,以便下次查询。在持续指定时长内未接收到外界设备200发出的第二访问请求的情况下,周期性地对外界设备200所对应的访问次数进行减一处理,直至再次接收到外界设备200发出的第二访问请求。同样的,每个周期内未即受到同一外界设备200发送的第二访问请求,那么将外界设备200的设备标识和减一后得到的新访问次数对应存储,以便下次查询。比如,反向代理侧中被记录外界设备a所对应的访问次数是10次,如果距离最近一次接收到外界设备a发出的第二访问请求超过10分钟,那么将外界设备a对应的访问次数更新为9次,在更新之后的下一10分钟内如果依然没有接收到外界设备a发出的第二访问请求,那么将外界设备a对应的访问次数更新为8次,如此循环,至少再次接收到外界设备a所发送的第二访问请求。
在一些实施例中,上述预定值可以不是一个固定值,而是根据对应的外界设备200的权限所确定出的数值。也即,获取设定值的方式可以是:根据外界设备200在权限列表中的对应的权限等级。在此,判定外界设备200的权限等级的原理同利用权限列表进行准入判定的过程中识别权限的原理相同,在此不再赘述。利用预设的权限等级与访问阈值之间的对应关系,获取外界设备200所对应的目标访问阈值,以作为对应的预定值。比如,游客权限对应的访问阈值是10次,管理权限对应的访问阈值是50次,无权限对应的访问阈值是0次,普通权限对应的访问阈值是20次。
再一种实现方式,可以是将上述两种方式相结合,也即,获取第二访问请求所对应的外界设备200的设备标识。基于所述设备标识及预置的权限列表,判定所述外界设备200是否具有访问权限。若所述外界设备200具有访问权限,则查询所述外界设备200的访问次数。在所述访问次数超过预定值时,判定所述第二访问请求未通过准入判定。在所述访问次数未超过预定值时,判定所述第二访问请求通过准入判定。若所述外界设备200不具有访问权限,则判定所述第二访问请求未通过准入判定。
步骤S202,若第二访问请求通过准入判定,则通过服务发现确定第二访问请求所指向的目标微服务。
在一些实施例中,上述目标微服务是外界设备200所需访问的微服务。简单地说,目标微服务对于外界设备200而言,相当于第二微服务对于第一微服务。此外,上述步骤S202的原理与步骤S102相同,在此不再赘述。
步骤S203,将第二访问请求转发给目标微服务,以便在接收到目标微服务反馈的第二响应数据的情况下,将所述第二响应数据反馈至所述外界设备200。
在一些实施例中,上述步骤S203的原理与步骤S103相同,在此不再赘述。
在一些实施例中,如图6所示,上述反向代理访问方法还包括步骤:
步骤S301,根据接收到的访问请求,生成预设格式的访问日志。
在一些实施例中,将收到的访问请求(包括第一访问请求和第二访问请求)进行标准化处理,生成统一格式(也即预设格式)的访问日志。
步骤S302,将访问日志进行存储,以便用户查询。
比如,反向代理侧运行日志存储服务实现访问日志的存储。在一些实施例中,上述反向代理侧还可以运行可视化管理服务驱动可视化单元进行显示,比如,显示屏幕。上述可视化单元可以协助用户通过反向代理侧查询已存在额访问日志,以便为用户调整管控策略或者识别恶意外界设备200提供有效的参考信息。
总体而言,本发明实施例提供的反向代理访问方法,通过反向代理侧实现了多协议的微服务的管理、协调,提供了准入判定、日志存储、访问控制、服务发现等功能。如此,每个微服务就不再需要实现这些功能,减小工作量。另外,利用服务发现的方式实现了微服务之间访问,确保代码的0侵入性,加快开发速度,提高兼容性。最后,核心配置代码集中,便于管理与维护。
此外,需要说明的是,反向代理侧中的准入控制服务、日志存储服务、服务发现服务及可视化管理服务之间的运行顺序并不做限定,不同的服务可以根据需求被运行。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种反向代理访问装置400的实现方式,可选地,该反向代理访问装置400可以采用上述图3所示的电子设备100的器件结构。进一步地,请参阅图7,图7为本发明实施例提供的一种反向代理访问装置400的功能模块图。需要说明的是,本实施例所提供的反向代理访问装置400,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该反向代理访问装置400包括:接收模块401、发现模块402及转发模块403。
接收模块401,用于接收第一微服务发送的第一访问请求。
在一些实施例中,上述步骤S101可以由接收模块401执行。
发现模块402,用于根据所述第一访问请求,进行服务发现,以获取到所述第一访问请求所指向的第二微服务的可选访问地址。
在一些实施例中,上述步骤S102可以由发现模块402执行。
转发模块403,用于基于所述可选访问地址,将所述第一访问请求转发给所述第二微服务,以便在接收到所述第二微服务反馈的第一响应数据的情况下,将所述第一响应数据反馈至所述第一微服务。
在一些实施例中,上述步骤S103可以由转发模块403执行。
在一些实施例中,上述转发模块403具体用于:利用预先配置的负载均衡规则,从所述第二微服务所对应的多个可选访问地址中选出目标访问地址;通过所述目标访问地址将所述第一访问请求发送到所述第二微服务。
在一些实施例中,上述反向代理访问装置400还包括:
判定模块,用于在接收到外界设备200发送的第二访问请求的情况下,针对所述第二访问请求进行准入判定。
在一些实施例中,上述步骤S201可以由判定模块执行。
上述发现模块402,还用于若所述第二访问请求通过所述准入判定,则通过服务发现确定所述第二访问请求所指向的目标微服务。
在一些实施例中,上述步骤S202可以由发现模块402执行。
上述转发模块403,还用于将所述第二访问请求转发给所述目标微服务,以便在接收到所述目标微服务反馈的第二响应数据的情况下,将所述第二响应数据反馈至所述外界设备200。
在一些实施例中,上述步骤S203可以由转发模块403执行。
在一些实施例中,上述判定模块具体用于:
获取所述第二访问请求所对应的外界设备200的设备标识;
基于所述设备标识及预置的权限列表,判定所述外界设备200是否具有访问权限;
若所述外界设备200具有访问权限,则查询所述外界设备200的访问次数;
在所述访问次数超过预定值时,判定所述第二访问请求未通过准入判定;
在所述访问次数未超过预定值时,判定所述第二访问请求通过准入判定;
若所述外界设备200不具有访问权限,则判定所述第二访问请求未通过准入判定。
在一些实施例中,上述反向代理访问装置400还包括:
更新模块,用于在判定通过所述准入判定的情况下,将所述外界设备200所对应的访问次数加一。
更新模块,还用于在持续指定时长内未接收到所述外界设备200发出的第二访问请求的情况下,周期性地对所述外界设备200所对应的访问次数进行减一处理,直至再次接收到所述外界设备200发出的第二访问请求。
在一些实施例中,上述反向代理访问模块还包括:
日志生成模块,用于根据接收到的访问请求,生成预设格式的访问日志。
在一些实施例中,上述步骤S301可以由日志生成模块执行。
存储模块,用于将所述访问日志进行存储,以便用户查询。
在一些实施例中,上述步骤S302可以由存储模块执行。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图3所示的存储器110中或固化于该电子设备100的操作系统(Operating System,OS)中,并可由图3中的处理器120执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器110中。
综上所述,本发明实施例提供的反向代理访问方法、装置、电子设备及存储介质,其中,上述反向代理访问方法应用于反向代理侧,所述反向代理访问方法包括:接收第一微服务发送的第一访问请求;根据所述第一访问请求,进行服务发现,以获取到所述第一访问请求所指向的第二微服务的可选访问地址;基于所述可选访问地址,将所述第一访问请求转发给所述第二微服务,以便在接收到所述第二微服务反馈的第一响应数据的情况下,将所述第一响应数据反馈至所述第一微服务。兼容多个微服务的同时,减少配置微服务的工作量。另外,微服务之间访问,实现代码的0侵入性,加快开发速度,提高兼容性。最后,核心配置代码集中,便于管理与维护。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种反向代理访问方法,其特征在于,应用于容器管理平台中的反向代理侧,反向代理侧与所述容器管理平台中的微服务提供侧之间通信连接;微服务运行于所述微服务提供侧的多个容器中;所述反向代理访问方法包括:
接收第一微服务发送的第一访问请求;
根据所述第一访问请求,进行服务发现,以获取到所述第一访问请求所指向的第二微服务的可选访问地址;
基于所述可选访问地址,将所述第一访问请求转发给所述第二微服务,以便在接收到所述第二微服务反馈的第一响应数据的情况下,将所述第一响应数据反馈至所述第一微服务。
2.根据权利要求1所述的反向代理访问方法,其特征在于,所述将所述第一访问请求转发给所述第二微服务的步骤包括:
利用预先配置的负载均衡规则,从所述第二微服务所对应的多个可选访问地址中选出目标访问地址;
通过所述目标访问地址将所述第一访问请求发送到所述第二微服务。
3.根据权利要求1所述的反向代理访问方法,其特征在于,在接收到外界设备发送的第二访问请求的情况下,所述方法还包括:
针对所述第二访问请求进行准入判定;
若所述第二访问请求通过所述准入判定,则通过服务发现确定所述第二访问请求所指向的目标微服务;
将所述第二访问请求转发给所述目标微服务,以便在接收到所述目标微服务反馈的第二响应数据的情况下,将所述第二响应数据反馈至所述外界设备。
4.根据权利要求3所述的反向代理访问方法,其特征在于,所述针对所述第二访问请求进行准入判定的步骤包括:
获取所述第二访问请求所对应的外界设备的设备标识;
基于所述设备标识及预置的权限列表,判定所述外界设备是否具有访问权限;
若所述外界设备具有访问权限,则查询所述外界设备的访问次数;
在所述访问次数超过预定值时,判定所述第二访问请求未通过准入判定;
在所述访问次数未超过预定值时,判定所述第二访问请求通过准入判定;
若所述外界设备不具有访问权限,则判定所述第二访问请求未通过准入判定。
5.根据权利要求4所述的反向代理访问方法,其特征在于,所述预定值的获取方式为:
根据所述外界设备在权限列表中的对应的权限等级;
利用预设的权限等级与访问阈值之间的对应关系,获取所述外界设备所对应的目标访问阈值,以作为对应的所述预定值。
6.根据权利要求4所述的反向代理访问方法,其特征在于,在判定通过所述准入判定的情况下,所述方法还包括:
将所述外界设备所对应的访问次数加一;
在持续指定时长内未接收到所述外界设备发出的第二访问请求的情况下,周期性地对所述外界设备所对应的访问次数进行减一处理,直至再次接收到所述外界设备发出的第二访问请求。
7.根据权利要求1或3所述的反向代理访问方法,其特征在于,在接收到访问请求的情况下,所述方法还包括:
根据接收到的访问请求,生成预设格式的访问日志;
将所述访问日志进行存储,以便用户查询。
8.一种反向代理访问装置,其特征在于,应用于容器管理平台中的反向代理侧,反向代理侧与所述容器管理平台中的微服务提供侧之间通信连接;微服务运行于所述微服务提供侧的多个容器中;所述反向代理访问装置包括:
接收模块,用于接收第一微服务发送的第一访问请求;
发现模块,用于根据所述第一访问请求,进行服务发现,以获取到所述第一访问请求所指向的第二微服务的可选访问地址;
转发模块,用于基于所述可选访问地址,将所述第一访问请求转发给所述第二微服务,以便在接收到所述第二微服务反馈的第一响应数据的情况下,将所述第一响应数据反馈至所述第一微服务。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110005260.8A CN112333289A (zh) | 2021-01-05 | 2021-01-05 | 反向代理访问方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110005260.8A CN112333289A (zh) | 2021-01-05 | 2021-01-05 | 反向代理访问方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112333289A true CN112333289A (zh) | 2021-02-05 |
Family
ID=74302185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110005260.8A Pending CN112333289A (zh) | 2021-01-05 | 2021-01-05 | 反向代理访问方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112333289A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065120A (zh) * | 2021-03-31 | 2021-07-02 | 上海安畅网络科技股份有限公司 | 接口调用鉴权方法、装置、电子设备及可读存储介质 |
CN113992738A (zh) * | 2021-09-02 | 2022-01-28 | 深圳市高腾科技服务有限公司 | 基于微服务网关的反向代理方法、装置、设备及存储介质 |
CN114205414A (zh) * | 2021-12-06 | 2022-03-18 | 百度在线网络技术(北京)有限公司 | 基于服务网格的数据处理方法、装置、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111511A (zh) * | 2017-12-20 | 2018-06-01 | 杭州云屏科技有限公司 | 一种分享文件访问方法、装置、设备及存储介质 |
CN111290865A (zh) * | 2020-02-10 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种服务调用方法、装置、电子设备和存储介质 |
CN111460460A (zh) * | 2020-04-02 | 2020-07-28 | 北京金山云网络技术有限公司 | 任务访问方法、装置、代理服务器及机器可读存储介质 |
-
2021
- 2021-01-05 CN CN202110005260.8A patent/CN112333289A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111511A (zh) * | 2017-12-20 | 2018-06-01 | 杭州云屏科技有限公司 | 一种分享文件访问方法、装置、设备及存储介质 |
CN111290865A (zh) * | 2020-02-10 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 一种服务调用方法、装置、电子设备和存储介质 |
CN111460460A (zh) * | 2020-04-02 | 2020-07-28 | 北京金山云网络技术有限公司 | 任务访问方法、装置、代理服务器及机器可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065120A (zh) * | 2021-03-31 | 2021-07-02 | 上海安畅网络科技股份有限公司 | 接口调用鉴权方法、装置、电子设备及可读存储介质 |
CN113065120B (zh) * | 2021-03-31 | 2022-12-13 | 上海安畅网络科技股份有限公司 | 接口调用鉴权方法、装置、电子设备及可读存储介质 |
CN113992738A (zh) * | 2021-09-02 | 2022-01-28 | 深圳市高腾科技服务有限公司 | 基于微服务网关的反向代理方法、装置、设备及存储介质 |
CN114205414A (zh) * | 2021-12-06 | 2022-03-18 | 百度在线网络技术(北京)有限公司 | 基于服务网格的数据处理方法、装置、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9501345B1 (en) | Method and system for creating enriched log data | |
CN112333289A (zh) | 反向代理访问方法、装置、电子设备及存储介质 | |
US20170331862A1 (en) | Method for accessing cloud service and access device | |
JP7026216B2 (ja) | 仮想マシン管理 | |
US11095648B2 (en) | Dashboard as remote computing services | |
CN107111510B (zh) | 一种针对vnf包进行操作的方法及装置 | |
CN109618176B (zh) | 一种直播业务的处理方法、设备和存储介质 | |
CN109246201B (zh) | 云资源交付方法、处理器以及存储介质 | |
CN110661670A (zh) | 一种网络设备配置管理方法及装置 | |
US10547496B2 (en) | Automatic network management system and methods | |
CN105095023A (zh) | 一种云主机创建装置、方法和计算设备 | |
CN113810230A (zh) | 对容器集群中的容器进行网络配置的方法、装置及系统 | |
CN107665141B (zh) | 一种数据库配置方法及其设备 | |
EP3685265A1 (en) | Geographic location based computing asset provisioning in distributed computing systems | |
US20210281637A1 (en) | Management for a load balancer cluster | |
CN111010342A (zh) | 一种分布式负载均衡实现方法及装置 | |
CN113254165B (zh) | 虚拟机和容器的负载流量分配方法、装置及计算机设备 | |
CN113315853B (zh) | 一种云防护节点调度方法、系统及存储介质 | |
CN115883310A (zh) | 服务部署方法、服务部署系统、电子设备及存储介质 | |
CN110636149B (zh) | 远程访问方法、装置、路由器及存储介质 | |
CN112714166A (zh) | 分布式存储系统的多集群管理方法及装置 | |
JP2015022501A (ja) | 構築装置、構築方法、及び構築プログラム | |
US20200267230A1 (en) | Tracking client sessions in publish and subscribe systems using a shared repository | |
US10924575B2 (en) | Automatic network management system and methods | |
US20210281602A1 (en) | Generating action recommendations for courses of action used for incident response |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210205 |