首页 > 其他分享 >spring-cloud-alibaba-整合spring-clouid-gateway-3.1.4

spring-cloud-alibaba-整合spring-clouid-gateway-3.1.4

时间:2022-12-14 13:11:16浏览次数:81  
标签:clouid spring nacos alibaba starter gateway cloud

spring-cloud-alibaba-整合spring-clouid-gateway-3.1.4

前言

最近使用较新版本的spring-cloud-alibaba搭建微服务框架, 在整合spring-cloud-gateway时遇到了一些问题, 所以记录一下, 如有不妥当的地方欢迎留言, 我会及时更正

版本说明

组件依赖 版本说明 官网地址
spring-boot 2.6.11 https://spring.io/projects/spring-boot#learn
spring-cloud-netflix 2021.0.4 https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
spring-cloud-alibaba 2021.0.4 https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明
nacos-server 2.0.4 https://github.com/alibaba/nacos/releases/tag/2.0.4
nacos-client 2021.0.4.0
spring-cloud-starter-loadbalancer 3.1.5
spring-cloud-gateway 3.1.4

引入spring-cloud-gateway

  • pom.xml
<dependencies>
  <!--SpringBoot-->
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
  </dependency>

  <!--spring cloud alibaba-->
  <!--nacos 服务注册与发现 -->
  <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  </dependency>

  <!-- nacos 配置中心 -->
  <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  </dependency>

  <!-- openfeign 具备RPC通信能力 -->
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
  </dependency>

  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-loadbalancer</artifactId>
  </dependency>

  <!--spring cloud gateway 网关-->
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-gateway</artifactId>
      <exclusions>
          <exclusion>
              <groupId>org.hibernate.validator</groupId>
              <artifactId>hibernate-validator</artifactId>
          </exclusion>
      </exclusions>
  </dependency>
</dependencies>

注意: 需要将pom中 spring-cloud-starter-gateway 依赖排除 hibernate-validator这个包, 不然会报错

spring-cloud-gateway-springboot项目配置

  • application.yml
server:
  port: 8010
  tomcat:
    uri-encoding: UTF-8
  max-http-header-size: 80KB

spring:
  application:
    name: gateway-server-01
  profiles:
    active: dev
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    default-property-inclusion: non_null
    time-zone: GMT-8
    serialization:
      WRITE_DATES_AS_TIMESTAMPS: false
    property-naming-strategy: SNAKE_CASE
  main:
    web-application-type: reactive
  • application-dev.yml
spring:
  cloud:
    ## gateway 注册到nacos
    nacos:
      discovery:
        server-addr: http://192.168.88.100:8848
        username: nacos
        password: nacos
        group: DEFAULT_GROUP
        service: ${spring.application.name}
        register-enabled: true
      config:
        group: DEFAULT_GROUP
        share-data-ids: ${spring.application.name}-${spring.profiles.active}
        server-addr: http://192.168.88.100:8848
        namespace: public
    ## gateway config
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
        ## 需要路由到的 server name
        - id: blog-admin-01
          # 采用 LoadBalanceClient 方式请求, 以 lb:// 开头, 后面的是注册在 Nacos 上的服务名
          uri: lb://blog-admin-01
          # Predicate 翻译过来是"谓词"的意思,必须,主要作用是匹配用户的请求, 有很多种用法
          predicates:
            - Path=/blog-admin/**
          filters:
            # 前缀过滤, 默认配置下, 我们的请求路径是 http://localhost:8888/business-oauth2/** 这时会路由到指定的服务
            # 此处配置去掉 1 个路径前缀, 再配置上面的 Path=/api/**, 就能按照 http://localhost:8888/api/** 的方式访问了
            - StripPrefix=1
  config:
    import: nacos:application-dev.yml
  • SpringBoot启动类
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewayServerApplication.class, args);
    }
}
  • Nacos服务列表

image.png

验证

需要通过gateway转发到具体的应用服务, 这里通过访问gateway, 转发到 blog-admin-01这个服务, 下面运行结果说明是没有问题的

image.png

标签:clouid,spring,nacos,alibaba,starter,gateway,cloud
From: https://www.cnblogs.com/screen/p/16981774.html

相关文章

  • SpringBoot(五):JSR303校验
    一、什么是JSR303校验JSR,是JavaSpecificationRequests的缩写,意思是Java规范提案,是指向JCP(JavaCommunityProcess)提出新增一个标准化技术规范的正式请求。JCP(JavaCo......
  • SpringCloud-Nacos学习笔记
    spring-cloud-alibaba版本说明https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8ESpringBoot2.4+和以下版本之间变化较大......
  • springboot依靠注解的定时任务与hutool的定时任务
    在学习hutool文档时发现它也有一个定时任务,怎么实现的呢?resources目录下创建一个config目录,config目录下创建cron.setting文件[com.fzg.common.demo.uuid]UUIDdemo......
  • spring-3
    https://www.bilibili.com/video/BV13R4y1F7aq/?p=18&spm_id_from=pageDriver&vd_source=562955621af926e4655ded0199c26c61      ......
  • 【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基
    SpringCloudAlibabaNacosDiscoverySpringBoot应用程序在服务注册与发现方面提供和Nacos的无缝集成。通过一些简单的注解,您可以快速来注册一个服务,并使用经过双十......
  • Spring Cloud架构流程简介
    相对于传统的单体架构,微服务架构引入了太多的概念,让新手有点无可适从。所以,我们要清楚哪些是自身需要的。下面我们分析一下哪些组件是开发一个使用微服务架构的系统所必需......
  • Spring Cloud版本说明和Spring Boot版本选择
    SpringCloud是一个由众多独立子项目组成的大型综合项目,每个子项目有不同的发行节奏,都维护着自己的发布版本号。 SpringCloud通过一个资源清单(BillofMaterial,BOM)来管......
  • springMVC06(1-响应,2-类返回成JSON数据)
    一、大纲二、响应JSON数据(把你给的"类"转化成"JSON"数据)2.1:需要有"@ResponseBody"这个注解2.2:需要导入JSON坐标<dependency><groupId>com.fasterxml.......
  • springMvc05(“日期型”参数传值)
    一、@DateTimeFormat注解的解析:二、解析:2.1-@DateTimeFormat(pattern="yyyy/MM/ddHH:mm:ss")Datedate3自定义传入时间的类型2.2-它所对应的传参值:在PostMan中:3......
  • 1.spring-boot
    spring-boot是SpringBoot的主模块,也是支持其他模块的核心模块,主要功能包含以下几点。 (1)提供了一个用于启动Spring应用的主类,它的主要作用是创建和刷新Spring容器的上......