其他分享
首页 > 其他分享> > 【网关层】网关层及相关技术栈

【网关层】网关层及相关技术栈

作者:互联网

文章目录


配合《【架构】分布式服务架构与微服务架构》阅读更佳。

1)网关

1.1 什么是网关?

广义上,只要是进入某个网的"入口",都可以叫做网关,即只要连接两个不同的网络都可以叫网关

*注意区分网关和网桥

  • 网桥:工作在数据链路层,在不同或相同类型的 LAN 之间存储并转发数据帧,必要时进行链路层上的协议转换。可连接两个或多个网络,在其中传送信息包。
  • 网关:是一个大概念,不具体特指一类产品,只要连接两个不同的网络都可以叫网关。
  • 网桥一般只转发信息,而网关可能进行包装。

1.2 为什么需要网关?

随着单体应用程序架构分布式架构 / 微服务等架构演变,对网关的需求逐渐产生:

  • 单体架构(或称分层架构)

    单体架构比较初级,典型的三级架构是:前端(Web/手机端)+ 中间业务逻辑层 + 数据库层
    • 这是一种典型的Java Spring mvc或者Python Drango框架的应用。
    • 架构图: 在这里插入图片描述
    • 单体架构的应用比较容易部署、测试, 在项目的初期,单体应用可以很好地运行。
  • 分布式应用

    中级架构,分布式应用:中间层分布式 + 数据库分布式

    • 是单体架构的并发扩展,将一个大的系统划分为多个业务模块,业务模块分别部署在不同的服务器上,各个业务模块之间通过接口进行数据交互。
    • 数据库也大量采用分布式数据库,如redis、ES、solor等。
    • 通过LVS/Nginx代理应用,将用户请求均衡的负载到不同的服务器上。
    • 架构图: 在这里插入图片描述
    • 该架构相对于单体架构来说,提供了负载均衡的能力,大大提高了系统负载能力,解决了网站高并发的需求。

  • 微服务架构

    微服务架构主要是中间层分解,将系统拆分成很多小应用(微服务),微服务可以部署在不同的服务器上,也可以部署在相同的服务器不同的容器上。

    • 单应用的故障不会影响到其他应用,单应用的负载也不会影响到其他应用,其代表框架有Spring cloud、Dubbo等。
    • 架构图: 在这里插入图片描述

API Gateway的出现:

举例来说:

API Gateway很好的解决了微服务下调用、统一接入等问题,如下图所示:
在这里插入图片描述

*代理和网关的区别

  • 代理是纯粹的数据透传,协议不会发生变化;
  • 网关在数据透传的背景下,还会设计协议的转换
  • 比如上图中用户请求传输到网关的协议是HTTP,通过网关透传到下游则可能已经转换成企业内部的RPC了(比如JSF、Dubbo等企业自研的RPC框架)。

1.3 常见网关

按照使用数量、成熟度等来划分,主流的开源网关有 4 个:

详细介绍可移步《【网关层】了解软件架构中的网关层》



2)相关技术栈

2.1 负载均衡(Load Balancing,LB)


2.2 CDN


2.3 Zookeeper



【部分内容参考自】

标签:网关,CDN,负载,层及,用户,均衡,服务器,相关
来源: https://blog.csdn.net/m0_37621024/article/details/118435275