青柠开车Spring cloud(一) —— 生态系统以及在企业项目中的基础架构图     (1-7),有时间可以看看

项目源码github地址

  • 补充
  • Gateway简介
  • 快速入门
    • Gateway 项目基本配置
    • 加入gateway网关配置
    • 集成Eureka

补充

  • 使用网关前项目架构

  • 使用网关后项目架构

Gateway简介

官方文档、官方demo

spring-cloud-Gatewayspring-cloud的一个子项目。而zuul则是netflix公司的项目,只是spring将zuul集成在spring-cloud中使用而已。
还有一种说法是因为zuul2连续跳票和zuul1的性能表现不是很理想,所以催生了spring孵化Gateway项目。

快速入门

spring-cloud创建spring-cloud-gateway子模块项目

Gateway 项目基本配置

  • pom.xml中加入jar包

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!-- 集成eureka --><!--<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>-->
</dependencies>
  • application.properties配置

server.port= 8562
spring.application.name=gateway# 日志打印的级别
logging.level.org.springframework.cloud.gateway = debug#集成eureka时开启
#spring.cloud.gateway.discovery.locator.enabled=true
#集成eureka
#eureka.client.serviceUrl.defaultZone= http://localhost:8761/eureka/
  • springboot启动类
/*** @author : R&M www.rmworking.com/blog*         2018/9/18 11:15*         spring-cloud*         org.qnloft.gateway*/
//@EnableEurekaClient
@SpringBootApplication
public class GateWayApplication {public static void main(String[] args) throws Exception {SpringApplication.run(GateWayApplication.class, args);}
}

加入gateway网关配置

看完上面的内容,小伙伴们应该发现,这和普通的springboot项目有毛区别啊~~~,别着急,让我带领大家来揭开gateway的面纱!

spring-cloud-gateway有两种配置方式,一种是在application.yml中配置,一种是使用@Bean对象注入。(注意:二者选其一)

  • application.yml方式

spring:cloud:gateway:routes:- id: WEBuri: http://127.0.0.1:8661predicates:- Path=/web/{segment}filters:- SetPath=/{segment}
  • @Bean对象注入配置方式

GateWayApplication.java中加入如下内容:


@Bean
public RouteLocator routeLocator(RouteLocatorBuilder builder) {return builder.routes().route("WEB", r -> r.path("/web/{segment}").filters(f -> f.setPath("/{segment}")).uri("http://127.0.0.1:8661")).build();
}

简要说明:

  • id:路由的id,参数配置不要重复,如不配置,gateway会使用生成一个uuid代替。
  • uri:路由的目标地址。注意:uri地址后面不要加 " / "
  • Path:配置路由的路径。比如:/web/{segment}则表示当访问http://127.0.0.1:8562/web/**时候路由的指定的uri上面
  • SetPath:在发起请求时,在路由请求路径后面加上web/后面的内容。如果不配置,将无法路由地址后缀/web/index,只能路由/web

测试:现在我们启动spring-web项目和spring-cloud-gateway项目,浏览器访问:http://127.0.0.1:8562/web/index ,当出现和 http://127.0.0.1:8661/index 相同的内容既证明网关配置成功。

关于@Bean方式更多配置请参见:这里

集成Eureka

将项目的注释部分解注,即可成功集成。

青柠开车Spring Cloud(六) —— Spring Cloud Gateway与zuul使用对比相关推荐

  1. Spring Cloud(六) 服务网关GateWay 入门

    前文回顾: Spring Cloud(一)Eureka Server-单体及集群搭建 Spring Cloud(二) 配置Eureka Client Spring Cloud(三) 熔断器Hystri ...

  2. 青柠开车Spring Cloud(五) —— spring cloud的窗口zuul(路由和过滤器)

    项目源码github地址 什么是zuul 快速入门 zuul项目基本配置 将zuul加入eureka-server中,实现高可用 什么是zuul zuul在之前我举得例子中,担任的是警察的角色.准确的 ...

  3. 青柠开车Spring Cloud(七) —— 断路器 Hystrix

    项目源码github地址 什么是Hystrix 快速入门 Hystrix项目基本配置 Hystrix仪表盘 基本配置 仪表盘的使用 什么是Hystrix 还以商城为例: 单点服务  在单点部署的商场 ...

  4. 青柠开车Spring Cloud(三) —— Spring cloud Eureka

    项目源码github地址 什么是Eureka 快速入门 创建spring boot项目 引入spring cloud配置 引入Eureka依赖jar包 application.properties的配 ...

  5. Spring系列(六) Spring Web MVC 应用构建分析

    DispatcherServlet DispatcherServlet 是Spring MVC的前端控制器名称, 用户的请求到达这里进行集中处理, 在Spring MVC中, 它的作用是为不同请求匹配 ...

  6. JAVAspringboot微服务b2b Spring MVC+mybatis+spring cloud+spring boot+spring security

    鸿鹄云商大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 分布式.微服务.云架构电子商务平台 java ...

  7. spring cloud alibaba_SpringCloudAlibaba与Cloud搭配方案

    一 简介 Spring Cloud Alibaba致力于提供微服务开发一站式解决方案.此项目包括开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发 ...

  8. Spring Cloud F Spring Boot 2.0 版本升级说明书

    Spring Boot 2.0 需要 Java 8 或更高版本.不再支持 Java 6 和 7 了 在 Spring Boot 2.0 中,许多配置属性被重新命名/删除,开发人员需要更新 依赖版本 以 ...

  9. 电子商务商城源码 Spring Cloud、Spring Boot、Mybatis、Redis

    1. 涉及平台 Spring Cloud.Spring Boot.Mybatis.Redis 2. 核心架构 Spring Cloud.Spring Boot.Mybatis.Redis 3. 前端框 ...

最新文章

  1. R语言复相关或者多重相关性系数计算实战:Multiple Correlation Coefficient
  2. Android进程保活方案
  3. 如何操作提升手机端网站的排名优化?
  4. 雷达成像技术_毫米波立体成像雷达技术研究
  5. 编程方法学20:图形用户界面
  6. eclipse环境配置、快捷键及基本操作
  7. java wait源码_Java精通并发-透过openjdk源码分析wait与notify方法的本地实现
  8. Oracle中的不等于号
  9. 英伟达收购交易取消后 ARM将裁员1000人
  10. redis清理缓存_大话Redis问题
  11. linux基础--awk文本分析工具详解
  12. 华为u2020操作指南_用手机水平仪检测水平,操作简单,帮助甚大
  13. 不同版本的Python,如何pip
  14. NOPI导出excel
  15. 知其然不知其所以然!
  16. 什么才是高标准要求自己?
  17. SHIMANO各个等级配件的区别
  18. Unity VR开发教程 OpenXR+XR Interaction Toolkit (二) 手部动画
  19. ZooKeeper 命令操作
  20. teamviewer13安装个人免费版

热门文章

  1. Spring中的Interceptor拦截器中使用@Autowired注解,在运行时会出现空指针
  2. 1328C Ternary XOR
  3. Android开发笔记(一百六十二)蓝牙设备的连接与配对
  4. 十门峡旅游攻略:临安十门峡的春天
  5. 第31章 MySQL 处理重复数据教程
  6. 小白的 Python学习笔记 之 input()
  7. hevc CTB并行
  8. C++ 将二叉树以前序遍历的顺序转换成链表
  9. Windows Server 2012 R2 IE浏览器安(qi)装(yong)Adobe Flash Player
  10. Android NFC的应用