1 . 搭建网关gateway
pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>best-nacos-demo</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>gateway</artifactId>
<dependencies>
<!--gateway网关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--nacos客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
</project>
yaml
server:
port: 7001
spring:
application:
name: gateway
# 配置api
cloud:
gateway:
routes:
- id: user-server
uri: lb://user
predicates:
- Path=/product/**
discovery:
locator:
enabled: true # 让gateway可以发现nacos中的微服务
nacos:
discovery:
server-addr: localhost:8848
uri: lb://provider # lb指的是从nacos中按照名称获取微服务,并遵循负载均衡策略
predicates: # 断言:就是路由转发要满足的条件
- Path=/provider/** # 当请求路径满足Path指定的规则时,才进行路由转发
- id: consumer
uri: lb://consumer # lb 指的是负载均衡,后面跟的是具体微服务在nacos中的标识
predicates:
- Path=/prefix/consumer/**
filters: # 过滤器(在请求传递过程中,对请求做一些手脚)
- StripPrefix=1 # 在请求转发之前去掉一层路径,http://localhost:9081/prefix/consumer/service,实际请求会去掉prefix
主启动
package com.best.nacos;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class NacosGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(NacosGatewayApplication.class, args);
}
}
注意:由于配置没问题 访问就是404
偶然看到一个配置
如下:
gateway:
discovery:
locator:
enabled: true # 让gateway可以发现nacos中的微服务
Nacos结合Gateway入门案例 有demo 源码 很详细
别人的
链接:https://blog.csdn.net/qq_38826019/article/details/108346606