498 lines
14 KiB
SQL
498 lines
14 KiB
SQL
-- Nacos 配置初始化脚本
|
|
-- 在 Nacos 数据库中执行此脚本,创建所有配置
|
|
-- 注意:tenant_id 为空字符串 '' 表示 public 命名空间
|
|
-- Nacos 2.x 版本需要 encrypted_data_key 字段
|
|
|
|
USE nacos_config;
|
|
|
|
-- ============================================
|
|
-- 1. 公共基础配置 (common.yaml)
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('common.yaml', 'DEFAULT_GROUP', '# 公共配置 - 所有微服务共享
|
|
spring:
|
|
datasource:
|
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
|
hikari:
|
|
minimum-idle: 5
|
|
maximum-pool-size: 20
|
|
idle-timeout: 300000
|
|
connection-timeout: 20000
|
|
connection-test-query: SELECT 1
|
|
keepalive-time: 60000
|
|
validation-timeout: 3000
|
|
max-lifetime: 58000
|
|
|
|
data:
|
|
redis:
|
|
timeout: 10000
|
|
lettuce:
|
|
pool:
|
|
max-active: 200
|
|
max-wait: -1
|
|
max-idle: 10
|
|
min-idle: 0
|
|
|
|
mybatis-plus:
|
|
configuration:
|
|
map-underscore-to-camel-case: true
|
|
cache-enabled: false
|
|
global-config:
|
|
db-config:
|
|
id-type: auto
|
|
logic-delete-field: is_deleted
|
|
logic-delete-value: 1
|
|
logic-not-delete-value: 0
|
|
|
|
management:
|
|
endpoints:
|
|
web:
|
|
exposure:
|
|
include: "*"
|
|
endpoint:
|
|
health:
|
|
show-details: always
|
|
|
|
feign:
|
|
circuitbreaker:
|
|
enabled: true
|
|
client:
|
|
config:
|
|
default:
|
|
connectTimeout: 5000
|
|
readTimeout: 5000
|
|
|
|
logging:
|
|
level:
|
|
com.nuaa.video: info
|
|
org.springframework.security: info
|
|
|
|
service:
|
|
auth:
|
|
token: ${SERVICE_AUTH_TOKEN}', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 2. 开发环境 Redis 配置 (common-redis-dev.yaml)
|
|
-- 单机模式
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('common-redis-dev.yaml', 'DEFAULT_GROUP', '# Redis 单机配置 - 开发环境
|
|
spring:
|
|
data:
|
|
redis:
|
|
host: ${REDIS_HOST:5.180.253.115}
|
|
port: ${REDIS_PORT:6379}
|
|
password: ${REDIS_PASSWORD}', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 3. 高可用环境 Redis 配置 (common-redis-ha.yaml)
|
|
-- Sentinel 哨兵模式
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('common-redis-ha.yaml', 'DEFAULT_GROUP', '# Redis Sentinel 高可用配置 - 生产环境
|
|
spring:
|
|
data:
|
|
redis:
|
|
password: ${REDIS_PASSWORD}
|
|
sentinel:
|
|
master: mymaster
|
|
nodes: ${REDIS_SENTINEL_NODES}
|
|
password: ${REDIS_PASSWORD}', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 4. Gateway 服务配置 (video-gateway.yaml)
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('video-gateway.yaml', 'DEFAULT_GROUP', '# Gateway 服务配置
|
|
spring:
|
|
codec:
|
|
max-in-memory-size: 10MB
|
|
webflux:
|
|
multipart:
|
|
max-in-memory-size: 10MB
|
|
cloud:
|
|
gateway:
|
|
discovery:
|
|
locator:
|
|
enabled: true
|
|
lower-case-service-id: true
|
|
routes:
|
|
- id: video-auth
|
|
uri: lb://video-auth
|
|
predicates:
|
|
- Path=/auth/**
|
|
- id: video-user
|
|
uri: lb://video-user
|
|
predicates:
|
|
- Path=/user/**
|
|
filters:
|
|
- name: RequestSize
|
|
args:
|
|
maxSize: 10MB
|
|
- id: video-content
|
|
uri: lb://video-content
|
|
predicates:
|
|
- Path=/content/**
|
|
filters:
|
|
- name: RequestSize
|
|
args:
|
|
maxSize: 1024MB
|
|
- id: video-comment
|
|
uri: lb://video-comment
|
|
predicates:
|
|
- Path=/comment/**
|
|
- id: video-recommend
|
|
uri: lb://video-recommend
|
|
predicates:
|
|
- Path=/recommend/**
|
|
- id: video-admin
|
|
uri: lb://video-admin
|
|
predicates:
|
|
- Path=/admin/**
|
|
sentinel:
|
|
transport:
|
|
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
|
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8720}
|
|
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
|
eager: true
|
|
scg:
|
|
fallback:
|
|
mode: response
|
|
response-body: '{"code":500,"message":"服务不可用,请稍后再试"}'
|
|
|
|
gateway:
|
|
ignore:
|
|
urls:
|
|
- /**/auth/login
|
|
- /**/auth/register
|
|
- /**/auth/captcha
|
|
- /auth/username/**
|
|
- /content/video/public/**
|
|
- /content/category/tree
|
|
- /content/category/list
|
|
- /content/tag/list
|
|
- /content/tag/page
|
|
- /content/danmaku/all/**
|
|
- /content/danmaku/time
|
|
- /content/stat/**
|
|
- /user/profile/public/**
|
|
- /user/profile/search
|
|
- /user/follow/following/**
|
|
- /user/follow/followers/**
|
|
- /comment/reply/public/**
|
|
- /comment/public/**
|
|
- /admin/auth/captcha
|
|
- /admin/auth/login
|
|
|
|
jwt:
|
|
secret: ${USER_JWT_SECRET}
|
|
token-header: Authorization
|
|
token-prefix: "Bearer "', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 5. Auth 服务配置 (video-auth.yaml)
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('video-auth.yaml', 'DEFAULT_GROUP', '# Auth 服务配置
|
|
spring:
|
|
datasource:
|
|
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_auth?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
|
username: root
|
|
password: ${MYSQL_PASSWORD:${MYSQL_ROOT_PASSWORD}}
|
|
data:
|
|
redis:
|
|
database: 0
|
|
cloud:
|
|
sentinel:
|
|
transport:
|
|
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
|
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8720}
|
|
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
|
eager: true
|
|
|
|
mybatis-plus:
|
|
type-aliases-package: com.nuaa.video.auth.entity
|
|
|
|
jwt:
|
|
secret: ${USER_JWT_SECRET}
|
|
expiration: ${JWT_EXPIRATION}
|
|
token-header: Authorization
|
|
token-prefix: "Bearer "', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 6. User 服务配置 (video-user.yaml)
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('video-user.yaml', 'DEFAULT_GROUP', '# User 服务配置
|
|
spring:
|
|
datasource:
|
|
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_user?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
|
username: root
|
|
password: ${MYSQL_PASSWORD:${MYSQL_ROOT_PASSWORD}}
|
|
data:
|
|
redis:
|
|
database: 1
|
|
servlet:
|
|
multipart:
|
|
max-file-size: 10MB
|
|
max-request-size: 10MB
|
|
cloud:
|
|
sentinel:
|
|
transport:
|
|
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
|
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8721}
|
|
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
|
eager: true
|
|
|
|
mybatis-plus:
|
|
type-aliases-package: com.nuaa.video.user.entity
|
|
|
|
auth:
|
|
ignore-urls:
|
|
- /user/profile/public/**
|
|
- /user/profile/init
|
|
- /actuator/**
|
|
|
|
jwt:
|
|
secret: ${USER_JWT_SECRET}
|
|
expiration: ${JWT_EXPIRATION}
|
|
token-header: Authorization
|
|
token-prefix: "Bearer "
|
|
|
|
minio:
|
|
endpoint: http://${MINIO_HOST:minio}:${MINIO_PORT:9000}
|
|
accessKey: ${MINIO_ACCESS_KEY}
|
|
secretKey: ${MINIO_SECRET_KEY}
|
|
bucketName: video-platform', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 7. Content 服务配置 (video-content.yaml)
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('video-content.yaml', 'DEFAULT_GROUP', '# Content 服务配置
|
|
spring:
|
|
datasource:
|
|
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_content?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
|
username: root
|
|
password: ${MYSQL_PASSWORD:${MYSQL_ROOT_PASSWORD}}
|
|
data:
|
|
redis:
|
|
database: 2
|
|
servlet:
|
|
multipart:
|
|
max-file-size: 1024MB
|
|
max-request-size: 1024MB
|
|
enabled: true
|
|
rocketmq:
|
|
topic-prefix: video-platform-
|
|
name-server: ${NAMESRV_ADDR:192.168.1.101:9876;192.168.1.102:9876;192.168.1.103:9876}
|
|
producer:
|
|
group: video-content-producer
|
|
send-message-timeout: 3000
|
|
retry-times-when-send-failed: 3
|
|
cloud:
|
|
sentinel:
|
|
transport:
|
|
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
|
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8722}
|
|
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
|
eager: true
|
|
|
|
mybatis-plus:
|
|
type-aliases-package: com.nuaa.video.content.entity
|
|
|
|
minio:
|
|
endpoint: http://${MINIO_HOST:minio}:${MINIO_PORT:9000}
|
|
accessKey: ${MINIO_ACCESS_KEY}
|
|
secretKey: ${MINIO_SECRET_KEY}
|
|
bucketName: ${MINIO_BUCKET}
|
|
|
|
ffmpeg:
|
|
binary:
|
|
path: ${FFMPEG_PATH:/usr/bin/ffmpeg}
|
|
probe:
|
|
path: ${FFPROBE_PATH:/usr/bin/ffprobe}
|
|
temp:
|
|
path: ${FFMPEG_TEMP_PATH:/tmp/ffmpeg}
|
|
|
|
auth:
|
|
ignore-urls:
|
|
- /content/video/public/**
|
|
- /content/category/list
|
|
- /content/tag/list
|
|
- /actuator/**
|
|
|
|
jwt:
|
|
secret: ${USER_JWT_SECRET}
|
|
expiration: ${JWT_EXPIRATION}
|
|
token-header: Authorization
|
|
token-prefix: "Bearer "', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 8. Comment 服务配置 (video-comment.yaml)
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('video-comment.yaml', 'DEFAULT_GROUP', '# Comment 服务配置
|
|
spring:
|
|
datasource:
|
|
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_comment?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
|
username: root
|
|
password: ${MYSQL_PASSWORD:${MYSQL_ROOT_PASSWORD}}
|
|
data:
|
|
redis:
|
|
database: 3
|
|
cloud:
|
|
sentinel:
|
|
transport:
|
|
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
|
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8723}
|
|
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
|
eager: true
|
|
|
|
mybatis-plus:
|
|
type-aliases-package: com.nuaa.video.comment.entity
|
|
global-config:
|
|
db-config:
|
|
logic-delete-field: status
|
|
logic-delete-value: 0
|
|
logic-not-delete-value: 1
|
|
|
|
comment:
|
|
sensitive-filter:
|
|
enabled: true
|
|
review:
|
|
enabled: false
|
|
|
|
jwt:
|
|
secret: ${USER_JWT_SECRET}
|
|
expiration: ${JWT_EXPIRATION}
|
|
token-header: Authorization
|
|
token-prefix: "Bearer "
|
|
|
|
auth:
|
|
ignore-urls:
|
|
- /comment/public/**
|
|
- /actuator/**', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 9. Recommend 服务配置 (video-recommend.yaml)
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('video-recommend.yaml', 'DEFAULT_GROUP', '# Recommend 服务配置
|
|
spring:
|
|
datasource:
|
|
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_recommend?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
|
username: root
|
|
password: ${MYSQL_PASSWORD:${MYSQL_ROOT_PASSWORD}}
|
|
data:
|
|
redis:
|
|
database: 4
|
|
cloud:
|
|
sentinel:
|
|
transport:
|
|
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
|
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8724}
|
|
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
|
eager: true
|
|
|
|
mybatis-plus:
|
|
type-aliases-package: com.nuaa.video.recommend.entity
|
|
|
|
recommend:
|
|
hot:
|
|
default-size: 20
|
|
refresh-interval: 60
|
|
weights:
|
|
view: 1
|
|
like: 3
|
|
favorite: 5
|
|
coin: 5
|
|
comment: 2
|
|
share: 3
|
|
similarity:
|
|
tag-weight: 0.5
|
|
category-weight: 0.3
|
|
behavior-weight: 0.2
|
|
personalized:
|
|
default-size: 30
|
|
behavior-weights:
|
|
view: 1
|
|
like: 3
|
|
favorite: 5
|
|
coin: 5
|
|
comment: 2
|
|
share: 3
|
|
complete-watch: 4
|
|
|
|
jwt:
|
|
secret: ${USER_JWT_SECRET}
|
|
expiration: ${JWT_EXPIRATION}
|
|
token-header: Authorization
|
|
token-prefix: "Bearer "
|
|
|
|
auth:
|
|
ignore-urls:
|
|
- /recommend/hot/**
|
|
- /recommend/tag/**
|
|
- /actuator/**', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 10. Admin 服务配置 (video-admin.yaml)
|
|
-- ============================================
|
|
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
|
('video-admin.yaml', 'DEFAULT_GROUP', '# Admin 服务配置
|
|
spring:
|
|
datasource:
|
|
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
|
username: root
|
|
password: ${MYSQL_PASSWORD:${MYSQL_ROOT_PASSWORD}}
|
|
data:
|
|
redis:
|
|
database: 5
|
|
cloud:
|
|
sentinel:
|
|
transport:
|
|
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
|
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8725}
|
|
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
|
eager: true
|
|
|
|
mybatis-plus:
|
|
type-aliases-package: com.nuaa.video.admin.entity
|
|
global-config:
|
|
db-config:
|
|
logic-delete-field: status
|
|
logic-delete-value: 0
|
|
logic-not-delete-value: 1
|
|
|
|
jwt:
|
|
secret: ${ADMIN_JWT_SECRET}
|
|
expiration: ${JWT_EXPIRATION}
|
|
token-header: Authorization
|
|
token-prefix: "Bearer "
|
|
|
|
login:
|
|
retry-count: 5
|
|
lock-time: 30
|
|
|
|
operation-log:
|
|
enabled: true
|
|
exclude-paths:
|
|
- /admin/auth/login
|
|
- /admin/auth/logout
|
|
- /admin/auth/captcha
|
|
- /actuator/**
|
|
|
|
app:
|
|
init:
|
|
admin-password: ${ADMIN_INIT_PASSWORD}', '', '', 'nacos', '');
|
|
|
|
-- ============================================
|
|
-- 修正 Nacos 2.x 读取所需的元数据
|
|
-- ============================================
|
|
UPDATE config_info
|
|
SET md5 = MD5(content),
|
|
type = 'yaml'
|
|
WHERE data_id LIKE '%.yaml'
|
|
AND (md5 IS NULL OR md5 = '' OR type IS NULL OR type = '');
|