<springboot.version>2.2.9.RELEASE</springboot.version>
<springcloud.version>Hoxton.SR8</springcloud.version>
<springcloud-alibaba.version>2.2.1.RELEASE</springcloud-alibaba.version>
bootstrap.yml
spring:
application:
name: mall-gateway
cloud:
nacos:
config:
# 配置中心地址
# server-addr: http://***********:8848
# 配置nginx地址
server-addr: http://xxxxxxxxxx:1122
# 指定yaml格式的配置
file-extension: yaml
# config分组
group: dev
# config命名空间
namespace: 8067255f-1a91-4cd3-be6c-c132a4c2d5a6
# 加载config中的其它配置
extension-configs[0]:
data-id: application-gateway.yml
group: dev
refresh: true
extension-configs[1]:
data-id: gateway-router.yml
group: dev
refresh: true
application-gateway.yml
server:
port: 88
spring:
cloud:
nacos:
discovery: # 启动类加 @EnableDiscoveryClient 开启服务的注册与发现
# 配置Nacos地址
# server-addr: http://**********:8848/
# 配置nginx地址
server-addr: http://xxxxxxxxxx:1122/
# 服务分组
group: dev
# 服务命名空间
namespace: 8067255f-1a91-4cd3-be6c-c132a4c2d5a6
# 配置这一项可以监控gateway各个节点的信息
management:
endpoints:
web:
exposure:
include: "*"
gateway-router.yml
spring:
cloud:
gateway:
discovery:
locator:
# 开启从注册中心动态创建路由的功能,利用微服务名进行路由
enabled: true
lowerCaseServiceId: true
# 添加路由配置
routes:
# 使用lb 就有问题
- id: admin_route
uri: lb://mall-admin
predicates:
- Path=/api/**
filters:
- RewritePath=/api/(?<segment>.*), /mall-admin/$\{segment}
# 这样配置是没问题的
- id: admin_test
uri: http://localhost:8080
predicates:
- Path=/test/**
filters:
- RewritePath=/test/(?<segment>.*), /mall-admin/$\{segment}
请问为什么只要使用 uri: lb://服务名 这种就没有用,报503 。使用 ri: http://localhost:8080 这样就可以。
项目github地址:git@github.com:suiweidong/mall.git
麻烦各位大佬了