【Spring Cloud Gateway】1、Spring Cloud Gateway网关服务搭建

1、什么是网关?

API Gateway(APIGW / API 网关),顾名思义,是系统对外的唯一入口。API 网关封装了系统内部架构,为每个客户端提供定制的 API。 近几年来移动应用与企业间互联需求的兴起。从以前单一的 Web 应用,扩展到多种使用场景,且每种使用场景对后台服务的要求都不尽相同。 这不仅增加了后台服务的响应量,还增加了后台服务的复杂性。随着微服务架构概念的提出,API 网关成为了微服务架构的一个标配组件。

2、为什么要使用网关?

微服务的应用可能部署在不同机房,不同地区,不同域名下。此时客户端(浏览器/手机/软件工具)想 要请求对应的服务,都需要知道机器的具体 IP 或者域名 URL,当微服务实例众多时,这是非常难以记忆的,对 于客户端来说也太复杂难以维护。此时就有了网关,客户端相关的请求直接发送到网关,由网关根据请求标识 解析判断出具体的微服务地址,再把请求转发到微服务实例。这其中的记忆功能就全部交由网关来操作了。

3、Spring Cloud Gateway介绍

  1. 简介

Spring Cloud Gateway 是基于 Spring 生态系统之上构建的 API 网关,包括:Spring 5.x,Spring Boot 2.x 和 Project Reactor。Spring Cloud Gateway 旨在提供一种简单而有效的方法来路由到 API,并为它们提供跨领域的关注点,例如:安全性,监视/指标,限流等。

  1. 基本概念
  • 路由(Route):路由是网关最基础的部分,路由信息由 ID、目标 URI、一组断言和一组过滤器组成。如果断言 路由为真,则说明请求的 URI 和配置匹配。
  • 断言(Predicate):Java8 中的断言函数。Spring Cloud Gateway 中的断言函数输入类型是 Spring 5.0 框架中 的 ServerWebExchange。Spring Cloud Gateway 中的断言函数允许开发者去定义匹配来自于 Http Request 中的任 何信息,比如请求头和参数等。
  • 过滤器(Filter):一个标准的 Spring Web Filter。Spring Cloud Gateway 中的 Filter 分为两种类型,分别是 Gateway Filter 和 Global Filter。过滤器将会对请求和响应进行处理。

4、搭建网关服务

  • 引入 Spring Cloud Gateway
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
  • gateway 配置文件
server:
  port: 8080

spring: 
  application:
    name: bt-gateway
  cloud:
    gateway:
      routes:
        # 系统管理模块
        - id: bt-system
          uri: http://localhost:9201/
          predicates:
            - Path=/system/**
          filters:
            - StripPrefix=1

5、启动网关

我们一般都是将网关作为一个单独的服务启动,网关将作为整个项目的唯一入口,有着强大的能力与责任。

当然,我们项目中需要使用 Nacos 来将各个服务注册在一起,通过服务名互相调用。我们的网关同样需要注册进 Nacos 里面,才能进行后续的鉴权、转发等工作。

如您在阅读中发现不足,欢迎留言!!!

你可能感兴趣的:(#,GateWay,springcloud,gateway,微服务,nacos,springboot)