1. gateway:接入 nacos 配置中心,可支持动态路由
2. system-server:接入 nacos 配中心
This commit is contained in:
parent
93f4334eb6
commit
78c200ca61
@ -16,6 +16,12 @@
|
|||||||
<url>https://github.com/YunaiV/yudao-cloud</url>
|
<url>https://github.com/YunaiV/yudao-cloud</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<!-- Spring Cloud 基础 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-bootstrap</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- 业务组件 -->
|
<!-- 业务组件 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.cloud</groupId>
|
<groupId>cn.iocoder.cloud</groupId>
|
||||||
@ -46,6 +52,11 @@
|
|||||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Config 配置中心相关 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -2,12 +2,21 @@ package cn.iocoder.yudao.gateway;
|
|||||||
|
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.context.ConfigurableApplicationContext;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
public class GatewayServerApplication {
|
public class GatewayServerApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(GatewayServerApplication.class, args);
|
// SpringApplication.run(GatewayServerApplication.class, args);
|
||||||
|
|
||||||
|
// 启动 Spring Boot 应用
|
||||||
|
ConfigurableApplicationContext context = SpringApplication.run(GatewayServerApplication.class, args);
|
||||||
|
|
||||||
|
// 查看 Environment
|
||||||
|
Environment environment = context.getEnvironment();
|
||||||
|
System.out.println(environment);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
/**
|
||||||
|
* 在 Nacos 配置发生变化时,Spring Cloud Alibaba Nacos Config 内置的监听器,会监听到配置刷新,最终触发 Gateway 的路由信息刷新。
|
||||||
|
*
|
||||||
|
* 参见 https://www.iocoder.cn/Spring-Cloud/Spring-Cloud-Gateway/?yudao 博客的「6. 基于配置中心 Nacos 实现动态路由」小节
|
||||||
|
*
|
||||||
|
* 使用方式:在 Nacos 修改 DataId 为 gateway-server.yaml 的配置,修改 spring.cloud.gateway.routes 配置项
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
package cn.iocoder.yudao.gateway.route.dynamic;
|
@ -0,0 +1,4 @@
|
|||||||
|
/**
|
||||||
|
* 占位符
|
||||||
|
*/
|
||||||
|
package cn.iocoder.yudao.gateway.route;
|
@ -1,9 +1,2 @@
|
|||||||
server:
|
server:
|
||||||
port: 8888
|
port: 8888
|
||||||
|
|
||||||
--- #################### 注册中心相关配置 ####################
|
|
||||||
|
|
||||||
spring:
|
|
||||||
cloud:
|
|
||||||
nacos:
|
|
||||||
server-addr: 127.0.0.1:8848
|
|
||||||
|
@ -1,28 +1,14 @@
|
|||||||
spring:
|
spring:
|
||||||
application:
|
|
||||||
name: gateway-server
|
|
||||||
|
|
||||||
profiles:
|
|
||||||
active: local
|
|
||||||
|
|
||||||
cloud:
|
cloud:
|
||||||
# Spring Cloud Gateway 配置项,对应 GatewayProperties 类
|
# Spring Cloud Gateway 配置项,对应 GatewayProperties 类
|
||||||
gateway:
|
gateway:
|
||||||
# 路由配置项,对应 RouteDefinition 数组
|
# 路由配置项,对应 RouteDefinition 数组
|
||||||
routes:
|
routes:
|
||||||
- id: yudaoyuanma # 路由的编号
|
|
||||||
uri: https://www.iocoder.cn # 路由到的目标地址
|
|
||||||
predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
|
|
||||||
- Path=/blog
|
|
||||||
filters:
|
|
||||||
- StripPrefix=1
|
|
||||||
- id: oschina # 路由的编号
|
|
||||||
uri: https://www.oschina.net # 路由的目标地址
|
|
||||||
predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
|
|
||||||
- Path=/oschina
|
|
||||||
filters: # 过滤器,对请求进行拦截,实现自定义的功能,对应 FilterDefinition 数组
|
|
||||||
- StripPrefix=1
|
|
||||||
- id: system-admin-api # 路由的编号
|
- id: system-admin-api # 路由的编号
|
||||||
uri: lb://system-server
|
uri: lb://system-server
|
||||||
predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
|
predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
|
||||||
- Path=/admin-api/system/**
|
- Path=/admin-api/system/**
|
||||||
|
- id: system-app-api # 路由的编号
|
||||||
|
uri: lb://system-server
|
||||||
|
predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
|
||||||
|
- Path=/app-api/system/**
|
||||||
|
21
yudao-gateway/src/main/resources/bootstrap-local.yaml
Normal file
21
yudao-gateway/src/main/resources/bootstrap-local.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
--- #################### 注册中心相关配置 ####################
|
||||||
|
|
||||||
|
spring:
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
server-addr: 127.0.0.1:8848
|
||||||
|
discovery:
|
||||||
|
namespace: dev # 命名空间。这里使用 dev 开发环境
|
||||||
|
|
||||||
|
--- #################### 配置中心相关配置 ####################
|
||||||
|
|
||||||
|
spring:
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
|
||||||
|
config:
|
||||||
|
server-addr: 127.0.0.1:8848 # Nacos 服务器地址
|
||||||
|
namespace: dev # 命名空间。这里使用 dev 开发环境
|
||||||
|
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
|
||||||
|
name: # 使用的 Nacos 配置集的 dataId,默认为 spring.application.name
|
||||||
|
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties
|
6
yudao-gateway/src/main/resources/bootstrap.yaml
Normal file
6
yudao-gateway/src/main/resources/bootstrap.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: gateway-server
|
||||||
|
|
||||||
|
profiles:
|
||||||
|
active: local
|
@ -18,6 +18,13 @@
|
|||||||
</description>
|
</description>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<!-- Spring Cloud 基础 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-bootstrap</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 依赖服务 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.cloud</groupId>
|
<groupId>cn.iocoder.cloud</groupId>
|
||||||
<artifactId>yudao-module-system-api</artifactId>
|
<artifactId>yudao-module-system-api</artifactId>
|
||||||
@ -90,6 +97,10 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Config 配置中心相关 -->
|
<!-- Config 配置中心相关 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- Job 定时任务相关 TODO 芋艿:暂时去掉 -->
|
<!-- Job 定时任务相关 TODO 芋艿:暂时去掉 -->
|
||||||
<!-- <dependency>-->
|
<!-- <dependency>-->
|
||||||
|
@ -72,13 +72,6 @@ spring:
|
|||||||
database: 0 # 数据库索引
|
database: 0 # 数据库索引
|
||||||
# password: 123456 # 密码,建议生产环境开启
|
# password: 123456 # 密码,建议生产环境开启
|
||||||
|
|
||||||
--- #################### 注册中心相关配置 ####################
|
|
||||||
|
|
||||||
spring:
|
|
||||||
cloud:
|
|
||||||
nacos:
|
|
||||||
server-addr: 127.0.0.1:8848
|
|
||||||
|
|
||||||
jasypt:
|
jasypt:
|
||||||
encryptor:
|
encryptor:
|
||||||
password: yuanma # 加解密的秘钥
|
password: yuanma # 加解密的秘钥
|
||||||
|
@ -1,10 +1,4 @@
|
|||||||
spring:
|
spring:
|
||||||
application:
|
|
||||||
name: system-server
|
|
||||||
|
|
||||||
profiles:
|
|
||||||
active: local
|
|
||||||
|
|
||||||
main:
|
main:
|
||||||
allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。
|
allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。
|
||||||
|
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
--- #################### 注册中心相关配置 ####################
|
||||||
|
|
||||||
|
spring:
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
server-addr: 127.0.0.1:8848
|
||||||
|
discovery:
|
||||||
|
namespace: dev # 命名空间。这里使用 dev 开发环境
|
||||||
|
|
||||||
|
--- #################### 配置中心相关配置 ####################
|
||||||
|
|
||||||
|
spring:
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
|
||||||
|
config:
|
||||||
|
server-addr: 127.0.0.1:8848 # Nacos 服务器地址
|
||||||
|
namespace: dev # 命名空间。这里使用 dev 开发环境
|
||||||
|
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
|
||||||
|
name: # 使用的 Nacos 配置集的 dataId,默认为 spring.application.name
|
||||||
|
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties
|
@ -0,0 +1,6 @@
|
|||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: system-server
|
||||||
|
|
||||||
|
profiles:
|
||||||
|
active: local
|
Loading…
Reference in New Issue
Block a user