门面模式Api网关(SpringCloudGateway)

1. 前言

        当前通过Eureka、Nacos解决了服务注册和服务发现问题,使用Spring Cloud LoadBalance解决了负载均衡的需求,同时借助OpenFeign实现了远程调用。然而,现有的微服务接口都直接对外暴露,容易被外部访问。为保障对外服务的安全性,通常在服务端实现的微服务接口会带有一定的权限校验机制。由于应用拆分成多个微服务,每个微服务都需要实现权限校验逻辑,导致当逻辑需要修改时,需要在多个应用中进行修改,增加了开发人员的负担。

比如企业管理
 
外部人员去公司办理业务, 公司需要先核实对方的身份再去进行办理.
最开始只有一个员工, 这个员工核实之后直接办理即可. (单体架构)
随着公司的发展, 划分了多个部门, 每个部门负责的事情不同, 每个部门都需要先核实对方的身份再进行办理. (微服务架构)
这个流程存在一些问题:
  • 1. 办事效率低
  • 2. 增加了员工的工作流程
我们对此进行改进, 设立前台, 统一由前台来进行身份的校验. 前台身份校验通过后, 其他部门就设置信任, 直接办理。
 

接下来我将会介绍一门新的技术: API网关  SpringCloudGateway

        在微服务架构中,API 网关扮演着至关重要的角色,它是客户端和后端服务之间的门面,负责统一处理所有的请求和响应。Spring Cloud Gateway作为Spring Cloud生态系统中的一个全新项目,提供了强大而灵活的方式来构建 API 网关服务。本文将深入介绍Spring Cloud Gateway的功能、特点以及如何应用于微服务架构中。

2. 功能和特点

Spring Cloud Gateway提供了丰富的功能和特性,其中包括:

  • 动态路由: 可以根据需求动态地将请求路由到相应的后端服务,实现请求的分发和转发。
  • 权限控制: 可以通过实现对请求的安全控制,包括认证、鉴权、请求加密等功能,保障系统的安全性。
  • 负载均衡: 集成了负载均衡的功能,可以将请求分发到多个后端服务实例中,提高系统的可用性和性能。
  • 断路器: 支持断路器模式,可以在后端服务不可用时进行降级处理,避免整个系统的崩溃。
  • 统一的认证和授权: 可以集成统一的认证和授权机制,保护系统的安全性。
  • 监控和日志: 支持监控和日志记录,帮助开发者排查问题和优化系统性能。
  • 过滤器处理: 可以通过自定义的过滤器对请求进行预处理、后处理、权限控制、日志记录等操作,实现对请求的统一管理和处理。

  • 限流:可以通过过滤器和流量算法实现对流量的控制,防止流量过大导致系统崩溃。请求流量过高时, 按照网关中配置微服务能够接受的流量进行放行, 避免服务压力过大

    类似前台的工作
    1. 权限控制: 身份验证。
    2. 动态路由: 根据外来客户的需求, 把客户带到指定的部门去处理。
    3. 负载均衡: 一个部门有很多人时, 前台会帮客客户选择具体某个人处理。
    4. 限流: 公司到访客⼾较多时, 进⾏流量限制, ⽐如告知明天再来。

3. 什么是API网关?

        API网关(简称网关)也是⼀个服务, 通常是后端服务的唯一入口. 它的定义类似设计模式中的Facade模式 (门面模式, 也称外观模式). 它就类似整个微服务架构的门面模式, 所有的外部客户端访问, 都需要经过它来进行调度和过滤.
625af4b21f2444d988898debccab2e02.png

 

4. 简单的使用步骤 

        3.1 创建一个新的模块

9f60cae0437447e2abf2bcc499e18250.png

        3.2 引入依赖

        <!--引入spring_cloud_gateway的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
    <!--nacos的依赖用于动态路由-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风止￴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值