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


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

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

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

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

    需求:为什么需要网关

    在这里插入图片描述

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

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

    注册GateWay到Eureka中去

    创建Maven模块

    在这里插入图片描述

    在这里插入图片描述

    导入相关依赖

    <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>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    配置相关信息

    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/
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    配置Eureka服务发现注解

    
    @EnableEurekaClient
    @SpringBootApplication
    public class GateWayApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(GateWayApplication.class, args);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    注册成功
    在这里插入图片描述

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

    流程配置在这里插入图片描述

    路由断言工厂Route Predicate Factory

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    路由过滤器 GatewayFilter

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    全局过滤器

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    过滤器执行顺序

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    跨域问题处理

    在这里插入图片描述

    在这里插入图片描述

    总结

    在这里插入图片描述

  • 相关阅读:
    基于PyTorch的交通标志目标检测系统
    重学java 20.面向对象 继承 下
    MATLAB基本绘图功能使用
    LINUX的XEN和KVM到底区别在什么地方?
    微信小程序&会议OA首页-开发说明&创建项目&关于flex布局&关于尺寸单位(rpx)&关于WXS&轮播图&会议信息
    appium+python自动化测试
    乐鉴教育创始人花花受访香港Now TV,疫情后国内留学情况变化?
    [附源码]SSM计算机毕业设计医院药房管理系统JAVA
    4.RabbitMQ高级特性
    LeetCode561. 数组拆分
  • 原文地址:https://blog.csdn.net/futurn_hero/article/details/128200417