diff --git a/build-and-deploy.bat b/build-and-deploy.bat
index b33d0d8..f1328a0 100644
--- a/build-and-deploy.bat
+++ b/build-and-deploy.bat
@@ -9,12 +9,22 @@ cd sentinel-dashboard
docker build -t sentinel-dashboard:1.8.6 .
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
echo 部署完成!
echo 服务访问地址:
-echo - 网关: http://localhost:9000
-echo - Nacos: http://localhost:8848/nacos
-echo - Sentinel: http://localhost:8080
-echo - MinIO: http://localhost:9001
\ No newline at end of file
+echo - 网关: http://%HOST_IP%:9000
+echo - Nacos: http://%HOST_IP%:8848/nacos
+echo - Sentinel: http://%HOST_IP%:8880
+echo - MinIO: http://%HOST_IP%:9001
\ No newline at end of file
diff --git a/build-and-deploy.sh b/build-and-deploy.sh
index b7ffd0e..7995c85 100644
--- a/build-and-deploy.sh
+++ b/build-and-deploy.sh
@@ -43,19 +43,24 @@ EOF
cd ..
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是否可用
if command -v docker-compose &> /dev/null; then
- docker-compose up -d
+ HOST_IP=$HOST_IP docker-compose up -d
else
echo "警告: docker-compose命令不可用,尝试使用docker compose命令"
- docker compose up -d
+ HOST_IP=$HOST_IP docker compose up -d
fi
echo "部署完成!"
echo "服务访问地址:"
-SERVER_IP=$(hostname -I | awk '{print $1}')
-echo "- 网关: http://${SERVER_IP}:9000"
-echo "- Nacos: http://${SERVER_IP}:8848/nacos"
-echo "- Sentinel: http://${SERVER_IP}:8080"
-echo "- MinIO: http://${SERVER_IP}:9001"
\ No newline at end of file
+echo "- 网关: http://${HOST_IP}:9000"
+echo "- Nacos: http://${HOST_IP}:8848/nacos"
+echo "- Sentinel: http://${HOST_IP}:8880"
+echo "- MinIO: http://${HOST_IP}:9001"
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 7f3732b..be6a04b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,5 +1,6 @@
version: '3.8'
+name: video-platform
services:
# 基础设施服务
mysql:
@@ -40,6 +41,10 @@ services:
- MODE=standalone
- JVM_XMS=512m
- JVM_XMX=512m
+ # 添加Nacos参数,确保正确处理服务注册
+ - NACOS_AUTH_ENABLE=false
+ - PREFER_HOST_MODE=hostname
+ - NACOS_SERVER_IP=${HOST_IP:-127.0.0.1}
ports:
- "8848:8848"
- "9848:9848"
@@ -94,7 +99,7 @@ services:
container_name: sentinel
restart: always
ports:
- - "8080:8080"
+ - "8880:8080"
networks:
- video-network
@@ -113,9 +118,15 @@ services:
- NACOS_PORT=8848
- SENTINEL_HOST=sentinel
- SENTINEL_PORT=8080
+ - JAVA_OPTS=-Xms128m -Xmx128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m
+ # 添加IP环境变量,用于服务注册
+ - GATEWAY_IP=${HOST_IP:-127.0.0.1}
depends_on:
- nacos
- - sentinel
+ deploy:
+ resources:
+ limits:
+ memory: 256M
networks:
- video-network
@@ -133,6 +144,8 @@ services:
- MYSQL_PORT=3306
- REDIS_HOST=redis
- REDIS_PORT=6379
+ # 添加IP环境变量,用于服务注册
+ - AUTH_IP=${HOST_IP:-127.0.0.1}
depends_on:
- nacos
- mysql
@@ -154,6 +167,8 @@ services:
- MYSQL_PORT=3306
- REDIS_HOST=redis
- REDIS_PORT=6379
+ # 添加IP环境变量,用于服务注册
+ - USER_IP=${HOST_IP:-127.0.0.1}
depends_on:
- nacos
- mysql
@@ -182,6 +197,8 @@ services:
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- MINIO_BUCKET=video-platform
+ # 添加IP环境变量,用于服务注册
+ - CONTENT_IP=${HOST_IP:-127.0.0.1}
depends_on:
- nacos
- mysql
@@ -205,6 +222,8 @@ services:
- MYSQL_PORT=3306
- REDIS_HOST=redis
- REDIS_PORT=6379
+ # 添加IP环境变量,用于服务注册
+ - ADMIN_IP=${HOST_IP:-127.0.0.1}
depends_on:
- nacos
- mysql
@@ -226,6 +245,8 @@ services:
- MYSQL_PORT=3306
- REDIS_HOST=redis
- REDIS_PORT=6379
+ # 添加IP环境变量,用于服务注册
+ - COMMENT_IP=${HOST_IP:-127.0.0.1}
depends_on:
- nacos
- mysql
@@ -247,6 +268,8 @@ services:
- MYSQL_PORT=3306
- REDIS_HOST=redis
- REDIS_PORT=6379
+ # 添加IP环境变量,用于服务注册
+ - RECOMMEND_IP=${HOST_IP:-127.0.0.1}
depends_on:
- nacos
- mysql
diff --git a/sql/init.sql b/sql/init.sql
index fec3365..1338904 100644
--- a/sql/init.sql
+++ b/sql/init.sql
@@ -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_recommend` 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)
USE `video_auth`;
diff --git a/sql/nacos-schema.sql b/sql/nacos-schema.sql
new file mode 100644
index 0000000..5a73c82
--- /dev/null
+++ b/sql/nacos-schema.sql
@@ -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');
\ No newline at end of file
diff --git a/video-admin/src/main/java/com/nuaa/video/admin/service/impl/AdminUserInitService.java b/video-admin/src/main/java/com/nuaa/video/admin/service/impl/AdminUserInitService.java
index 1f43de1..5902718 100644
--- a/video-admin/src/main/java/com/nuaa/video/admin/service/impl/AdminUserInitService.java
+++ b/video-admin/src/main/java/com/nuaa/video/admin/service/impl/AdminUserInitService.java
@@ -4,7 +4,6 @@ import com.nuaa.video.admin.entity.AdminUser;
import com.nuaa.video.admin.entity.AdminUserRole;
import com.nuaa.video.admin.mapper.AdminUserMapper;
import com.nuaa.video.admin.mapper.AdminUserRoleMapper;
-import com.nuaa.video.admin.security.AdminUserDetails;
import com.nuaa.video.admin.service.PasswordService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
diff --git a/video-auth/Dockerfile b/video-auth/Dockerfile
index b1b8202..bb14fc9 100644
--- a/video-auth/Dockerfile
+++ b/video-auth/Dockerfile
@@ -4,4 +4,5 @@ WORKDIR /app
COPY target/video-auth-*.jar app.jar
-ENTRYPOINT ["java", "-jar", "app.jar"]
\ No newline at end of file
+# 添加JVM内存优化配置
+ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar app.jar"]
\ No newline at end of file
diff --git a/video-gateway/pom.xml b/video-gateway/pom.xml
index c26f197..d5e4816 100644
--- a/video-gateway/pom.xml
+++ b/video-gateway/pom.xml
@@ -36,6 +36,12 @@
spring-cloud-starter-alibaba-sentinel
+
+
+ org.springframework.cloud
+ spring-cloud-starter-loadbalancer
+
+
com.alibaba.cloud
diff --git a/video-gateway/src/main/java/com/nuaa/video/gateway/filter/AuthGlobalFilter.java b/video-gateway/src/main/java/com/nuaa/video/gateway/filter/AuthGlobalFilter.java
index 6fb68a5..1cc8a5a 100644
--- a/video-gateway/src/main/java/com/nuaa/video/gateway/filter/AuthGlobalFilter.java
+++ b/video-gateway/src/main/java/com/nuaa/video/gateway/filter/AuthGlobalFilter.java
@@ -41,7 +41,7 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
@Value("${jwt.token-header:Authorization}")
private String tokenHeader;
- @Value("${gateway.ignore.urls:/auth/login,/auth/register,/auth/captcha}")
+ @Value("${spring.cloud.gateway.ignore.urls}")
private List ignoreUrls;
private final AntPathMatcher pathMatcher = new AntPathMatcher();
diff --git a/video-gateway/src/main/resources/application-prod.yml b/video-gateway/src/main/resources/application-prod.yml
index baea005..c44083a 100644
--- a/video-gateway/src/main/resources/application-prod.yml
+++ b/video-gateway/src/main/resources/application-prod.yml
@@ -10,50 +10,100 @@ spring:
server-addr: ${NACOS_HOST:nacos}:${NACOS_PORT:8848}
namespace: public
group: DEFAULT_GROUP
- sentinel:
- transport:
- dashboard: ${SENTINEL_HOST:sentinel}:${SENTINEL_PORT:8080}
- port: 8720
- eager: true
+ # 移除以下健康检查配置
+ # heart-beat-interval: 5000
+ # heart-beat-timeout: 15000
+ register-enabled: true
+ watch-delay: 30000
+ watch.enabled: true
+ loadbalancer:
+ ribbon:
+ enabled: false
+ cache:
+ enabled: true
+ caffeine:
+ spec: initialCapacity=500,expireAfterWrite=5s
+ # 添加重试机制
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
+ url-expression: "'lb://'+serviceId"
+ # 添加重试配置
+ httpclient:
+ connect-timeout: 5000
+ response-timeout: 10000
routes:
+ # 保持原有路由配置不变,但移除StripPrefix过滤器
- id: video-auth
uri: lb://video-auth
predicates:
- Path=/auth/**
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
uri: lb://video-user
predicates:
- Path=/user/**
filters:
- - StripPrefix=1
+ # 移除 StripPrefix=1 过滤器
+ - name: Retry
+ args:
+ retries: 3
+ statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
+ methods: GET,POST
- id: video-content
uri: lb://video-content
predicates:
- Path=/content/**
filters:
- - StripPrefix=1
- - id: video-admin
- uri: lb://video-admin
- predicates:
- - Path=/admin/**
- filters:
- - StripPrefix=1
+ # 移除 StripPrefix=1 过滤器
+ - name: Retry
+ args:
+ retries: 3
+ statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
+ methods: GET,POST
- id: video-comment
uri: lb://video-comment
predicates:
- Path=/comment/**
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
uri: lb://video-recommend
predicates:
- Path=/recommend/**
filters:
- - StripPrefix=1
\ No newline at end of file
+ # 移除 StripPrefix=1 过滤器
+ - name: Retry
+ args:
+ retries: 3
+ statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
+ methods: GET,POST
\ No newline at end of file
diff --git a/video-gateway/src/main/resources/application.yml b/video-gateway/src/main/resources/application.yml
index a6c34a3..65be75e 100644
--- a/video-gateway/src/main/resources/application.yml
+++ b/video-gateway/src/main/resources/application.yml
@@ -25,6 +25,18 @@ spring:
group: ${NACOS_GROUP:DEFAULT_GROUP}
refresh: true
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:
locator:
enabled: true
@@ -34,38 +46,32 @@ spring:
uri: lb://video-auth
predicates:
- Path=/auth/**
- filters:
- - StripPrefix=1
+ # 移除 StripPrefix 过滤器
- id: video-user
uri: lb://video-user
predicates:
- Path=/user/**
- filters:
- - StripPrefix=1
+ # 移除 StripPrefix 过滤器
- id: video-content
uri: lb://video-content
predicates:
- Path=/content/**
- filters:
- - StripPrefix=1
+ # 移除 StripPrefix 过滤器
- id: video-comment
uri: lb://video-comment
predicates:
- Path=/comment/**
- filters:
- - StripPrefix=1
+ # 移除 StripPrefix 过滤器
- id: video-recommend
uri: lb://video-recommend
predicates:
- Path=/recommend/**
- filters:
- - StripPrefix=1
+ # 移除 StripPrefix 过滤器
- id: video-admin
uri: lb://video-admin
predicates:
- Path=/admin/**
- filters:
- - StripPrefix=0
+ # 移除 StripPrefix 过滤器
sentinel:
transport:
dashboard: ${SENTINEL_DASHBOARD_HOST:5.180.253.115}:${SENTINEL_DASHBOARD_PORT:8080}