searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

基于分布式架构的网关构建理念及洪泛算法在分布式网关中的应用

2023-06-27 03:16:14
41
0

一、前言

目前大多数微服务架构中,网关是重要的组成部分,而在整个微服务访问过程中,经常会遇到需要访问其他微服务的情况。但有的时候其他服务会因为网络原因或者安全原因等,部署在一些无法直接访问的区域。通常,服务提供方就会通过网关来将自己的服务暴露到外部环境,以供外部其他服务的访问。

这种通过网关暴露服务是具有很多优势的,比如我们可以通过网关进行统一身份认证、鉴权、流量监控、接口注册等等。但是在现代大型企业数字系统中,会同时存在云上服务,传统应用等多种数据源,不同数据源之间网络结构复杂。此时如果使用传统的点对点方式的网关,则容易造成企业内容应用之间复杂的集成和依赖关系,每个系统都需要耗费大量的精力来维护各个网关信息,架构难以扩展和维护。

因此,本文提出了一种基于分布式架构的网关构建理念,通过该方式,各个服务提供方使用统一的网关,使得客户端的信息在各个网关之间共享,每个客户端仅需要维护自己的身份信息即可。

二、功能设计

该基于分布式架构的网关构建设计图如下所示:

如图所示,存在三个网络环境,每个环境中都可以存在服务端和客户端。网关分布式部署在多个服务域上,形成集成点,系统就近接入集成点,在每个服务域中,客户端和服务端仅和本服务域中的网关进行交互。在不同服务域之间,通过网关进行交互。因此,不同服务域之间仅需要保证网关之间的网络互通即可。

     1.正向代理

正向代理负责为本服务域内的客户端进行正向代理,所有需要访问其他服务域内服务的客户端,仅需要访问网关的正向代理端口,具体步骤如下:

  • 客户端访问地址为网关域名+实际url,并且在header中指明服务域信息,如:domain:serviceArea_B。同时需要在header中加入身份认证信息。
  • 网关在接收到请求后,对客户端的身份认证进行校验,同时判断该用户是否有权限调用对应接口。
  • 网关在进行身份认证和权限校验后,在请求header中加入网关本身的uuid,同时将请求发送给对应服务域网关的反向代理。

     2.反向代理

反向代理负责为本服务域内的服务端提供代理服务,请求到达网关后,网关将请求转发到对应的服务端。具体步骤如下:

  • 网关接收到请求,从请求头中获取网关uuid,确认是分布式网关发出的请求。
  • 网关进行身份认证和鉴权,确认客户端具有调用指定接口的权限。
  • 网关反向代理将请求转发到对应的本服务域服务端。

     3.配置信息

配置信息中用于存放接口的配置,用户身份信息,接口权限以及其他配置等。在一个网关系统中,共享配置信息,即服务域A、B、C中的网关配置信息保持一致,用户在任何一个服务域对应的前端页面对网关进行的操作,均可以同步到其余服务域的网关中。

三、配置同步方式及应用

这种设计理念下的分布式网关,要求用户可以实现在一个服务域修改,全局生效的效果,所以不同服务域之间的配置同步机制就显得尤为重要,在这种分布式架构之下,可以采用合适的同步算法来实现全域同步,在本文中简要阐述将洪泛算法应用于分布式架构的网关。

洪泛算法(Flood-Fill Algorithm)是一种图像处理和计算机图形学中常用的算法,用于标记和填色连通区域。它从一个定点开始,逐渐向相邻的点扩散,以填充整个连接区域。

洪泛算法常用于图像处理中的涂色、填充等操作,也可用于情景感知、路线规划等领域。在计算机网络中,这种算法还可以用于路由协议中,如OSPF协议中就使用了洪泛算法进行路由信息传递。通俗的说,洪泛算法就是从某个点出发,沿着连通区域不断扩散,直到到达连通区域的边界或者其他停止条件,我们可以使用递归或者栈的方式来实现简单的洪泛算法。

    在本文中我们将洪泛算法应用于分布式架构的网关中,洪泛算法本身并没有固定的架构图,因为它属于一种基本的分布式算法,适用于各种不同的分布式系统架构。我们使用洪泛算法构建分布式网关有以下基本步骤。

  1. 消息传递。在洪泛算法中,每个节点都会向其它所有节点发送消息,并将自己的状态更新为接收到消息中最新的状态,网关即在不同服务域之间发送同步消息。这种方式会产生大量的网络通信,因此需要一个合适的消息传递机制,来确保消息可以在网络中可靠地传递。通常情况下,会使用 TCP/IP 协议来实现消息传递。尽管会产生大量网络通信,但网关配置不属于高频修改的内容,所以能适用于这种消息传递方式。
  2. 消息处理。为了确保每个节点都可以基于接收到的消息更新自己的状态,还需要定义一些规则,来处理节点接收到消息的情况。这些规则可以根据具体的网关需求来设计,比如用户身份信息,接口权限以及其他配置等内容。
  3. 故障处理。同时最后需要考虑如何保证系统能够在故障发生时继续正常运行。这些故障包括节点崩溃、网络分区等等。对于这些问题,我们需要采用一些恰当的机制,如选举机制、容错机制等等,来确保分布式网关架构的健壮性和可靠性。

通过以上步骤,我们可以将洪泛算法应用于分布式的网关构建中的基本架构概括为:消息传递机制、消息处理规则和故障处理机制,通过以上三种处理机制后,可以利用洪泛算法实现不同服务域之间的配置同步机制,达到构建分布式架构网关的目的。

0条评论
0 / 1000
浣****浩
2文章数
1粉丝数
浣****浩
2 文章 | 1 粉丝
原创

