本文是介绍一下SpringCloud Gateway简单路由转发使用。

SpringCloud Gateway简介

SpringCloud是基于Spring Framework 5,Project Reactor和Spring Boot 2.0构建,目标是用于替代zuul。

官方文档

官方文档地址:cloud.spring.io/spring-clou…

在官方文档上是这样介绍Spring Cloud Gateway的:

该项目提供了一个用于在Spring MVC之上构建API网关的库。Spring Cloud Gateway旨在提供一种简单而有效的方式来路由到API,并为他们提供横切关注点。)

入门案例

接下来,介绍一下简单使用SpringCloud Gateway路由功能(本文使用SpringBoot2.0.0.RELEASE和SpringCloud Finchley.RC1版本)。

创建项目

新建一个项目,项目种加入SpringCloud Gateway依赖,完整pom如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.dalaoyang</groupId><artifactId>springcloud_gateway</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>springcloud_gateway</name><description>springcloud_gateway</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Finchley.RC1</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
复制代码

SpringBoot主程序

在类中配置路由

主程序中加入了一种配置路由的方法,利用@Bean的方式自定义RouteLocator。

package com.dalaoyang;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;@SpringBootApplication
public class SpringcloudGatewayApplication {public static void main(String[] args) {SpringApplication.run(SpringcloudGatewayApplication.class, args);}@Beanpublic RouteLocator customRouteLocator(RouteLocatorBuilder builder) {return builder.routes().route(r -> r.path("/jianshu").uri("http://www.jianshu.com/u/128b6effde53")).build();}}
复制代码

在配置文件中配置:

server:port: 8888spring:application:name: gateway-servicecloud:gateway:routes:- id: dalaoyanguri: http://www.dalaoyang.cn/predicates:- Path=/dalaoyang/**- id: juejinuri: https://juejin.im/user/5aa50b96f265da23866f836epredicates:- Path=/juejin/**复制代码

运行测试

到这里其实就配置完成了

访问http://localhost:8888/dalaoyang 自动跳转到了我的博客首页

访问http://localhost:8888/jianshu 自动跳转到了我的简书首页

访问http://localhost:8888/juejin 自动跳转到了我的掘金首页

源码下载:大老杨源码

SpringCloud Gateway入门相关推荐

  1. Springboot 集成Springcloud gateway的入门

    最近做项目使用到了springcloude gateway作为网关,因此在此记录下springcloud gateway的入门操作,后续再将源码解读写出来,先立个flag. 回归正题,Springcl ...

  2. 微服务网关:SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  3. 什么是微服务网关?SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  4. spring cloud微服务分布式云架构-Gateway入门

    Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gatew ...

  5. SpringCloud Gateway 通过redis实现限流

    前言 在高并发的系统中,往往需要在系统中做限流,一方面是为了防止大量的请求使服务器过载,导致服务不可用,另一方面是为了防止网络攻击. 常见的限流方式,比如Hystrix适用线程池隔离,超过线程池的负载 ...

  6. SpringCloud Gateway 详解

    文章目录 一.网关简介 1.服务网关介绍 1.1 API网关介绍 1.2 网关主要功能 2.常用网关介绍 2.1 Nginx+Lua 2.2 Kong 2.3 Traefik 2.4 Zuul 二.S ...

  7. SpringCloud从入门到精通(超详细文档二)

    上一篇文档(SpringCloud从入门到精通之超详细文档一)已经对Springboot/SpringCloud做了简单的介绍以及应用讲解,下面将继续为大家介绍SpringCloud后续应用. 第12 ...

  8. Spring Cloud Alibaba - Gateway 入门案例(二)(Gateway 整合 nacos /(非阿里组件))

    Spring Cloud Alibaba - Gateway 入门案例(二)(Gateway 整合 nacos)(非阿里组件) 回溯 Gateway 整合 nacos 方式一(复杂/灵活/常用) 方式 ...

  9. SpringCloud Gateway 测试问题解决

    SpringCloud Gateway 测试问题解决 参考文章: (1)SpringCloud Gateway 测试问题解决 (2)https://www.cnblogs.com/dalaoyang/ ...

最新文章

  1. python回归取残差_如何用sklearn拟合线性回归后的残差方差
  2. Android 带有字数统计的 TextInputLayout
  3. 面试小记---外部脚本必须包含 script 标签吗?
  4. [SCOI2013]多项式的运算
  5. oracle的空闲等待事件,Oracle 常见的33个等待事件详解
  6. pillow支持python 2和python 3_python3读取图像并可视化的方法(PIL/Pillow、opencv/cv2)...
  7. F5 APM针对Vmware view7.3 VDI业务发布测试问题分析
  8. ActionItemBadge:在actionbar上显示badge数字提示
  9. 安装Jaspersoft Studio
  10. 1.2.2算法设计题
  11. Matlab 阶乘factorial
  12. 用计算机分析卫星云图 进行实时天气,卫星云图,气象卫星云图,卫星云图高清实时滚动播放 - 围观天气...
  13. adams2020安装教程(附详细图文安装教程)
  14. SSD选购扫盲指南M.2接口硬盘选择:NVMe于sata3
  15. 计算机文字输入程序,电脑“造字”,其实很简单
  16. 《土力学与地基基础(二)》在线平时作业3
  17. UD三分区补充教程1——激活不同分区对于UD三分区bios启动和uefi启动兼容性影响的讨论
  18. C语言超出类型数值范围的表示方法
  19. 纹理分析及其在医学成像中的应用
  20. 【知识图谱】知识图谱概论,通读知识图谱相关概念

热门文章

  1. android后置双摄像头,双后置摄像头_手机Android频道-中关村在线
  2. Wireshark网络抓包工具的使用
  3. java 判断汉字音调_JAVA实现汉字转换为拼音 自动识别常用多音字 JPinyin
  4. 计算机平面设计基础材料,计算机平面设计资料要点.doc
  5. Linux镜像run起来,六、Docker run 运行镜像
  6. 从燥热到颠覆,618还缺什么?
  7. 流畅的Python(2)
  8. Linux中命令rpm,Linux中rpm命令起什么作用呢?
  9. 《想骗我没门》读书笔记,第一招 开门见山
  10. 京东pop店铺订单导出