SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作

注册GateWay到Eureka,GateWay的配置操作

Spring章节复习已经过去,新的章节SpringCloud开始了,这个章节中将会回顾微服务相关
主要依照以下几个原则

  1. 每一个组件的Demo和Coding上传到我的代码仓库
  2. 在原有基础上加入一些设计模式,stream+lamdba等新的糖
  3. 通过DeBug调试,进入组件源码去分析底层运行的规则和设计模式

相关的代码已经上传到
链接: GateWayDemo
可以进入develop分支去看,觉得不错的博主记得一键三连支持下

需求:为什么需要网关

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第1张图片

我们原有的微服务调用,比如order服务是通过8080端口,user通过8081端口,
我们希望可以实现

  1. 统一的端口输出
  2. 对内部使用的端口可以不暴露出来
  3. 对访问请求可以进行统一处理
    在这里插入图片描述

注册GateWay到Eureka中去

创建Maven模块

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第2张图片

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第3张图片

导入相关依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

配置相关信息

server:
  port: 10010

spring:
  application:
    name: gateway
  # 开启 Gateway 服务注册中心服务发现
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true # 开启从注册中心动态创建路由的功能,利用微服务名进行路由"
      routes: # 网关路由配置
        - id: user-service # 路由id,自定义,只要唯一即可
          # uri: http://127.0.0.1:8081 # 路由的目标地址 http就是固定地址
          uri: lb://userservice # 路由的目标地址 lb就是负载均衡,后面跟服务名称
          predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
            - Path=/user/**
        - id: order-service # 路由id,自定义,只要唯一即可
          # uri: http://127.0.0.1:8081 # 路由的目标地址 http就是固定地址
          uri: lb://orderservice # 路由的目标地址 lb就是负载均衡,后面跟服务名称
          predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
            - Path=/order/**
#        - id: order-service
#          url: lb://orderservice
#          predicates:
#            - Path=/order/**

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka/


配置Eureka服务发现注解


@EnableEurekaClient
@SpringBootApplication
public class GateWayApplication {

    public static void main(String[] args) {
        SpringApplication.run(GateWayApplication.class, args);
    }
}

注册成功
SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第4张图片

统一url端口 转发
在这里插入图片描述
在这里插入图片描述

流程配置SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第5张图片

路由断言工厂Route Predicate Factory

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第6张图片
在这里插入图片描述
SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第7张图片
SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第8张图片

路由过滤器 GatewayFilter

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第9张图片
SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第10张图片

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第11张图片
SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第12张图片

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第13张图片

全局过滤器

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第14张图片

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第15张图片

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第16张图片

过滤器执行顺序

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第17张图片

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第18张图片

在这里插入图片描述

跨域问题处理

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第19张图片

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第20张图片

总结

SpringCloud框架(四):注册GateWay到Eureka,GateWay的配置操作_第21张图片

你可能感兴趣的:(SpringCloud基础,spring,cloud,eureka,gateway)