• 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

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

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

    在这里插入图片描述

    全局过滤器

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    过滤器执行顺序

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    跨域问题处理

    在这里插入图片描述

    在这里插入图片描述

    总结

    在这里插入图片描述

  • 相关阅读:
    AOJ 0531 坐标离散化
    如何在Visual Studio新C++项目中调用之前配置过的库?
    Docker 安装部署 Gitlab 存储路径迁移
    Python的文件操作
    初识面向对象&网络&并发编程
    Nessus扫描结果出现在TE.IO或者ES容器结果查看问题解决方案
    GPT实战系列-使用LangChain内部工具
    javaETC用户自驾游推荐系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    java计算机毕业设计医疗器械销售电子商城源码+系统+mysql数据库+lw文档
    kubernetes-Pod详解2
  • 原文地址:https://blog.csdn.net/futurn_hero/article/details/128200417