引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<!--nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--加载bootstrp启动 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
配置文件
application.yml
server:
port: 8611
spring:
application:
name: nacos-gateway-service
cloud:
gateway:
discovery:
locator:
enabled: true #自动为所有服务配置路由 利用微服务名进行路由
routes:
- id: nacos-custom1-service
#lb是负载均衡 lb://注册的服务名
uri: lb://nacos-custom1-service
predicates: #路由断言 路由断言path中的第一个词不能和服务名相同 相同会被去除掉
- Path=/custom1Service/** #第一个前缀就是你要发布出去的服务API名称 可以自定义 通过过滤器删掉就行
filters:
- StripPrefix=1
- id: nacos-user-service
uri: lb://nacos-user-service
predicates: #路由断言
- Path=/userService/**
filters:
- StripPrefix=1
bootstrap.yml
spring:
application:
name: nacos-gateway-service
profiles:
active: dev
cloud:
nacos:
discovery:
# Nacos认证信息
username: nacos
password: nacos
# Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口
server-addr: http://localhost:8848
# 注册到 nacos 的指定 namespace,默认为 public
namespace: public
#配置中心
config:
# Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html
# Nacos认证信息
username: nacos
password: nacos
context-path: nacos
# 设置配置中心服务端地址
server-addr: http://localhost:8848
# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,请不要填写这个值,直接留空即可
namespace:
#文件结尾
file-extension: yml
group: dev #所属分组
#扩展配置 从上往下依次加载
extension-configs:
- dataId: common.yml
group: dev
refresh: true
- dataId: common2.yml
group: dev
refresh: true
# dataId: naco-user-service-datasource2.yml
# group: dev
# refresh: true
#共享配置 从上往下依次加载
shared-configs:
- dataId: share.yml
group: dev
refresh: true
- dataId: share2.yml
group: dev
refresh: true
# config:
# import: nacos:nacos-config-example.properties?refresh=true
testConfigValue: aaaaa22
testconfigValue: bbbbb23
启动类增加注解
测试:
8611端口服务时网关服务,/userService/commonUserService/testConfigValue 符合断言(/userService/**) 因此被路由到uri: lb://nacos-user-service
后面的/commonUserService/testConfigValue是nacos-user-service 微服务发布的http服务 相当于访问
自定义gateway负载均衡策略(https://blog.51cto.com/u_16099255/10490979)
标签:service,nacos,dev,gateway,yml,cloud,搭建 From: https://www.cnblogs.com/UUUz/p/18255050