chore(config): Improve Nacos initialization and deployment scripts

This commit is contained in:
2025-04-14 15:31:02 +08:00
parent 111da1aba6
commit d2c4394516
11 changed files with 324 additions and 46 deletions
+15 -5
View File
@@ -9,12 +9,22 @@ cd sentinel-dashboard
docker build -t sentinel-dashboard:1.8.6 . docker build -t sentinel-dashboard:1.8.6 .
cd .. cd ..
echo 3. 启动Docker Compose... echo 3. 获取本机IP地址...
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /r "IPv4.*[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"') do (
set HOST_IP=%%a
goto :found_ip
)
:found_ip
set HOST_IP=%HOST_IP:~1%
echo 使用IP地址: %HOST_IP%
echo 4. 启动Docker Compose...
set HOST_IP=%HOST_IP%
docker-compose up -d docker-compose up -d
echo 部署完成! echo 部署完成!
echo 服务访问地址: echo 服务访问地址:
echo - 网关: http://localhost:9000 echo - 网关: http://%HOST_IP%:9000
echo - Nacos: http://localhost:8848/nacos echo - Nacos: http://%HOST_IP%:8848/nacos
echo - Sentinel: http://localhost:8080 echo - Sentinel: http://%HOST_IP%:8880
echo - MinIO: http://localhost:9001 echo - MinIO: http://%HOST_IP%:9001
+13 -8
View File
@@ -43,19 +43,24 @@ EOF
cd .. cd ..
fi fi
echo "4. 启动Docker Compose..." echo "4. 获取本机IP地址..."
HOST_IP=$(hostname -I | awk '{print $1}')
echo "使用IP地址: $HOST_IP"
echo "5. 启动Docker Compose..."
export HOST_IP=$HOST_IP
# 检查docker-compose是否可用 # 检查docker-compose是否可用
if command -v docker-compose &> /dev/null; then if command -v docker-compose &> /dev/null; then
docker-compose up -d HOST_IP=$HOST_IP docker-compose up -d
else else
echo "警告: docker-compose命令不可用,尝试使用docker compose命令" echo "警告: docker-compose命令不可用,尝试使用docker compose命令"
docker compose up -d HOST_IP=$HOST_IP docker compose up -d
fi fi
echo "部署完成!" echo "部署完成!"
echo "服务访问地址:" echo "服务访问地址:"
SERVER_IP=$(hostname -I | awk '{print $1}') echo "- 网关: http://${HOST_IP}:9000"
echo "- 网关: http://${SERVER_IP}:9000" echo "- Nacos: http://${HOST_IP}:8848/nacos"
echo "- Nacos: http://${SERVER_IP}:8848/nacos" echo "- Sentinel: http://${HOST_IP}:8880"
echo "- Sentinel: http://${SERVER_IP}:8080" echo "- MinIO: http://${HOST_IP}:9001"
echo "- MinIO: http://${SERVER_IP}:9001"
+25 -2
View File
@@ -1,5 +1,6 @@
version: '3.8' version: '3.8'
name: video-platform
services: services:
# 基础设施服务 # 基础设施服务
mysql: mysql:
@@ -40,6 +41,10 @@ services:
- MODE=standalone - MODE=standalone
- JVM_XMS=512m - JVM_XMS=512m
- JVM_XMX=512m - JVM_XMX=512m
# 添加Nacos参数,确保正确处理服务注册
- NACOS_AUTH_ENABLE=false
- PREFER_HOST_MODE=hostname
- NACOS_SERVER_IP=${HOST_IP:-127.0.0.1}
ports: ports:
- "8848:8848" - "8848:8848"
- "9848:9848" - "9848:9848"
@@ -94,7 +99,7 @@ services:
container_name: sentinel container_name: sentinel
restart: always restart: always
ports: ports:
- "8080:8080" - "8880:8080"
networks: networks:
- video-network - video-network
@@ -113,9 +118,15 @@ services:
- NACOS_PORT=8848 - NACOS_PORT=8848
- SENTINEL_HOST=sentinel - SENTINEL_HOST=sentinel
- SENTINEL_PORT=8080 - SENTINEL_PORT=8080
- JAVA_OPTS=-Xms128m -Xmx128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m
# 添加IP环境变量,用于服务注册
- GATEWAY_IP=${HOST_IP:-127.0.0.1}
depends_on: depends_on:
- nacos - nacos
- sentinel deploy:
resources:
limits:
memory: 256M
networks: networks:
- video-network - video-network
@@ -133,6 +144,8 @@ services:
- MYSQL_PORT=3306 - MYSQL_PORT=3306
- REDIS_HOST=redis - REDIS_HOST=redis
- REDIS_PORT=6379 - REDIS_PORT=6379
# 添加IP环境变量,用于服务注册
- AUTH_IP=${HOST_IP:-127.0.0.1}
depends_on: depends_on:
- nacos - nacos
- mysql - mysql
@@ -154,6 +167,8 @@ services:
- MYSQL_PORT=3306 - MYSQL_PORT=3306
- REDIS_HOST=redis - REDIS_HOST=redis
- REDIS_PORT=6379 - REDIS_PORT=6379
# 添加IP环境变量,用于服务注册
- USER_IP=${HOST_IP:-127.0.0.1}
depends_on: depends_on:
- nacos - nacos
- mysql - mysql
@@ -182,6 +197,8 @@ services:
- MINIO_ACCESS_KEY=minioadmin - MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin - MINIO_SECRET_KEY=minioadmin
- MINIO_BUCKET=video-platform - MINIO_BUCKET=video-platform
# 添加IP环境变量,用于服务注册
- CONTENT_IP=${HOST_IP:-127.0.0.1}
depends_on: depends_on:
- nacos - nacos
- mysql - mysql
@@ -205,6 +222,8 @@ services:
- MYSQL_PORT=3306 - MYSQL_PORT=3306
- REDIS_HOST=redis - REDIS_HOST=redis
- REDIS_PORT=6379 - REDIS_PORT=6379
# 添加IP环境变量,用于服务注册
- ADMIN_IP=${HOST_IP:-127.0.0.1}
depends_on: depends_on:
- nacos - nacos
- mysql - mysql
@@ -226,6 +245,8 @@ services:
- MYSQL_PORT=3306 - MYSQL_PORT=3306
- REDIS_HOST=redis - REDIS_HOST=redis
- REDIS_PORT=6379 - REDIS_PORT=6379
# 添加IP环境变量,用于服务注册
- COMMENT_IP=${HOST_IP:-127.0.0.1}
depends_on: depends_on:
- nacos - nacos
- mysql - mysql
@@ -247,6 +268,8 @@ services:
- MYSQL_PORT=3306 - MYSQL_PORT=3306
- REDIS_HOST=redis - REDIS_HOST=redis
- REDIS_PORT=6379 - REDIS_PORT=6379
# 添加IP环境变量,用于服务注册
- RECOMMEND_IP=${HOST_IP:-127.0.0.1}
depends_on: depends_on:
- nacos - nacos
- mysql - mysql
+2
View File
@@ -5,6 +5,8 @@ CREATE DATABASE IF NOT EXISTS `video_content` CHARACTER SET utf8mb4 COLLATE utf8
CREATE DATABASE IF NOT EXISTS `video_comment` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE IF NOT EXISTS `video_comment` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS `video_recommend` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE IF NOT EXISTS `video_recommend` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS `video_admin` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE IF NOT EXISTS `video_admin` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建Nacos配置数据库
CREATE DATABASE IF NOT EXISTS nacos_config DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 2. 认证数据库(video_auth) -- 2. 认证数据库(video_auth)
USE `video_auth`; USE `video_auth`;
+176
View File
@@ -0,0 +1,176 @@
-- 创建Nacos配置数据库
CREATE DATABASE IF NOT EXISTS nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE nacos_config;
-- Nacos数据库初始化脚本
CREATE TABLE IF NOT EXISTS `config_info` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) DEFAULT NULL COMMENT 'group_id',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description',
`c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage',
`effect` varchar(64) DEFAULT NULL COMMENT '配置生效目标',
`type` varchar(64) DEFAULT NULL COMMENT '配置类型',
`c_schema` text COMMENT '配置模式',
`encrypted_data_key` text NOT NULL COMMENT '密钥',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='config_info';
CREATE TABLE IF NOT EXISTS `config_info_aggr` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
`content` longtext NOT NULL COMMENT '内容',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='增加租户字段';
CREATE TABLE IF NOT EXISTS `config_info_beta` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`encrypted_data_key` text NOT NULL COMMENT '密钥',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='config_info_beta';
CREATE TABLE IF NOT EXISTS `config_info_tag` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='config_info_tag';
CREATE TABLE IF NOT EXISTS `config_tags_relation` (
`id` bigint NOT NULL COMMENT 'id',
`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`nid` bigint NOT NULL AUTO_INCREMENT COMMENT 'nid',
PRIMARY KEY (`nid`),
UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='config_tag_relation';
CREATE TABLE IF NOT EXISTS `group_capacity` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
`quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
`max_aggr_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='集群、各Group容量信息表';
CREATE TABLE IF NOT EXISTS `his_config_info` (
`id` bigint unsigned NOT NULL COMMENT 'id',
`nid` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid',
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
`content` longtext NOT NULL COMMENT 'content',
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`src_user` text COMMENT 'source user',
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`op_type` char(10) DEFAULT NULL COMMENT 'operation type',
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
`encrypted_data_key` text NOT NULL COMMENT '密钥',
PRIMARY KEY (`nid`),
KEY `idx_gmt_create` (`gmt_create`),
KEY `idx_gmt_modified` (`gmt_modified`),
KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='多租户改造';
CREATE TABLE IF NOT EXISTS `tenant_capacity` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
`quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
`usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
`max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
`max_aggr_count` int unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
`max_aggr_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
`max_history_count` int unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='租户容量信息表';
CREATE TABLE IF NOT EXISTS `tenant_info` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`kp` varchar(128) NOT NULL COMMENT 'kp',
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
`tenant_name` varchar(128) DEFAULT '' COMMENT 'tenant_name',
`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
`gmt_create` bigint NOT NULL COMMENT '创建时间',
`gmt_modified` bigint NOT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='tenant_info';
CREATE TABLE IF NOT EXISTS `users` (
`username` varchar(50) NOT NULL COMMENT 'username',
`password` varchar(500) NOT NULL COMMENT 'password',
`enabled` tinyint(1) NOT NULL COMMENT 'enabled',
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
CREATE TABLE IF NOT EXISTS `roles` (
`username` varchar(50) NOT NULL COMMENT 'username',
`role` varchar(50) NOT NULL COMMENT 'role',
UNIQUE KEY `uk_username_role` (`username`,`role`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
CREATE TABLE IF NOT EXISTS `permissions` (
`role` varchar(50) NOT NULL COMMENT 'role',
`resource` varchar(255) NOT NULL COMMENT 'resource',
`action` varchar(8) NOT NULL COMMENT 'action',
UNIQUE KEY `uk_role_permission` (`role`,`resource`,`action`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
-- 初始化Nacos用户
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', 1);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
@@ -4,7 +4,6 @@ import com.nuaa.video.admin.entity.AdminUser;
import com.nuaa.video.admin.entity.AdminUserRole; import com.nuaa.video.admin.entity.AdminUserRole;
import com.nuaa.video.admin.mapper.AdminUserMapper; import com.nuaa.video.admin.mapper.AdminUserMapper;
import com.nuaa.video.admin.mapper.AdminUserRoleMapper; import com.nuaa.video.admin.mapper.AdminUserRoleMapper;
import com.nuaa.video.admin.security.AdminUserDetails;
import com.nuaa.video.admin.service.PasswordService; import com.nuaa.video.admin.service.PasswordService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
+2 -1
View File
@@ -4,4 +4,5 @@ WORKDIR /app
COPY target/video-auth-*.jar app.jar COPY target/video-auth-*.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"] # 添加JVM内存优化配置
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar app.jar"]
+6
View File
@@ -36,6 +36,12 @@
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency> </dependency>
<!-- 添加负载均衡依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<!-- Sentinel Gateway适配 --> <!-- Sentinel Gateway适配 -->
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>
@@ -41,7 +41,7 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
@Value("${jwt.token-header:Authorization}") @Value("${jwt.token-header:Authorization}")
private String tokenHeader; private String tokenHeader;
@Value("${gateway.ignore.urls:/auth/login,/auth/register,/auth/captcha}") @Value("${spring.cloud.gateway.ignore.urls}")
private List<String> ignoreUrls; private List<String> ignoreUrls;
private final AntPathMatcher pathMatcher = new AntPathMatcher(); private final AntPathMatcher pathMatcher = new AntPathMatcher();
@@ -10,50 +10,100 @@ spring:
server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848} server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848}
namespace: public namespace: public
group: DEFAULT_GROUP group: DEFAULT_GROUP
sentinel: # 移除以下健康检查配置
transport: # heart-beat-interval: 5000
dashboard: ${SENTINEL_HOST:sentinel}:${SENTINEL_PORT:8080} # heart-beat-timeout: 15000
port: 8720 register-enabled: true
eager: true watch-delay: 30000
watch.enabled: true
loadbalancer:
ribbon:
enabled: false
cache:
enabled: true
caffeine:
spec: initialCapacity=500,expireAfterWrite=5s
# 添加重试机制
gateway: gateway:
discovery: discovery:
locator: locator:
enabled: true enabled: true
lower-case-service-id: true lower-case-service-id: true
url-expression: "'lb://'+serviceId"
# 添加重试配置
httpclient:
connect-timeout: 5000
response-timeout: 10000
routes: routes:
# 保持原有路由配置不变,但移除StripPrefix过滤器
- id: video-auth - id: video-auth
uri: lb://video-auth uri: lb://video-auth
predicates: predicates:
- Path=/auth/** - Path=/auth/**
filters: filters:
- StripPrefix=1 # 移除 StripPrefix=1 过滤器
- name: Retry
args:
retries: 3
statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
methods: GET,POST
backoff:
firstBackoff: 1000ms
maxBackoff: 5000ms
factor: 2
basedOnPreviousValue: false
- id: video-user - id: video-user
uri: lb://video-user uri: lb://video-user
predicates: predicates:
- Path=/user/** - Path=/user/**
filters: filters:
- StripPrefix=1 # 移除 StripPrefix=1 过滤器
- name: Retry
args:
retries: 3
statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
methods: GET,POST
- id: video-content - id: video-content
uri: lb://video-content uri: lb://video-content
predicates: predicates:
- Path=/content/** - Path=/content/**
filters: filters:
- StripPrefix=1 # 移除 StripPrefix=1 过滤器
- id: video-admin - name: Retry
uri: lb://video-admin args:
predicates: retries: 3
- Path=/admin/** statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
filters: methods: GET,POST
- StripPrefix=1
- id: video-comment - id: video-comment
uri: lb://video-comment uri: lb://video-comment
predicates: predicates:
- Path=/comment/** - Path=/comment/**
filters: filters:
- StripPrefix=1 # 移除 StripPrefix=1 过滤器
- name: Retry
args:
retries: 3
statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
methods: GET,POST
- id: video-admin
uri: lb://video-admin
predicates:
- Path=/admin/**
filters:
# 移除 StripPrefix=1 过滤器
- name: Retry
args:
retries: 3
statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
methods: GET,POST
- id: video-recommend - id: video-recommend
uri: lb://video-recommend uri: lb://video-recommend
predicates: predicates:
- Path=/recommend/** - Path=/recommend/**
filters: filters:
- StripPrefix=1 # 移除 StripPrefix=1 过滤器
- name: Retry
args:
retries: 3
statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
methods: GET,POST
@@ -25,6 +25,18 @@ spring:
group: ${NACOS_GROUP:DEFAULT_GROUP} group: ${NACOS_GROUP:DEFAULT_GROUP}
refresh: true refresh: true
gateway: gateway:
ignore:
urls:
- /**/auth/login
- /**/auth/register
- /**/auth/captcha
- /content/video/public/**
- /content/category/tree
- /content/category/list
- /comment/reply/public/**
- /comment/public/**
- /admin/auth/captcha
- /admin/auth/login
discovery: discovery:
locator: locator:
enabled: true enabled: true
@@ -34,38 +46,32 @@ spring:
uri: lb://video-auth uri: lb://video-auth
predicates: predicates:
- Path=/auth/** - Path=/auth/**
filters: # 移除 StripPrefix 过滤器
- StripPrefix=1
- id: video-user - id: video-user
uri: lb://video-user uri: lb://video-user
predicates: predicates:
- Path=/user/** - Path=/user/**
filters: # 移除 StripPrefix 过滤器
- StripPrefix=1
- id: video-content - id: video-content
uri: lb://video-content uri: lb://video-content
predicates: predicates:
- Path=/content/** - Path=/content/**
filters: # 移除 StripPrefix 过滤器
- StripPrefix=1
- id: video-comment - id: video-comment
uri: lb://video-comment uri: lb://video-comment
predicates: predicates:
- Path=/comment/** - Path=/comment/**
filters: # 移除 StripPrefix 过滤器
- StripPrefix=1
- id: video-recommend - id: video-recommend
uri: lb://video-recommend uri: lb://video-recommend
predicates: predicates:
- Path=/recommend/** - Path=/recommend/**
filters: # 移除 StripPrefix 过滤器
- StripPrefix=1
- id: video-admin - id: video-admin
uri: lb://video-admin uri: lb://video-admin
predicates: predicates:
- Path=/admin/** - Path=/admin/**
filters: # 移除 StripPrefix 过滤器
- StripPrefix=0
sentinel: sentinel:
transport: transport:
dashboard: ${SENTINEL_DASHBOARD_HOST:5.180.253.115}:${SENTINEL_DASHBOARD_PORT:8080} dashboard: ${SENTINEL_DASHBOARD_HOST:5.180.253.115}:${SENTINEL_DASHBOARD_PORT:8080}