Spring Cloud 网关 Gateway 配置使用 springcloud alibaba

2024-05-10 02:18

本文主要是介绍Spring Cloud 网关 Gateway 配置使用 springcloud alibaba,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

客户端向spring-cloud-gateway请求网关映射处理程序(gateway handler mapping),如果确认请求与路由匹配,则将请求发送到web处理程序(gateway web handler),web处理程序通过特定于该请求的过滤器链处理请求,图中filters被虚线划分的原因是filters可以在发送代理请求之前(pre filter)或之后执行逻辑(post filter)。先执行所有pre filter逻辑,然后进行请求代理。在请求代理执行完后,执行post filter逻辑。

开始使用Spring-Cloud-Gateway
Spring Cloud Gateway依赖Spring Boot和Spring Webflux提供的Netty runtime,所以springboot必须在2.0或者以上,springcloud在Finchley以上,基本springcloud环境确认后,然后引入:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

路由配置

官网都是用的yml配置文件配置,与properties配置文件配置稍有不同,我这里全部使用properties配置文件配置。

直接使用注册中心路由配置

#使用服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true
#服务路由名小写
spring.cloud.gateway.discovery.locator.lower-case-service-id=true

指定服务配置

#设置路由id
spring.cloud.gateway.routes[0].id=auth-service
#设置路由的uri
spring.cloud.gateway.routes[0].uri=lb://auth-service
#设置路由断言,代理servicerId为auth-service的/auth/路径
spring.cloud.gateway.routes[0].predicates[0]= Path=/auth/**

spring.cloud.gateway.routes.predicates:路由断言,配置时必须得有一项,不一定是Path;

spring.cloud.gateway.routes.uri:配置路由uri,"lb://‘serviceId’"前代表路由的服务,同时也可以是一个url

编码服务配置

//java项目www.fhadmin.org
@Configuration
public class RoutesConfiguration {@Beanpublic RouteLocator customRouteLocator(RouteLocatorBuilder builder) {return builder.routes().route(predicateSpec ->predicateSpec.path("/auth/**").uri("lb://auth-service").id("auth-service")).build();}}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

总结
Spring-Cloud-Gateway与Zuul 1.0相比,前者基于WebFlux与Reactive线程模型的异步非阻塞框架,服务通过底层的Netty来进行发布及运行,异步非阻塞可以有效降低系统的线程数量,只需要很少的线程就可以完成较高的并发支持,而Zuul1.0是基于servlet性能上的差距可想而知,同时Spring-Cloud-Gateway还内置了许多的路由断言(Factories)与过滤器(Filter)可以减少开发人员的编码,和更好的功能支持和扩展

这篇关于Spring Cloud 网关 Gateway 配置使用 springcloud alibaba的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/975148

相关文章

Java的foreach语句

foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。 foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。 foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解fo

关于Java的数组的使用

关于一维数组的使用 代码示例一如下: package com;public class test_array {public static void main(String[] args){//1.如何定义 一个 数组//1.1数组的声明String[] names;int[] scores;//1.2数组的初始化://1.2.1静态初始化:初始化数组与数组元素赋值同时进行nam

关于Java的URL编程

前言: 1> URL(Uniform Resource Locator):统一资源定位符,它表示 Internet 上某一资源的地址。 通过 URL 我们可以访问 Internet 上的各种网络资源,比如最常见的 www,ftp 站点。 浏览器通过解析给定的 URL 可以在网络上查找相应的文件或其他资源。  2> URL的基本结构由5部分组成: <传输协议>://<主机名>:<端口号

Android_03_数据库的使用总结

前言: 1>区分SQL和SQLite SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。 SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。 不幸地是,存在着很多不同版本的 SQL 语言,但是为了与 ANSI 标准相

Android_02_关于SharePreferences的使用

前言: 我们使用SharePreferences的主要目的是针对一些简单的数据进行存取,其是通过键值对来存取的, 其实质是通过xml文件进行保存的;对于一些简单数据的存取,我们可以用SharePreferences,替代 其他几种复杂的数据存取的方式,比如文件的读写或者数据库的操作; 本示例演示的内容是:通过SharedPreferences来实现记住密码的功能,无需第二次再输入密码

Source Insight的安装及使用

第一步:source insight的下载及安装 source insight的资源下载见如下链接: http://download.csdn.net/detail/u010661782/9454935 第二步:source insight的使用 1>新建工程 project  ----->  new project  ------>   填写工程名和工程存放

Java的clone()方法使用详解

前言: 我们知道,在java的object类中,有这么一个方法clone(),这个方法有什么用呢?怎样才能正确地使用这个方法呢? 下面一一来进行阐述一下 clone()方法详解: 1>clone()方法的作用 顾名思义,clone()方法的作用就是克隆的意思,引入这个方法,这样就便于我们构建属于自己的一些本地对象副本。 这样我们就不用担心因为副本对象的引用而使原生的对象发生改变。

Android的Paint和Canvas的使用总结

前言: 在自定义控件时,我们有时可能会用到Paint和Canvas这两个类, Paint相当于我们在画画时的画笔,Canvs相当于我们在画画时的画布, 下面来简单讲一下这两个类常见的一些用法 Paint的使用总结: setAlpha(int a): 设置画笔的透明度,这样画笔所画的位置就会呈一定的透明度 setAntiAlias(boolean aa): 设置 tr

Android的FragmentTabHost使用总结(顶部或底部菜单栏)

前言: 我们经常看到一些app的自带一些标签,并且可以来回进行切换, 本章我们就通过FragmentTabHost来学习一下其如何实现,效果图如下: 步骤一: 编写布局文件 <android.support.v4.app.FragmentTabHost android:layout_width="match_parent" android:la

Android的RecyclerView使用总结

前言: RecyclerView 小组件比 ListView 更高级且更具灵活性。 此小组件是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效的滚动操作。 如果您有数据集合,其中的元素将因用户操作或网络事件而发生改变,请使用RecyclerView 小组件。 RecyclerView  类别将通过提供下列功能简化庞大数据集的显示与处理: 用于项目定位的布局管理器 用于通用项目