前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Cloud 系列之服务网关 Gateway

Spring Cloud 系列之服务网关 Gateway

作者头像
Demo_Null
发布2020-11-11 17:55:47
8660
发布2020-11-11 17:55:47
举报
文章被收录于专栏:Java 学习Java 学习

1.1 简介

1.1.1 概述

  Spring Cloud Gateway 是 Spring Cloud 体系的第二代网关组件,基于 Spring 5.0 的新特性 WebFlux 进行开发,底层网络通信框架使用的是 Netty,所以其吞吐量高、性能强劲,取代了第一代的网关组件 Zuul。Spring Cloud Gateway 组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发到对应的微服务。Spring Cloud Gateway 是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点 IP 端口信息,从而加强安全保护。Spring Cloud Gateway 本身也是一个微服务,需要注册到服务注册中心。

在这里插入图片描述
在这里插入图片描述

1.1.2 核心概念

 ♞ 路由(route) 路由是网关的基本模块,由一个ID、一个目的URL、一组断言工厂、一组 Filter 组成。如果路由断言为真,说明请求 URL 和配置路由匹配。  ♞ 断言(Predicate) Spring Cloud Gateway 中的断言函数输入类型是 Spring5.0 框架中的 ServerWebExchange。Spring Cloud Gateway 的断言函数允许开发者去定义匹配来自于 Http Request 中的任何信息比如请求头和参数。  ♞ 过滤器(Filter) 一个标准的 Spring WebFilter。Spring Cloud Gateway 中的 Filter 分为两种类型的 Filter,分别是 Gateway Filter 和 Global Filter。过滤器 Filter 将会对请求和响应进行修改处理。

1.1.3 相关依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

1.2 基本使用

1.2.1 创建基础工程

☞ 基础工程

在这里插入图片描述
在这里插入图片描述

1.2.2 Gateway 配置文件

代码语言:javascript
复制
server:
  port: 8100

spring:
  application:
    name: gateway-server  # 应用名称,在 Eureka 中作为 id 标识
  cloud:
    gateway:
      routes:
          # 路由 id 随便写
        - id: info-server
          # 服务地址,若使用了注册中心可以使用服务名 lb://info-server
          uri: http://127.0.0.1:8200
          # 服务路径
          predicates:
            - Path=/info/**

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8000/eureka
  server:
    enable-self-preservation: false       # 关闭自我保护模式, 默认为打开
    eviction-interval-timer-in-ms: 5000   # 续期时间,即扫描失效服务的间隔时间

1.2.3 Gateway 启动类

代码语言:javascript
复制
/**
 * Created with IntelliJ IDEA.
 *
 * @author Demo_Null
 * @date 2020/11/10
 * @description
 */
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }
}

1.2.4 请求服务

  启动服务后,我们发现不论是直接使用 http://127.0.0.1:8200/info/get 请求服务,还是通过网关 http://127.0.0.1:8100/info/get 请求服务都没有问题。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

未完待续


☞ 源码

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 简介
    • 1.1.1 概述
      • 1.1.2 核心概念
        • 1.1.3 相关依赖
        • 1.2 基本使用
          • 1.2.1 创建基础工程
            • 1.2.2 Gateway 配置文件
              • 1.2.3 Gateway 启动类
                • 1.2.4 请求服务
                相关产品与服务
                微服务引擎 TSE
                微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档