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


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

1)网关

1.1 什么是网关?

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

  • 在软件架构中,网关这个词的含义已被扩展到了应用与服务层面
    • 比如,在提供 Restful API 的服务接口,一般被称作“应用网关”。
      • 这里,网关作为一个对外提供应用服务的媒介,一方面对外提供接口服务,接受请求并给予应答,另一方面,又屏蔽内部实现细节,只暴露黑盒调用方式与函数,保护了内部逻辑与结构。

*注意区分网关和网桥

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

1.2 为什么需要网关?

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

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

    单体架构比较初级,典型的三级架构是:前端(Web/手机端)+ 中间业务逻辑层 + 数据库层
    • 这是一种典型的Java Spring mvc或者Python Drango框架的应用。
    • 架构图: 在这里插入图片描述
    • 单体架构的应用比较容易部署、测试, 在项目的初期,单体应用可以很好地运行。
  • 然而,随着需求的不断增加, 越来越多的人加入开发团队,代码库也在飞速地膨胀。慢慢地,单体应用变得越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高
  • 分布式应用

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

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

  • 微服务架构

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

    • 单应用的故障不会影响到其他应用,单应用的负载也不会影响到其他应用,其代表框架有Spring cloud、Dubbo等。
    • 架构图: 在这里插入图片描述
  • 微服务中的网关通常指的是 API Gataway,即将所有API的调用统一接入API网关层,由网关层负责接入和输出

API Gateway的出现:

举例来说:

  • 微服务将原来的单体应用进行微服务化。将原来集中于一体的功能(如商品、订单服务)进行拆分,每个功能模块又有各自的自成体系的发布、运维等功能:
    在这里插入图片描述
  • 原先IOS、Android、PC客户端调用服务的地方,需要多个URL地址,有订单的、商品的、用户的。微服务化后就必须有统一的出入口,这种情况下,API Gateway就出现了

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值