springcloud gateway正确路由配置 uri找不到服务?

引言

在集成nacos组件以及springcloudalibaba 的gateway时,出现正确配置,如下文配置,却在测试demo调用该服务的时候,无法路由到此服务,说是无效服务。经过查阅资料得知其命名不符合gateway的命名规范,因而无法识别。规范详情见下文。

spring:
	cloud:
    gateway:
      discovery:
        locator:
          lowerCaseServiceId: true
          enabled: true
      routes:
        # 研究模块
        - id: j-research
          uri: lb://j_modules_research
          predicates:
            - Path=/research/**
          filters:
            - StripPrefix=1

gateway可以识别的nacos服务名,命名规范

在gateway中配置uri配置有三种方式,包括

  • 第一种:ws(websocket)方式: uri: ws://localhost:9000

  • 第二种:http方式: uri: http://localhost:8130/

  • 第三种:lb(注册中心中服务名字)方式: uri: lb://brilliance-consumer

其中ws和http方式不容易出错,因为http格式比较固定,但是lb方式比较灵活自由。不考虑网关,只考虑服务时,服务名命名时比较自由,都能启动被访问,被注册到注册中心,但是如果提供给gateway使用时,就会对服务命名方式有特殊要求了。

能被gateway的lb方式识别到的命名规则为:

a-zA-Z:.

这也意味着,java命名规范中可以使用的英文下划线(“_”)不能被识别,而我命名为:brilliance_consumer,刚好带下划线,改为brilliance-consumer后则可以正常通过网关访问自己项目。

如果名字中有非*“a-zA-Z:.”*规则字符,则会报错,

规则见包org.springframework.cloud.gateway.filter中的类RouteToRequestUrlFilter

相关推荐

  1. springcloud gateway正确配置 uri服务

    2024-01-20 05:28:01       53 阅读
  2. Flask蓝图地址,访问404

    2024-01-20 05:28:01       39 阅读
  3. eureka---各个server的地址配置全导致服务

    2024-01-20 05:28:01       172 阅读
  4. Linux配置服务器

    2024-01-20 05:28:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-20 05:28:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-20 05:28:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-20 05:28:01       82 阅读
  4. Python语言-面向对象

    2024-01-20 05:28:01       91 阅读

热门阅读

  1. JVM实战(27)——内存溢出概述

    2024-01-20 05:28:01       62 阅读
  2. 前端图片转base64 方法

    2024-01-20 05:28:01       61 阅读
  3. 哥德巴赫猜想不成立

    2024-01-20 05:28:01       55 阅读
  4. 17.正则表达式

    2024-01-20 05:28:01       42 阅读
  5. 如何使用ThinkPHP框架(thinkphp8.0)创建定时任务?

    2024-01-20 05:28:01       55 阅读
  6. #Uniapp:rpx 和 upx的区别

    2024-01-20 05:28:01       49 阅读
  7. 随心玩玩(十四)词法解析器

    2024-01-20 05:28:01       53 阅读