CN109120717A - 反向代理方法、装置及存储介质、分布式系统 - Google Patents
反向代理方法、装置及存储介质、分布式系统 Download PDFInfo
- Publication number
- CN109120717A CN109120717A CN201811126667.0A CN201811126667A CN109120717A CN 109120717 A CN109120717 A CN 109120717A CN 201811126667 A CN201811126667 A CN 201811126667A CN 109120717 A CN109120717 A CN 109120717A
- Authority
- CN
- China
- Prior art keywords
- server
- information
- reverse proxy
- access request
- system registry
- 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
Links
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
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种反向代理方法、装置及存储介质、分布式系统,所述方法包括:反向代理网关接收实时更新的系统注册中心的信息;所述反向代理网关为反向代理后端节点服务器的网关,所述系统注册中心的信息包括各个所述后端节点服务器的状态信息;根据所述接收的信息,更新本反向代理网关内置的系统注册中心的信息;当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求;接收所述对应的后端节点服务器根据所述访问请求反馈的结果,将该反馈的结果发送给所述访问请求的发送方。上述方法提供适应系统后端节点服务器状态变化而自动操作的反向代理方法,无需人工手动操作,解放运维人力。
Description
技术领域
本发明涉及反向代理技术领域,具体而言,本发明涉及一种反向代理方法、装置及存储介质、分布式系统。
背景技术
反向代理(Reverse Proxy)方式是指反向代理服务器(或者反向代理网关等)接受网络的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给网络上请求连接的客户端。
分布式系统架构中,设置有接入网关层。接入网关层的接入网关用于处理网络请求接入、安全验证以及流量控制等。同时,接入网关也可用于反向代理后端内部网络的多个服务器。但是,传统的接入网关在用于反向代理后端的服务器时,通常采用人工手动接入网关层。如手动增加后端服务器的节点信息,根据后端代理服务器是否处于异常状态等信息手动调整接入的后端代理服务器。当接入网关层发生变更,或者是后端节点服务器发生变更时,必须人工处理相应的变化,不仅操作繁琐,而且消耗大量的人工运维。
发明内容
本发明提出一种反向代理方法、装置及存储介质、分布式系统,以提供适应系统后端节点服务器状态变化而自动操作的反向代理方法,无需人工手动操作,解放运维人力。
本发明提供以下方案:
一种基于分布式系统的反向代理方法,包括:反向代理网关接收实时更新的系统注册中心的信息;所述反向代理网关为反向代理后端节点服务器的网关,所述系统注册中心的信息包括各个所述后端节点服务器的状态信息;根据所述接收的信息,更新本反向代理网关内置的系统注册中心的信息;当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求;接收所述对应的后端节点服务器根据所述访问请求反馈的结果,将该反馈的结果发送给所述访问请求的发送方。
在其中一个实施例中,所述反向代理网关接收实时更新的系统注册中心的信息,包括:所述反向代理网关按照预设的监测周期监控所述系统注册中心;若监测到所述系统注册中心的信息进行了更新,接收所述系统注册中心更新后的信息;
在其中一个实施例中,所述若监测到所述系统注册中心的信息进行了更新,接收所述系统注册中心更新后的信息,包括所述反向代理网关周期性轮询访问所述系统注册中心,确认监测到所述系统注册中心的信息进行了更新时,接收所述系统注册中心更新后的信息。
在其中一个实施例中,所述后端节点服务器的状态信息包括服务器的负载状态;所述当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求,包括:当接收到访问请求时,根据所述内置的系统注册中心的信息,确定所述访问请求对应采用负载均衡技术的由若干个后端节点服务器组成的服务器组;根据所述服务器的负载状态从所述服务器组中选取预设数量的后端节点服务器,向所述预设数量的后端节点服务器转发所述访问请求。
在其中一个实施例中,所述更新本反向代理网关内置的系统注册中心的信息之前,还包括:缓存所述内置的系统注册中心的信息的历史数据;所述根据所述服务器的负载状态从所述服务器组中选取预设数量的后端节点服务器后端节点服务器,包括:从缓存的所述历史数据中,获取所述服务器组中每个后端节点服务器以当前时间点为终点的第一预置时间段的负载状态;从所述服务器组中剔除在第二预置时间段,累加时长内没有接收到所述负载状态的后端节点服务器;从所述服务器组中剔除第三预置时间段内,所述负载状态的平均值大于预置值的后端节点服务器;从剔除后的服务器组中根据所述负载状态选取预设数量的后端节点服务器。
在其中一个实施例中,所述后端节点服务器的状态信息包括新增服务器节点信息以及无异常状态服务器节点信息;所述当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求,包括:当接收到所述访问请求时,根据所述新增服务器节点信息判断所述后端节点服务器中是否包含新增节点服务器;若是,则向所述新增节点服务器转发所述访问请求;若否,根据所述无异常状态服务器节点信息判断所述后端节点服务器中是否包含无异常状态的节点服务器,若是,向该节点服务器转发所述访问请求;若否,向所述访问请求的发送方发送请求连接异常信息。
在其中一个实施例中,所述反向代理网关接收实时更新的系统注册中心的信息之前,还包括:控制所述反向代理网关以及所述后端节点服务器以分布式部署架构连接形式接入到所述系统注册中心,并控制所述分布式部署架构的可用性达到预设值。
一种基于分布式系统的反向代理装置,包括:接入模块,用于反向代理网关接收实时更新的系统注册中心的信息;所述反向代理网关为反向代理后端节点服务器的网关,所述系统注册中心的信息包括各个所述后端节点服务器的状态信息;更新模块,用于根据所述接收的信息,更新本反向代理网关内置的系统注册中心的信息;转发模块,用于当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求;发送模块,用于接收所述对应的后端节点服务器根据所述访问请求反馈的结果,将该反馈的结果发送给所述访问请求的发送方。
一种存储介质,其上存储有计算机程序;所述计算机程序适于由处理器加载并执行上述任一实施例所述的基于分布式系统的反向代理方法。
一种分布式系统,所述系统包括反向代理网关以及后端节点服务器;所述反向代理网关根据上述任一实施例所述的基于分布式系统的反向代理方法,反向代理所述后端节点服务器。
上述实施例提供的反向代理方法,在反向代理网关中内置系统注册中心的信息,并实时更新系统注册中心的信息。反向代理网关可通过系统注册中心的信息判断后端节点服务器上线、下线以及网络异常等状态,根据系统注册中心中各个后端节点服务器的状态信息,自动选取最优的后端节点服务器,并将客户端的访问请求发送给最优的后端节点服务器。该反向代理方法中,后端节点服务器信息无需人工添加或删除,可直接从系统注册中心中读取,从而解放运维人力。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一实施例提供的反向代理中服务器群组与客户端之间的交互示意图;
图2为本发明提供的一种基于分布式系统的反向代理方法的一实施例中的方法流程图;
图3为本发明提供的一种基于分布式系统的反向代理方法的另一实施例中的方法流程图;
图4为本发明提供的一种基于分布式系统的反向代理方法的又一实施例中的方法流程图;
图5为本发明提供的一种基于分布式系统的反向代理方法的一实施例中的部分方法流程图;
图6为本发明提供的一种基于分布式系统的反向代理方法的又一实施例中的部分方法流程图;
图7为本发明提供的一种基于分布式系统的反向代理装置的一实施例中的结构框图;
图8为本发明提供的一种分布式系统的一实施例中的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式,这里使用的“第一”、“第二”仅用于区别同一技术特征,并不对该技术特征的顺序和数量等加以限定。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本发明提供的一种基于分布式系统的反向代理方法,以为分布式系统中用于反向代理后端节点服务器的反向代理网关提供自动化的反向代理方法。以下先对本发明所述反向代理进行先导性说明:
反向代理:指的是代理服务器或者代理网关,接收外部网络的客户端发送的连接请求时,将该连接请求转发给内部网络的目标服务器。同时,将目标服务器的反馈结果发送给发起连接请求的外部客户端。此时,代理服务器或者代理网关对外表现为一个服务器,该服务器能够代理外部网络的客户端访问内部网络。外部网络在访问代理服务器或者代理网关时,无需特定的配置。同时,代理服务器或者代理网关不保存任何的真实数据,所有的程序以及真实数据均保存在内部服务器。因此,外部网络对反向代理服务器或者代理网关的攻击,不会使得内部网络服务器的数据信息泄露,增强内部服务器数据信息的安全性。
如图1所示,外部网络的终端100包括多个终端机,每个终端机安装相应的客户端。当任一客户端向网络200发起访问的连接请求时,网络200将该连接请求发送到反向代理服务器300。反向代理服务器300将该连接请求发送到内部网络的服务器群400。服务器群400包括多个服务器。多个服务器可以是同类型的服务器或不同类型的服务器,或者部分相同的服务器。如图1所示,服务器群400可包括web服务器410,数据库服务器420,文件服务器430等。代理服务器300根据网络200发送的连接请求的请求类型,将该请求转发到web服务器410,数据库服务器420,文件服务器430中任一服务器。反向代理服务器300可根据网络200中的连接请求将该请求转发给内部网络中的web服务器410,数据库服务器420或文件服务器430。
本发明提供的一种基于分布式系统的反向代理方法,应用于分布式结构的系统中。在一实施例中,如图2所示,该反向代理方法包括以下步骤:
S100,反向代理网关接收实时更新的系统注册中心的信息;所述反向代理网关为反向代理后端节点服务器的网关,所述系统注册中心的信息包括各个所述后端节点服务器的状态信息。
在本实施例中,反向代理网关为系统中用于反向代理的网关,反向代理系统内部网络中的多个后端节点服务器。系统注册中心记录了系统中服务和服务地址的映射关系。尤其在分布式架构系统中,当服务需要调用其它服务时,在系统注册中心中调取其他服务的地址以进行调用。此外,系统注册中心还记录系统中各个服务的状态信息,如服务注册信息、服务宕机信息、服务扩展信息、服务异常信息、服务路由信息等。其中,本实施例所述的系统可以是分布式架构的系统。在系统中,反向代理网关以及其后端节点服务器同时接入系统的注册中心。注册中心随时监控反向代理网关以及其后端节点服务器的状态。
该实施例所述的反向代理,反向代理的各个后端节点服务器在接入系统时,均在系统注册中心中注册相关信息。同时在后续的系统服务时,系统注册中心均记录有各个后端节点服务器的状态信息。如,异常状态信息、正常状态信息、下机信息、上机信息以及负载情况信息等。
反向代理网关与系统注册中心通信连接。反向代理网关可实时接收系统注册中心的信息。当系统注册中心的信息发生更新时,反向代理网关可检测并接收更新后的系统注册中心的信息。
在一实施例中,如图3所示,步骤S100,包括:
S110,所述反向代理网关按照预设的监测周期监控所述系统注册中心。
S120。若监测到所述系统注册中心的信息进行了更新,接收所述系统注册中心更新后的信息。
在该实施例中,反向代理网关对系统注册中心进行监测。在预设的监测周期监控所述注册中心。如,反向代理网关每隔预设时间定时访问系统注册中心,读取系统注册中心的信息以监测所述信息是否发生了更新。若系统注册中心的信息发生了更新,反向代理网关接收更新后的系统注册中心的信息。
在一实施方式中,步骤S120包括:所述反向代理网关周期性轮询访问所述系统注册中心,确认监测到所述系统注册中心的信息进行了更新时,接收所述系统注册中心更新后的信息。在该实施方式中,反向代理网关内置系统注册中心的信息,在反向代理网关运行时,周期性访问与其通信连接的后端节点服务器的状态信息。具体采用轮询式访问每个后端节点服务器的状态信息。检测并判断每个后端节点服务器的状态信息是否发生了更新。
在一实施例中,步骤S100之前,还包括:控制所述反向代理网关以及所述后端节点服务器以分布式部署架构连接形式接入到所述系统注册中心,并控制所述分布式部署架构的可用性达到预设值。
在该实施例中,反向代理网关以及所述后端节点服务器采用分布式高可用部署架构,并同时接入同一个系统注册中心。因此所有接入系统注册中心的网关、后端节点服务器都可以实时更新自身状态,其他依赖节点也能实时获取状态变更。单个或者部分节点服务器出现异常时,整体系统稳定性不影响,从而显著提高了系统的高可用性。
S200,根据所述接收的信息,更新本反向代理网关内置的系统注册中心的信息。
在本实施例中,反向代理网关内置有系统注册中心信息。反向代理网关根据内置的系统注册中心的信息获取各个后端节点服务器的状态信息。反向代理网关检测到系统注册中心的信息发生更新时,读取更新后的系统注册中心的信息,并利用更新后的系统注册中心的信息更新内置的系统注册中心的信息。此外,还可以是系统注册中心在发生更新时,将更新后的系统注册中心的信息发送到反向代理网关,从而反向代理网关根据更新的系统注册中心的信息更新内置的系统注册中心的信息。
在一实施例中,反向代理网关为接入网关。大型系统一般都会有接入网关层,用于处理请求接入、安全验证、流量控制等功能。接入网关也可用于反向代理,代理后端服务器。在反向代理中,用户的请求通过网络发送到接入网关,接入网关再将请求转发给其后端处理该请求的服务器。后端服务器处理该请求结束后,将处理结果信息发给到接入网关,最后再由接入网关转发给用户。在本实施例中,将系统注册中心的信息接入到接入网关中,从而使得接入网关能够获取其后端各个节点的状态信息。
S300,当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求。
在本实施例中,将系统注册中心的信息内置到反向代理网关中,由反向代理网关随时读取。因此,反向代理网关可通过读取系统注册中心中,其后端节点服务器的状态信息,获知哪些服务器处于正常状态,此处正常状态指可接收并处理客户端发起的访问请求。当外部网络的客户端向反向代理网关发送访问请求时,反向代理网关根据内置的系统注册中心的信息,向对应的后端节点服务器转发该访问请求。具体地,反向代理网关从系统注册中心的信息中读取出各个后端节点服务器的状态信息,从而根据预设规则获取到目标节点服务器,将访问请求转发给目标节点服务器。
反向代理网关根据系统注册中心的信息,将接收到的访问请求转发到对应的后端节点服务器,无需人工将后端服务器接入到对应的反向代理网关。特别是当反向代理网关发生变更、或者是其后端节点服务器发生变更时,相应的节点信息无需人工添加或删除,从而系统弹性更加灵活,可解放运维人力。
在一实施例中,所述后端节点服务器的状态信息包括服务器的负载状态。步骤S300,包括:
S310,当接收到访问请求时,根据所述内置的系统注册中心的信息,确定所述访问请求对应采用负载均衡技术的由若干个后端节点服务器组成的服务器组。
S320,根据所述服务器的负载状态从所述服务器组中选取预设数量的后端节点服务器,向所述预设数量的后端节点服务器转发所述访问请求。
在该实施例中,系统注册中心记录有各个后端节点服务器的信息,其中包括各个服务器的负载状态信息。当反向代理网关接收到访问请求时,根据访问请求的信息采用负载均衡技术,从后端节点服务器中获取若干服务器组成的服务器组。进一步地,根据服务器组中每个服务器的负载情况,选取预设数量的后端节点服务器作为处理所述访问请求的后端节点服务器。
在本实施的一个实施方式中,如图5所示,步骤S200之前,还包括:
S201,缓存所述内置的系统注册中心的信息的历史数据。
步骤S320,包括:
S321,从缓存的所述历史数据中,获取所述服务器组中每个后端节点服务器以当前时间点为终点的第一预置时间段的负载状态。
S323,从所述服务器组中剔除在第二预置时间段,累加时长内没有接收到所述负载状态的后端节点服务器。
S325,从所述服务器组中剔除第三预置时间段内,所述负载状态的平均值大于预置值的后端节点服务器。
S327,从剔除后的服务器组中根据所述负载状态选取预设数量的后端节点服务器。
在该实施方式中,反向代理网关每次接收更新后的系统注册中心的信息以更新内置的系统注册中心信息之前,将更新前内置的系统注册中心的信息中的历史数据进行缓存。反向代理网关根据服务器的负载状态选取所述预设数量的后端节点服务器作为处理所述访问请求的服务器时,反向代理网关从缓存的所述历史数据中提取各个后端节点服务器的历史数据。进一步地,以当前时间为时间终点的第一预置时间段中,获取每个后端节点服务器的负载状态。并且,从服务器组中剔除在第二预置时间段,累加时长内没有接收到所述负载状态的后端节点服务器。具体地,第一预置时间段大于或等于第一预置时间段。例如,获取各个后端节点服务器在T1时间段内的负载状态。若在T2时间段内,反向代理网关检测到服务器在累加时长内没有接收到该服务器的负载状态,证明该服务器出现异常状况。如服务器频繁上行下行出现的系统故障等。此时,从所述服务器组中剔除该类型的服务器。进一步地,反向代理网关从上一步剔除相应服务器后的服务器组中获取每个服务器的负载状态的平均值。判断每个服务器的负载状态的平均值是否大于预置值,将负载状态的平均值大于预置值的服务器从所述服务器组中剔除,以保证处理所述访问请求的服务器的负载状态不处于过载状态,从而使得服务器在处理所述访问请求时不会因为自身的负载问题出现异常故障。最终,从剔除后的服务器组中根据所述负载状态选取预设数量的后端节点服务器。
在一实施例中,所述后端节点服务器的状态信息包括新增服务器节点信息以及无异常状态服务器节点信息。所述步骤S300,包括:
S331,根据所述新增服务器节点信息判断所述后端节点服务器中是否包含新增节点服务器。
在该实施例,反向代理网关执行步骤S10,接收到所述访问请求时。根据系统注册中心中读取后端节点服务器中是否包含新增节点服务器。若是,则执行步骤S333。若否,则执行步骤S335。
S333,若是,则向所述新增节点服务器转发所述访问请求。
S335,若否,根据所述无异常状态服务器节点信息判断所述后端节点服务器中是否包含无异常状态的节点服务器。
在该实施例中,若系统中增加了新的后端节点服务器,系统注册中心中将记录下新增节点服务器的状态以及其他相关信息。若增加了新的节点服务器,新的节点服务器的负载小,可快速处理所述访问请求,则反向代理网关将所述访问请求转发给所述新的节点服务器。若在系统注册中心信息中检测不到系统有新增节点服务器,则反向代理网关进行进一步判断,判断所述后端节点服务器中是否包含无异常状态的节点服务器。若是,执行步骤S337。若否,执行步骤S339。
S337,若是,向该节点服务器转发所述访问请求。
S339,若否,向所述访问请求的发送方发送请求连接异常信息。
在该实施例中,反向代理网关检测到系统中无新增节点服务器,则从后端节点服务器中获取无异常状态的节点服务器,向无异常状态的节点服务器转发所述访问请求以进行处理。若后端节点服务器中不存在无异常状态的服务器,则向所述访问请求的发起方发送连接异常信息。
S400,接收所述对应的后端节点服务器根据所述访问请求反馈的结果,将该反馈的结果发送给所述访问请求的发送方。
在本实施例中,反向代理网关将外部网络的客户端的访问请求发送给对应的后端节点服务器之后,该后端节点服务器响应该访问请求,并将响应结果反馈给反向代理网关,由反向代理网关将反馈的结果发送给发起访问请求的发送方,即外部网络中发起访问请求的客户端,从而完成系统的反向代理流程,保证了系统的内部网络信息的安全。
上述实施例提供的反向代理方法,在反向代理网关中内置系统注册中心的信息,并实时更新系统注册中心的信息。反向代理网关可通过系统注册中心的信息判断后端节点服务器上线、下线以及网络异常等状态,根据系统注册中心中各个后端节点服务器的状态信息,自动选取最优的后端节点服务器,并将客户端的访问请求发送给最优的后端节点服务器。该反向代理方法中,后端节点服务器信息无需人工添加或删除,可直接从系统注册中心中读取,从而解放运维人力。
本发明还提供一种基于分布式系统的反向代理装置。在一实施例中,如图7所示,该反向代理装置包括接入模块10、更新模块20、转发模块30以及发送模块40。
接入模块10用于反向代理网关接收实时更新的系统注册中心的信息;所述反向代理网关为反向代理后端节点服务器的网关,所述系统注册中心的信息包括各个所述后端节点服务器的状态信息。在本实施例中,反向代理网关为系统中用于反向代理的网关,反向代理系统内部网络中的多个后端节点服务器。系统注册中心记录了系统中服务和服务地址的映射关系。尤其在分布式架构系统中,当服务需要调用其它服务时,在系统注册中心中调取其他服务的地址以进行调用。此外,系统注册中心还记录系统中各个服务的状态信息,如服务注册信息、服务宕机信息、服务扩展信息、服务异常信息、服务路由信息等。其中,本实施例所述的系统可以是分布式架构的系统。在系统中,反向代理网关以及其后端节点服务器同时接入系统的注册中心。注册中心随时监控反向代理网关以及其后端节点服务器的状态。
该实施例所述的反向代理,反向代理的各个后端节点服务器在接入系统时,均在系统注册中心中注册相关信息。同时在后续的系统服务时,系统注册中心均记录有各个后端节点服务器的状态信息。如,异常状态信息、正常状态信息、下机信息、上机信息以及负载情况信息等。
反向代理网关与系统注册中心通信连接。反向代理网关可实时接收系统注册中心的信息。当系统注册中心的信息发生更新时,反向代理网关可检测并接收更新后的系统注册中心的信息。
更新模块20用于根据所述接收的信息,更新本反向代理网关内置的系统注册中心的信息。在本实施例中,反向代理网关内置有系统注册中心信息。反向代理网关根据内置的系统注册中心的信息获取各个后端节点服务器的状态信息。反向代理网关检测到系统注册中心的信息发生更新时,读取更新后的系统注册中心的信息,并利用更新后的系统注册中心的信息更新内置的系统注册中心的信息。此外,还可以是系统注册中心在发生更新时,将更新后的系统注册中心的信息发送到反向代理网关,从而反向代理网关根据更新的系统注册中心的信息更新内置的系统注册中心的信息。
在一实施例中,反向代理网关为接入网关。大型系统一般都会有接入网关层,用于处理请求接入、安全验证、流量控制等功能。接入网关也可用于反向代理,代理后端服务器。在反向代理中,用户的请求通过网络发送到接入网关,接入网关再将请求转发给其后端处理该请求的服务器。后端服务器处理该请求结束后,将处理结果信息发给到接入网关,最后再由接入网关转发给用户。在本实施例中,将系统注册中心的信息接入到接入网关中,从而使得接入网关能够获取其后端各个节点的状态信息。
转发模块30用于当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求。在本实施例中,将系统注册中心的信息内置到反向代理网关中,由反向代理网关随时读取。因此,反向代理网关可通过读取系统注册中心中,其后端节点服务器的状态信息,获知哪些服务器处于正常状态,此处正常状态指可接收并处理客户端发起的访问请求。当外部网络的客户端向反向代理网关发送访问请求时,反向代理网关根据内置的系统注册中心的信息,向对应的后端节点服务器转发该访问请求。具体地,反向代理网关从系统注册中心的信息中读取出各个后端节点服务器的状态信息,从而根据预设规则获取到目标节点服务器,将访问请求转发给目标节点服务器。
反向代理网关根据系统注册中心的信息,将接收到的访问请求转发到对应的后端节点服务器,无需人工将后端服务器接入到对应的反向代理网关。特别是当反向代理网关发生变更、或者是其后端节点服务器发生变更时,相应的节点信息无需人工添加或删除,从而系统弹性更加灵活,可解放运维人力。
发送模块40用于接收所述对应的后端节点服务器根据所述访问请求反馈的结果,将该反馈的结果发送给所述访问请求的发送方。在本实施例中,反向代理网关将外部网络的客户端的访问请求发送给对应的后端节点服务器之后,该后端节点服务器响应该访问请求,并将响应结果反馈给反向代理网关,由反向代理网关将反馈的结果发送给发起访问请求的发送方,即外部网络中发起访问请求的客户端,从而完成系统的反向代理流程,保证了系统的内部网络信息的安全。
在其他实施例中,本发明提供的基于分布式系统的反向代理装置中的各个模块还用于执行本发明所述的基于分布式系统的反向代理方法中,对应各个步骤执行的操作,在此不再做详细的说明。
本发明还提供一种存储介质。该存储介质上存储有计算机程序;所述计算机程序被处理器执行时,实现上述任一实施例所述的基于分布式系统的反向代理方法。该存储介质可以是存储器。例如,内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储介质包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
本发明还提供一种分布式系统。所述系统包括反向代理网关以及后端节点服务器。所述反向代理网关根据上述任一实施例所述的基于分布式系统的反向代理方法,反向代理所述后端节点服务器。
在一实施例中,如图8所示,所述分布式系统50包括反向代理网关101以及若干后端节点服务器。后端节点服务器包括后端节点服务器201、后端节点服务器203……后端节点服务器N。每个后端节点服务器与反向代理网关101通信连接,以接收反向代理网关101转发的外部网络发起的访问请求。在具体的实施方式中,外部网络的客户端301向反向代理网关101发起访问请求时,反向代理网关101内置有分布式系统50的系统注册中心信息,并根据上述任一实施例所述的反向代理方法,将所述访问请求转发到相应的后端节点服务器上。同时,将后端节点服务器反馈的结果发送给客户端301。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括存储器、磁盘或光盘等。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
应该理解的是,在本发明各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于分布式系统的反向代理方法,其特征在于,包括:
反向代理网关接收实时更新的系统注册中心的信息;所述反向代理网关为反向代理后端节点服务器的网关,所述系统注册中心的信息包括各个所述后端节点服务器的状态信息;
根据所述接收的信息,更新本反向代理网关内置的系统注册中心的信息;
当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求;
接收所述对应的后端节点服务器根据所述访问请求反馈的结果,将该反馈的结果发送给所述访问请求的发送方。
2.根据权利要求1所述的方法,其特征在于,所述反向代理网关接收实时更新的系统注册中心的信息,包括:
所述反向代理网关按照预设的监测周期监控所述系统注册中心;
若监测到所述系统注册中心的信息进行了更新,接收所述系统注册中心更新后的信息。
3.根据权利要求2所述的方法,其特征在于,所述若监测到所述系统注册中心的信息进行了更新,接收所述系统注册中心更新后的信息,包括:
所述反向代理网关周期性轮询访问所述系统注册中心,确认监测到所述系统注册中心的信息进行了更新时,接收所述系统注册中心更新后的信息。
4.根据权利要求1所述的方法,其特征在于,所述后端节点服务器的状态信息包括服务器的负载状态;所述当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求,包括:
当接收到访问请求时,根据所述内置的系统注册中心的信息,确定所述访问请求对应采用负载均衡技术的由若干个后端节点服务器组成的服务器组;
根据所述服务器的负载状态从所述服务器组中选取预设数量的后端节点服务器,向所述预设数量的后端节点服务器转发所述访问请求。
5.根据权利要求4所述的方法,其特征在于,所述更新本反向代理网关内置的系统注册中心的信息之前,还包括:缓存所述内置的系统注册中心的信息的历史数据;
所述根据所述服务器的负载状态从所述服务器组中选取预设数量的后端节点服务器后端节点服务器,包括:
从缓存的所述历史数据中,获取所述服务器组中每个后端节点服务器以当前时间点为终点的第一预置时间段的负载状态;
从所述服务器组中剔除在第二预置时间段,累加时长内没有接收到所述负载状态的后端节点服务器;
从所述服务器组中剔除第三预置时间段内,所述负载状态的平均值大于预置值的后端节点服务器;
从剔除后的服务器组中根据所述负载状态选取预设数量的后端节点服务器。
6.根据权利要求1所述的方法,其特征在于,所述后端节点服务器的状态信息包括新增服务器节点信息以及无异常状态服务器节点信息;所述当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求,包括:
当接收到所述访问请求时,根据所述新增服务器节点信息判断所述后端节点服务器中是否包含新增节点服务器;
若是,则向所述新增节点服务器转发所述访问请求;
若否,根据所述无异常状态服务器节点信息判断所述后端节点服务器中是否包含无异常状态的节点服务器,若是,向该节点服务器转发所述访问请求;若否,向所述访问请求的发送方发送请求连接异常信息。
7.根据权利要求1所述的方法,其特征在于,所述反向代理网关接收实时更新的系统注册中心的信息之前,还包括:
控制所述反向代理网关以及所述后端节点服务器以分布式部署架构连接形式接入到所述系统注册中心,并控制所述分布式部署架构的可用性达到预设值。
8.一种基于分布式系统的反向代理装置,其特征在于,包括:
接入模块,用于反向代理网关接收实时更新的系统注册中心的信息;所述反向代理网关为反向代理后端节点服务器的网关,所述系统注册中心的信息包括各个所述后端节点服务器的状态信息;
更新模块,用于根据所述接收的信息,更新本反向代理网关内置的系统注册中心的信息;
转发模块,用于当接收到访问请求时,根据内置的系统注册中心的信息向对应的后端节点服务器转发所述访问请求;
发送模块,用于接收所述对应的后端节点服务器根据所述访问请求反馈的结果,将该反馈的结果发送给所述访问请求的发送方。
9.一种存储介质,其特征在于,其上存储有计算机程序;所述计算机程序适于由处理器加载并执行上述权利要求1至7中任一项所述的基于分布式系统的反向代理方法。
10.一种分布式系统,其特征在于,所述系统包括反向代理网关以及后端节点服务器;所述反向代理网关根据上述权利要求1-7中任一项所述的基于分布式系统的反向代理方法,反向代理所述后端节点服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811126667.0A CN109120717B (zh) | 2018-09-26 | 2018-09-26 | 反向代理方法、装置及存储介质、分布式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811126667.0A CN109120717B (zh) | 2018-09-26 | 2018-09-26 | 反向代理方法、装置及存储介质、分布式系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109120717A true CN109120717A (zh) | 2019-01-01 |
CN109120717B CN109120717B (zh) | 2023-07-25 |
Family
ID=64856765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811126667.0A Active CN109120717B (zh) | 2018-09-26 | 2018-09-26 | 反向代理方法、装置及存储介质、分布式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109120717B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109743392A (zh) * | 2019-01-07 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种负载均衡方法、装置、电子设备及存储介质 |
CN110708367A (zh) * | 2019-09-24 | 2020-01-17 | 中信百信银行股份有限公司 | 应用调用方法、应用发布方法及应用发布系统 |
CN111245948A (zh) * | 2020-01-16 | 2020-06-05 | 深圳市网心科技有限公司 | Dht网络连接方法、电子设备及介质 |
CN112433863A (zh) * | 2020-11-18 | 2021-03-02 | 平安消费金融有限公司 | 微服务调用方法、装置、终端设备以及存储介质 |
CN112769884A (zh) * | 2019-11-01 | 2021-05-07 | 普天信息技术有限公司 | 双层反向代理系统及其动态自均衡调节方法 |
CN113114765A (zh) * | 2021-04-13 | 2021-07-13 | 成都九洲电子信息系统股份有限公司 | 一种基于反向代理的接口调用系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120166611A1 (en) * | 2010-12-24 | 2012-06-28 | Kim Mi-Jeom | Distributed storage system including a plurality of proxy servers and method for managing objects |
CN103051551A (zh) * | 2011-10-13 | 2013-04-17 | 中兴通讯股份有限公司 | 一种分布式系统及其自动维护方法 |
CN105227602A (zh) * | 2014-06-20 | 2016-01-06 | 北京新媒传信科技有限公司 | 一种负载均衡的方法、客户端、注册服务器和系统 |
CN105635338A (zh) * | 2015-12-31 | 2016-06-01 | 迈普通信技术股份有限公司 | 一种数据传输方法及装置 |
WO2016180284A1 (zh) * | 2015-05-08 | 2016-11-17 | 中兴通讯股份有限公司 | 服务节点分配方法、装置、cdn管理服务器及系统 |
CN108055157A (zh) * | 2017-12-19 | 2018-05-18 | 北京奇艺世纪科技有限公司 | 一种服务节点的获取方法及装置 |
-
2018
- 2018-09-26 CN CN201811126667.0A patent/CN109120717B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120166611A1 (en) * | 2010-12-24 | 2012-06-28 | Kim Mi-Jeom | Distributed storage system including a plurality of proxy servers and method for managing objects |
CN103051551A (zh) * | 2011-10-13 | 2013-04-17 | 中兴通讯股份有限公司 | 一种分布式系统及其自动维护方法 |
CN105227602A (zh) * | 2014-06-20 | 2016-01-06 | 北京新媒传信科技有限公司 | 一种负载均衡的方法、客户端、注册服务器和系统 |
WO2016180284A1 (zh) * | 2015-05-08 | 2016-11-17 | 中兴通讯股份有限公司 | 服务节点分配方法、装置、cdn管理服务器及系统 |
CN105635338A (zh) * | 2015-12-31 | 2016-06-01 | 迈普通信技术股份有限公司 | 一种数据传输方法及装置 |
CN108055157A (zh) * | 2017-12-19 | 2018-05-18 | 北京奇艺世纪科技有限公司 | 一种服务节点的获取方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109743392A (zh) * | 2019-01-07 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种负载均衡方法、装置、电子设备及存储介质 |
CN110708367A (zh) * | 2019-09-24 | 2020-01-17 | 中信百信银行股份有限公司 | 应用调用方法、应用发布方法及应用发布系统 |
CN112769884A (zh) * | 2019-11-01 | 2021-05-07 | 普天信息技术有限公司 | 双层反向代理系统及其动态自均衡调节方法 |
CN111245948A (zh) * | 2020-01-16 | 2020-06-05 | 深圳市网心科技有限公司 | Dht网络连接方法、电子设备及介质 |
CN112433863A (zh) * | 2020-11-18 | 2021-03-02 | 平安消费金融有限公司 | 微服务调用方法、装置、终端设备以及存储介质 |
CN113114765A (zh) * | 2021-04-13 | 2021-07-13 | 成都九洲电子信息系统股份有限公司 | 一种基于反向代理的接口调用系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109120717B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120717A (zh) | 反向代理方法、装置及存储介质、分布式系统 | |
CN104468363B (zh) | 页面重定向方法、路由设备、终端设备及系统 | |
EP3854116B1 (en) | A method of managing traffic by a user plane function, upf, corresponding upf, session management function and network data analytics function | |
CN108965381A (zh) | 基于Nginx的负载均衡实现方法、装置、计算机设备和介质 | |
CN104023083B (zh) | 日志收集集群负载均衡的方法及装置 | |
CN103997725B (zh) | 用于抽象和编排网络环境中的移动数据网络的系统和方法 | |
CN104967652B (zh) | 事件订阅方法、装置及系统 | |
Alonso et al. | Deep reinforcement learning for the management of software-defined networks in smart farming | |
CN110417587B (zh) | 服务器负载管理 | |
CN107332719A (zh) | 一种cdn系统内日志实时分析的方法 | |
CN108134830A (zh) | 基于消息队列的负载均衡方法、系统、装置及存储介质 | |
WO2013187933A2 (en) | An inventory exchange for multiple sales channels | |
CN105164989B (zh) | 减少服务器-客户端会话的数目 | |
CN108322502A (zh) | 用于均衡服务器负载的方法、网关系统和存储介质 | |
CN109639754A (zh) | 一种电网调度服务网关数据审计的实现方法 | |
CN108111333A (zh) | 一种基于web的流量限制方法及系统 | |
CN110096664A (zh) | 分布式文本信息处理方法、装置、系统、设备及存储介质 | |
Malyuga et al. | Fault tolerant central saga orchestrator in RESTful architecture | |
CN108712503B (zh) | 一种网络负载均衡的多代理分布式爬虫系统和方法 | |
CN109327511A (zh) | 一种基于http协议的数据请求方法和服务器 | |
CN110650195B (zh) | 分布式负载均衡方法以及装置 | |
CN107835095A (zh) | 一种日志的处理方法及装置 | |
CN109120556B (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
CN109981779A (zh) | 服务提供方法、服务器及计算机存储介质 | |
CN110417782A (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 |