SpringCloud Getway服务网关
Gateway网关
网关的角色是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问。
API 网关是一个处于应用程序或服务(提供 REST API 接口服务)之前的系统,用来
管理授权、访问控制和流量限制等,这样 REST API 接口服务就被 API 网关保护起
来,对所有的调用者透明。因此,隐藏在 API 网关后面的业务系统就可以专注于创建
和管理服务,而不用去处理这些策略性的基础设施。
Gateway特性:
基于Spring Framework ,Project Reactor 和 Spring Boot 2.0 进行构建;
可以对路由指定 Predicate (断言) 和 Filter (过滤器);
集成Hystrix的断路器功能;
集成 Sring Cloud 服务发现功能;
易于编写的 Predicate(断言) 和 Filter(过滤器);
请求限流功能;
支持路径重写
三大核心概念:
Route(路由)
路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组
成,如果断言为true则匹配该路由
Predicate(断言)
参考的是java8的java.util.function.Predicate开发人员可以匹配HTTP请求中
的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由
Filter(过滤)
指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者
之后对请求进行修改。
搭建网关微服务
①:创建微服务模块
②:引入pom依赖
<dependencies><!--gateway--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--eureka-client gateWay作为网关,也要注册进服务中心--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!-- gateway和web不能同时存在,即web相关jar包不能导入 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity --><groupId>com.krisswen.cloud</groupId><artifactId>cloud-api-commons</artifactId><version>${project.version}</version></dependency>
</dependencies>
③:编写application.yml配置文件
server:port: 9527
spring:application:name: cloud-gateway## GateWay配置cloud:gateway:routes:- id: payment_routh # 路由ID , 没有固定的规则但要求唯一,建议配合服务名uri: http://localhost:8001 # 匹配后提供服务的路由地址predicates:- Path=/payment/** # 断言,路径相匹配的进行路由- id: payment_routh2 # 路由ID , 没有固定的规则但要求唯一,建议配合服务名uri: http://localhost:8001 # 匹配后提供服务的路由地址predicates:- Path=/payment/lb/** # 断言,路径相匹配的进行路由# 注册进 eureka Server
eureka:client:service-url:defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/register-with-eureka: truefetch-registry: true
④:编写启动类
@SpringBootApplication
@EnableEurekaClient
public class GatewayMain9527 {public static void main(String[] args) {SpringApplication.run(GatewayMain9527.class,args);}
}
SpringCloud Getway服务网关相关推荐
- SpringCloud 微服务网关Gateway 动态路由配置
概述:在上一章节<SpringCloud 微服务网关Gateway介绍及简单路由配置>中我们讲述了Gateway的最简单的路由配置方式.但是其中比较明显的问题就是我们在配置路由服务的地址时 ...
- SpringCloud 微服务网关Gateway介绍及简单路由配置
概述:什么是微服务网关?为了解决用户客户端在调用微服务系统中的多个消费者工程接口时,需要维护非常多的消费者应用接口地址等信息,以及可能存在不同应用见的调用跨域等问题,微服务网关组件随即出现.网关作为用 ...
- SpringCloud Gateway 服务网关,限流
SpringCloud Gateway 提供了基于Redis 和lua脚本实现的令牌桶算法进行限流,即 RequestRateLimiterGatewayFilterFactory类,通过设置过滤器实 ...
- SpringCloud Gateway 服务网关,断言
SpringCloud Gateway 是SpringCloud 生态系中的网关,不仅提供统一路由功能,通过 Filter 过滤链实现网关的基本功能,比如用户验证,鉴权,限流等功能.它使用非阻塞模式, ...
- 带你入门SpringCloud 之 服务网关 Zuul
前言 服务端提供 RestFul API ,客户端如果想要使用某个服务直接调用服务的API 即可.但是在微服务环境中会有很多的具体服务,而客户端在需要使用众多的服务时在和具体的服务打交道这样虽然可以实 ...
- SpringCloud—— 微服务网关GateWay
目录 1.GateWay网关概述 1.1.什么是GateWay? 1.2.为什么要使用微服务网关? 1.3.Zuul与GateWay网关的区别? 2.快速入门 2.1.创建项目 2.2.配置yml文件 ...
- Spring-Cloud 微服务网关Zuul、ZuulFilter过滤器和限流
微服务网关 一. Zuul网关 1. 创建工程 并导入依赖 2. application.yml 配置文件 3. 启动类添加注解 4. 依次启动服务 5. 进入浏览器访问测试 二. ZuulFilte ...
- SpringCloud Gateway 服务网关,过滤器
SpringCloud Gateway 过滤器有 pre 和 post 两种方式,请求首先经过 pre 过滤器处理,成功后被转发到对应的服务,然后经过 post 过滤器处理,将结果返回客户端.这种机制 ...
- SpringCloud - GateWay服务网关
文章目录 一. Gateway概述 1.Gateway是什么 2. Gateway作用 3. 微服务架构中网关的位置 4. SpringCloud Gateway概念 5. SpringCloud G ...
最新文章
- 微生物组—宏基因组分析专题研讨会(线上课已开通,可以报名,线下课程时间待定)...
- Spring Boot中Starter是什么
- pandas fillna_【Python基础】快速提升效率的6个pandas使用小技巧
- 通过shell访问hive_【HIVE】SHELL调用Hive查询
- 南水北调真相 林凌刘世庆范晓做客四川新闻网
- 苹果AirPods有望在年末推出新款产品 或将支持防水功能
- dlut-KFQ概率上机1
- 删除一个用户下的所有表脚本
- 计算机组成知识试题及答案,2015年计算机考研:计算机组成原理试题六【附答案】...
- 启用多CPU多线程,加快加速OpenJDK的编译办法
- arcmap发布三维地图_三维地图制作-百纳九洲
- 【STM32】STM32F103C8T6+L298N通过PWM控制直流电机转速
- python读取txt文件
- 第一章课后习题源代码(笔记自用)
- MATLAB读取Execl数据并绘制曲线图
- 此计算机怎样连接未识别的网络连接,电脑插入网线后显示“未识别网络”怎么办?...
- 一己之力,不过举鼎,奈何撼天;一世芳华,不余百年,怎易如愿?
- 微信语音(录音,上传,下载,播放,停止)
- selenium PhantomJS Fiddler使用
- 信号与系统——阶跃信号与冲激信号
热门文章
- Python实用脚本/算法集合, 附源代码下载
- win10安装Mysql8的两种方式(安装/卸载-图文教程)
- UI设计教程分享:关于海报的合成过程
- 3650m5设置u盘启动_联想启天M415设置u盘启动步骤(支持uefi/bios双启动)
- 什么是附近推?附近推怎么投放?
- IT行业大致工作方向
- Gem Port和T-CONT实现业务复用
- 【PyTorch】如何取得预训练模型的标签label列表(以 Alexnet 在 ImageNet 上的预训练模型为例)
- 一位豪气的老板,送东西送到让客户都不好意思了,当天收款100万!
- android八股文