快捷搜索: 王者荣耀 脱发

SpringCloud alibaba之gatway搭建(踩了很多坑)

搭建流程

引入依赖 说明: 我的加了log4j2,所以排除掉logging;路由的配置是放在SpringCloud alibaba config服务上,所以加了config的依赖,如果只是路由配置不需要放在配置中心,则需要去掉下面spring-cloud-starter-alibaba-nacos-config的依赖,不然启动会报错。

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- alibaba的cloud组件 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.0.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.0.3.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gateway-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

配置文件

本地配置

bootstrap.yml

spring:
  profiles:
    active: dev

bootstrap-dev.yml

server:
  port: 8080   #gatway是无法设置contex-path的
spring:
  application:
    name: gateway
  cloud:
    nacos:
      discovery:
        namespace: 04783ad2-a10a-4a29-8a98-165ec0d507e1  #nacos上组的id(命名空间)
        server-addr: 192.168.31.11:8848  #nacos的地址
      config:
        namespace: ${spring.cloud.nacos.discovery.namespace}
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
        #以下为加载一个配置文件,多个配置请复制下面,更改数组的序号和data-id的对应你要引入的文件名称
        ext-config[0]:  
          group: fitness-dev #这个填你用的nacos上那一组的配置文件
          data-id: gatway-${spring.profiles.active}.yml

如下图

Nacos配置中心的路由文件配置

踩坑记录

  1. gatway不能引入spring-boot-starter-web依赖
  2. gatway不能设置contex-path
  3. 参考:https://www.cnblogs.com/zhixie/p/13150402.html
  4. 参考:https://blog..net/destiny121325/article/details/103296351
经验分享 程序员 微信小程序 职场和发展