95-java-springcloud(08)-网关-gateway

gateway

网关是什么,网关是一切外部访问程序的入口,他控制这这个服务架构的出入,鉴权,代理,流控,监控等.
在这里插入图片描述

一.简介

1.官网

官网地址:
https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.3.RELEASE/reference/html/#gateway-starter

2.是什么?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Spring Cloud Gateway 使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架
在这里插入图片描述

3.作用

网关在微服务架构中的位置
在这里插入图片描述
作用:

  • 反向代理
  • 鉴权
  • 流量控制
  • 熔断
  • 日志监控
  • 等等
4.gateway于zuul的区别和特性

gateway的特性:

  • 动态路由
  • 路由断言(Predicate)和过滤(filter)
  • 继承Hystrix的断路器功能
  • 继承springcloud的服务注册与发现功能
  • 请求限流
  • 支持路劲重写

gateway和zuul的区别

  • gateway是基于NIO的,非阻塞式架构模型
  • zuul是基于阻塞IO模型的.
  • gateway还支持webSocket,并且与spring紧密集成.

二.gateway的原理分析

1.gateway的核心组件
  • Route(路由)
    #路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由
  • Predicate(断言)
    #参考的是java8的java.util.function.Predicate开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由
  • Filter(过滤)
    #指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。

在这里插入图片描述

2.gateway的工作流程

在这里插入图片描述
步骤:

  • 请求发送到handler Mapping上,handler mapping对比predicate(断言)匹配路劲.
  • 在发送到web handler上,handler在经过一系列的过滤链.
  • 经过过滤链之后才是发送到具体的微服务上请求服务.
  • 再请求之后还会经过一系列的过滤链,回到web handler.
  • web handler再返回给handler mapping.

总结:路由转发,断言匹配,过滤,执行业务

三.gateway搭建

1.基本使用

(1) 建module

(2) 改pom

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

(3) 写yml

server:
  port: 9527
spring:
  application:
    name: cloud-gateway
  cloud:
    gateway:
      routes:
      	#路由地址1
        - id: payment_routh #路由的ID,没有固定规则但要求唯一,建
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值