青柠开车Spring Cloud(六) —— Spring Cloud Gateway与zuul使用对比
青柠开车Spring cloud(一) —— 生态系统以及在企业项目中的基础架构图 (1-7),有时间可以看看
项目源码github地址
- 补充
Gateway
简介- 快速入门
Gateway
项目基本配置- 加入gateway网关配置
- 集成
Eureka
补充
使用网关前项目架构
使用网关后项目架构

Gateway
简介
官方文档、官方demo
spring-cloud-Gateway
是spring-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使用对比相关推荐
- Spring Cloud(六) 服务网关GateWay 入门
前文回顾: Spring Cloud(一)Eureka Server-单体及集群搭建 Spring Cloud(二) 配置Eureka Client Spring Cloud(三) 熔断器Hystri ...
- 青柠开车Spring Cloud(五) —— spring cloud的窗口zuul(路由和过滤器)
项目源码github地址 什么是zuul 快速入门 zuul项目基本配置 将zuul加入eureka-server中,实现高可用 什么是zuul zuul在之前我举得例子中,担任的是警察的角色.准确的 ...
- 青柠开车Spring Cloud(七) —— 断路器 Hystrix
项目源码github地址 什么是Hystrix 快速入门 Hystrix项目基本配置 Hystrix仪表盘 基本配置 仪表盘的使用 什么是Hystrix 还以商城为例: 单点服务  在单点部署的商场 ...
- 青柠开车Spring Cloud(三) —— Spring cloud Eureka
项目源码github地址 什么是Eureka 快速入门 创建spring boot项目 引入spring cloud配置 引入Eureka依赖jar包 application.properties的配 ...
- Spring系列(六) Spring Web MVC 应用构建分析
DispatcherServlet DispatcherServlet 是Spring MVC的前端控制器名称, 用户的请求到达这里进行集中处理, 在Spring MVC中, 它的作用是为不同请求匹配 ...
- JAVAspringboot微服务b2b Spring MVC+mybatis+spring cloud+spring boot+spring security
鸿鹄云商大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 分布式.微服务.云架构电子商务平台 java ...
- spring cloud alibaba_SpringCloudAlibaba与Cloud搭配方案
一 简介 Spring Cloud Alibaba致力于提供微服务开发一站式解决方案.此项目包括开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发 ...
- Spring Cloud F Spring Boot 2.0 版本升级说明书
Spring Boot 2.0 需要 Java 8 或更高版本.不再支持 Java 6 和 7 了 在 Spring Boot 2.0 中,许多配置属性被重新命名/删除,开发人员需要更新 依赖版本 以 ...
- 电子商务商城源码 Spring Cloud、Spring Boot、Mybatis、Redis
1. 涉及平台 Spring Cloud.Spring Boot.Mybatis.Redis 2. 核心架构 Spring Cloud.Spring Boot.Mybatis.Redis 3. 前端框 ...
最新文章
- R语言复相关或者多重相关性系数计算实战:Multiple Correlation Coefficient
- Android进程保活方案
- 如何操作提升手机端网站的排名优化?
- 雷达成像技术_毫米波立体成像雷达技术研究
- 编程方法学20:图形用户界面
- eclipse环境配置、快捷键及基本操作
- java wait源码_Java精通并发-透过openjdk源码分析wait与notify方法的本地实现
- Oracle中的不等于号
- 英伟达收购交易取消后 ARM将裁员1000人
- redis清理缓存_大话Redis问题
- linux基础--awk文本分析工具详解
- 华为u2020操作指南_用手机水平仪检测水平,操作简单,帮助甚大
- 不同版本的Python,如何pip
- NOPI导出excel
- 知其然不知其所以然!
- 什么才是高标准要求自己?
- SHIMANO各个等级配件的区别
- Unity VR开发教程 OpenXR+XR Interaction Toolkit (二) 手部动画
- ZooKeeper 命令操作
- teamviewer13安装个人免费版
热门文章
- Spring中的Interceptor拦截器中使用@Autowired注解,在运行时会出现空指针
- 1328C Ternary XOR
- Android开发笔记(一百六十二)蓝牙设备的连接与配对
- 十门峡旅游攻略:临安十门峡的春天
- 第31章 MySQL 处理重复数据教程
- 小白的 Python学习笔记 之 input()
- hevc CTB并行
- C++ 将二叉树以前序遍历的顺序转换成链表
- Windows Server 2012 R2 IE浏览器安(qi)装(yong)Adobe Flash Player
- Android NFC的应用