Spring Cloud Gateway –配置简单路由

可以将Spring Cloud Gateway视为Spring Cloud Netflix Zuul项目的后续产品,并有助于在微服务环境中实现Gateway模式 。 它建立在
Spring Boot 2和Spring Webflux端到端都是无阻塞的-它公开了一个基于Netty的服务器,使用基于Netty的客户端进行下游微服务调用,并在其余流程中使用了反应堆核心 。

我的目的是演示如何使用Spring Cloud Gateway以多种方式转换基于Spring Cloud Netflix Zuul的小型路由。

Spring Cloud Netflix Zuul

Spring Cloud Zuul允许使用此处表示为yaml的属性文件来配置简单的路由规则:

zuul:routes:sample:path: /zuul/**url: http://httpbin.org:80strip-prefix: true

该路由将在Zuul中暴露一个终结点,该终结点将拦截对前缀为“ / zuul”的uri的任何请求,并在去除“ zuul”前缀后将其转发至下游系统。

Spring Cloud Gateway

Spring Cloud Gateway允许以三种方式对等效功能进行编码-使用基于Java的DSL,使用基于Kotlin的DSL和使用基于简单属性的配置。

可以使用出色的http://start.spring.io网站生成一个入门项目:

基于Java的DSL

以下是创建类似于Zuul路由的基于Java的dsl:

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class GatewayRoutes {@Beanpublic RouteLocator routeLocator(RouteLocatorBuilder builder) {return builder.routes().route(r ->r.path("/java/**").filters(f -> f.stripPrefix(1)).uri("http://httpbin.org:80")).build();}}

这是可读的DSL,它配置一条路由,该路由以“ java”为前缀拦截uri,并在去除该前缀后将其发送到下游系统。

基于Kotlin的DSL

基于Kotlin的DSL配置此路由如下所示。

import org.springframework.cloud.gateway.route.RouteLocator
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder
import org.springframework.cloud.gateway.route.builder.filters
import org.springframework.cloud.gateway.route.builder.routes
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration@Configuration
class KotlinRoutes {@Beanfun kotlinBasedRoutes(routeLocatorBuilder: RouteLocatorBuilder): RouteLocator =routeLocatorBuilder.routes {route { path("/kotlin/**")filters { stripPrefix(1) }uri("http://httpbin.org")}}
}

我最初为Spring Cloud Gateway路由提交了基于Kotlin的DSL的PR ,因此偏向于使用Kotlin配置Spring Cloud Gateway :-)。 该路由采用前缀为“ kotlin”的URL,并在进行下游微服务调用之前将其剥离。

物业路线

最后是基于属性的属性:

spring:cloud:gateway:routes: - predicates:- Path=/props/**filters:- StripPrefix=1uri: "http://httpbin.org"

像Java和Kotlin版本一样,此路由使用带有前缀“ props”的url,并在进行下游调用之前将其删除。 基于属性的版本具有在运行时可刷新的附加优点。

结论

通过比较Spring Cloud Netflix Zuul的典型配置如何映射到Spring Cloud Gateway,这是Spring Cloud Gateway的快速入门。

翻译自: https://www.javacodegeeks.com/2018/04/spring-cloud-gateway-configuring-a-simple-route.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win7台式电脑怎么连wifi_台式电脑怎么用wifi网络

现在很多朋友的手机使用的都是wif网络,既然手机可以用wifi,那么电脑怎么用wifi呢,其实电脑用wifi的方法也有很多种,为了大家通俗易懂,先来说一种简单的方法吧!台式电脑怎么用wifi网络1、首先必须要有一个无…

敏感词库php数组,PHP 实现敏感词 / 停止词 过滤(附敏感词库),敏感类词语大全...

PHP 实现敏感词 / 停止词 过滤(附敏感词库)PHP实现了敏感词/停用词过滤(带敏感词库),过滤敏感单词和字符是网站,的一项基本功能,因此有必要设计一个好的、高效的过滤算法。在敏感词过滤算法中,必须减少计算量,而DFA算法…

分子动力学模拟软件_功能玻璃专题——分子动力学模拟预测氧化钠含量对二元钠硅酸盐玻璃弹性模量的影响...

赵 谦 1,祖 群 1,齐 亮 2,胡永杰 2,孙雪坤3,陈 阳 1(1. 中材科技股份有限公司,中国南京 210012;2. 美国密歇根大学,美国密歇根州安娜堡 48109-236; 3. 美国大陆地科技…

javafx中的tree_JavaFX中的塔防(2)

javafx中的tree在最后一部分,我们创建了一个简单的编辑器,让我们放置炮塔。 现在,我们将在敌人起源处添加一个生成点,并为其定义攻击目标。 首先,我将通过对象层向地图添加更多信息。 这是标准的TMX,因此我…

oracle全角字符转半角,Oracle 表字段全角字符轉換半角字符辦法

在Oralce的某一個表中,一個地址字段包含了全角的字符,需要轉換為半角字符,以便進一步處理。表名:a包含全角字符的字段:address編輯表結構,添加一列:address2在PLSQL中,新建SQL窗口&a…

fanuc机器人与视觉通信_要说工厂干起活来:工业机器人和数控机床才是真正的一对!...

我们常说团结就是力量,只有相互配合,才能把工作做得更加完美。这不仅仅适用于人类。工业机器人和数控机床也是一样的,也是需要相互配合才能做好工作,提高工厂的生产效率。所以今天要学习的是工业机器人和数控机床是怎么配合工作的…

在Microsoft Azure上运行Eclipse MicroProfile

在本文中,我将通过展示如何在Microsoft Azure Web Apps for Containers中执行操作来跟踪有关在Oracle Cloud中运行Eclipse MicroProfile应用程序的系列文章。 我正在使用与以前的帖子相同的简单应用程序CloudEE Duke 。 唯一的区别是,我现在将应用程序打…

php ajax 更改状态,phpajax实现无刷新获取天气状态_PHP教程

首先我们要明白一点我们自己是无法来做天气预报这种功能的,这里我们只要调用api接口返回的数据就可以了,下面是以中国天气网的api接口调用实例我们一起来学习。天气已经成为生活中不可缺少的话题,与我们的生活有着密切的关系,我博…

注入dll到explorer.exe中无反应_MBR膜生物反应器的安装及技术要求都有什么呢?

MBR膜生物反应器在安装的时候,其中是有着事项值得我们注意的,那么MBR膜生物反应器的安装及技术要求主要是什么呢?下面一起来了解下吧。1.MBR膜生物反应器管道安装连接应该在设备就位时考虑好,罐体就位时必须按设备自重&#xff0c…

什么是互联网大厂_2020阿里、腾讯、字节跳动等14家互联网大厂薪资水平大汇总...

联网大厂已经成为求职者的“必争之地”。无论是从薪资待遇、发展机会,还是从平台资源、技术实力来看,互联网大厂都是不错的选择。当然,不同的企业薪资水平还是存在一定的差距,对应的要求也会有所不同。今天,我们再来看…

解神者php奥义高阶,《解神者》角色月曦九攻略技能解析和兽主推荐

解神者已经有一段时间了,很多新玩家对角色还不太了解,今天就给新手玩家解析一下月曦九角色的技能攻略和兽主推荐。月曦九也是解神者所有角色里伤害很高的角色之一。月曦九的神权一技能,此技能共有两段伤害,在第一段位移和伤害释放…

jax-rs jax-ws_使用JAX-RS的HTTP缓存

jax-rs jax-ws在上一个博客中,我们讨论了不同类型的缓存及其用例。 在本文中,我们将探讨如何利用HTTP响应标头和JAX-RS提供的支持来利用缓存。 过期标题 在HTTP 1.0中,一个名为Expires的简单响应头将告诉浏览器它可以缓存对象或页面多长时间…

php常驻对象,php对象

linux中用户的主目录~-在Linux中代表用户主目录 对一般用户,-表示/home/(用户名) 对于root用户,-表示/root 如果要查看-的真实面貌,可以先进入-目录,然后用pwd -P命令查看-的绝对路径 cd ~ ...SQL2005语句实现行转列,列转行在做报表时,经常需要将数据表中…

无穷级数求和7个公式_大家看,用反证法判别级数敛散性(送微积分同学)!...

反证法证明级数发散题目、 判断级数 的收敛性。解: 反设收敛。则收敛。所以收敛, 所以收敛, 它为正项级数,但是通过比较分子分母次数得到因为发散, 所以发散,矛盾。所以原级数发散。注记: 教材中…

用户身份验证最佳做法清单

用户身份验证是每个Web应用程序共享的功能。 我们已经实现了很多次,所以很早以前就应该完善它。 然而,错误无时无刻不在发生。 造成这种情况的部分原因是,可能出问题的清单很长。 您可能会错误地存储密码,可能会具有脆弱的密码重…

matlab二元一次方程求解_高中化学二元混合物的十字交叉法解法

“十字交叉法”是高中化学计算题中巧解二元混合物问题的一种常用的有效方法,正确运用“十字交叉法”,可以帮助同学们方便、迅速地解决计算问题。速解的前提:1、必须清楚“十字交叉法”运用后的比例比系——“看分母”法则。即特性数值的分母所…

Loadruner压数据库oracle,LoadRunner连接Oracle数据库(转)

51Testing软件测试网0U#~*o\*l这个是在51上转载的。。e $b#v.m051Testing软件测试网"HyG#r%f;sv7[8yr-S$_zOt }Hs0多谢楼主的奉献。。。D_2c#Sb~p.y9\08\WHR\I0#include51Testing软件测试网H(zk/dI1QawtBstatic LRD_INIT_INFO InitInfo{LRD_INIT_INFO_EYECAT};51Testing软…

python怎么输入两行_python交互模式下输入换行/输入多行命令的方法

先给大家介绍下python交互模式下输入换行/输入多行命令的方法 换行方法 \ 如: >>> print aaa; \ ... print bbb; \ ... print ccc 注意;号的使用。 python本身语句结束和间隔都是不需要;号的,但是在换行时要使用;号&…

linux系统读取excel文件是否存在,小弟我用poi读excel,在window下没有有关问题,但把程序放到linux上时,读取客户端的excel文件报错,不...

我用poi读excel,在window下没有问题,但把程序放到linux上时,读取客户端的excel文件报错,不知道如何解决我用poi读excel,在window下没有问题,但把程序放到linux上时,读取客户端的excel文件报错&a…

利用python计算圆球的体积_python计算圆周长、面积、球体体积并画出圆

#https://github.com/RobberPhex/GTK-Example-CalcArea from gi.repository import Gtk, Gdk, GdkPixbuf from PIL import Image, ImageDraw from io import BytesIO from math import pi class Model:模型类 存储半径,计算周长、面积、体积def __init__(self): sel…