基于分布式架构的网关构建理念及洪泛算法在分布式网关中的应用

2023-06-27 03:16:14
41
0

一、前言

目前大多数微服务架构中,网关是重要的组成部分,而在整个微服务访问过程中,经常会遇到需要访问其他微服务的情况。但有的时候其他服务会因为网络原因或者安全原因等,部署在一些无法直接访问的区域。通常,服务提供方就会通过网关来将自己的服务暴露到外部环境,以供外部其他服务的访问。

这种通过网关暴露服务是具有很多优势的,比如我们可以通过网关进行统一身份认证、鉴权、流量监控、接口注册等等。但是在现代大型企业数字系统中,会同时存在云上服务,传统应用等多种数据源,不同数据源之间网络结构复杂。此时如果使用传统的点对点方式的网关,则容易造成企业内容应用之间复杂的集成和依赖关系,每个系统都需要耗费大量的精力来维护各个网关信息,架构难以扩展和维护。

因此,本文提出了一种基于分布式架构的网关构建理念,通过该方式,各个服务提供方使用统一的网关,使得客户端的信息在各个网关之间共享,每个客户端仅需要维护自己的身份信息即可。

二、功能设计

该基于分布式架构的网关构建设计图如下所示:

如图所示,存在三个网络环境,每个环境中都可以存在服务端和客户端。网关分布式部署在多个服务域上,形成集成点,系统就近接入集成点,在每个服务域中,客户端和服务端仅和本服务域中的网关进行交互。在不同服务域之间,通过网关进行交互。因此,不同服务域之间仅需要保证网关之间的网络互通即可。

     1.正向代理

正向代理负责为本服务域内的客户端进行正向代理,所有需要访问其他服务域内服务的客户端,仅需要访问网关的正向代理端口,具体步骤如下:

  • 客户端访问地址为网关域名+实际url,并且在header中指明服务域信息,如:domain:serviceArea_B。同时需要在header中加入身份认证信息。
  • 网关在接收到请求后,对客户端的身份认证进行校验,同时判断该用户是否有权限调用对应接口。
  • 网关在进行身份认证和权限校验后,在请求header中加入网关本身的uuid,同时将请求发送给对应服务域网关的反向代理。

     2.反向代理

反向代理负责为本服务域内的服务端提供代理服务,请求到达网关后,网关将请求转发到对应的服务端。具体步骤如下:

  • 网关接收到请求,从请求头中获取网关uuid,确认是分布式网关发出的请求。
  • 网关进行身份认证和鉴权,确认客户端具有调用指定接口的权限。
  • 网关反向代理将请求转发到对应的本服务域服务端。

     3.配置信息

配置信息中用于存放接口的配置,用户身份信息,接口权限以及其他配置等。在一个网关系统中,共享配置信息,即服务域A、B、C中的网关配置信息保持一致,用户在任何一个服务域对应的前端页面对网关进行的操作,均可以同步到其余服务域的网关中。

三、配置同步方式及应用

这种设计理念下的分布式网关,要求用户可以实现在一个服务域修改,全局生效的效果,所以不同服务域之间的配置同步机制就显得尤为重要,在这种分布式架构之下,可以采用合适的同步算法来实现全域同步,在本文中简要阐述将洪泛算法应用于分布式架构的网关。

洪泛算法(Flood-Fill Algorithm)是一种图像处理和计算机图形学中常用的算法,用于标记和填色连通区域。它从一个定点开始,逐渐向相邻的点扩散,以填充整个连接区域。

洪泛算法常用于图像处理中的涂色、填充等操作,也可用于情景感知、路线规划等领域。在计算机网络中,这种算法还可以用于路由协议中,如OSPF协议中就使用了洪泛算法进行路由信息传递。通俗的说,洪泛算法就是从某个点出发,沿着连通区域不断扩散,直到到达连通区域的边界或者其他停止条件,我们可以使用递归或者栈的方式来实现简单的洪泛算法。

    在本文中我们将洪泛算法应用于分布式架构的网关中,洪泛算法本身并没有固定的架构图,因为它属于一种基本的分布式算法,适用于各种不同的分布式系统架构。我们使用洪泛算法构建分布式网关有以下基本步骤。

  1. 消息传递。在洪泛算法中,每个节点都会向其它所有节点发送消息,并将自己的状态更新为接收到消息中最新的状态,网关即在不同服务域之间发送同步消息。这种方式会产生大量的网络通信,因此需要一个合适的消息传递机制,来确保消息可以在网络中可靠地传递。通常情况下,会使用 TCP/IP 协议来实现消息传递。尽管会产生大量网络通信,但网关配置不属于高频修改的内容,所以能适用于这种消息传递方式。
  2. 消息处理。为了确保每个节点都可以基于接收到的消息更新自己的状态,还需要定义一些规则,来处理节点接收到消息的情况。这些规则可以根据具体的网关需求来设计,比如用户身份信息,接口权限以及其他配置等内容。
  3. 故障处理。同时最后需要考虑如何保证系统能够在故障发生时继续正常运行。这些故障包括节点崩溃、网络分区等等。对于这些问题,我们需要采用一些恰当的机制,如选举机制、容错机制等等,来确保分布式网关架构的健壮性和可靠性。

通过以上步骤,我们可以将洪泛算法应用于分布式的网关构建中的基本架构概括为:消息传递机制、消息处理规则和故障处理机制,通过以上三种处理机制后,可以利用洪泛算法实现不同服务域之间的配置同步机制,达到构建分布式架构网关的目的。

文章来自个人专栏
微服务架构
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0