fix(config): Correct Redis high availability deployment
This commit is contained in:
+13
-12
@@ -229,9 +229,8 @@ services:
|
|||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
||||||
@@ -273,13 +272,15 @@ services:
|
|||||||
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
||||||
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
||||||
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
||||||
|
- NACOS_SERVERS=${NACOS_SERVERS:-192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
- MYSQL_HOST=mysql
|
- MYSQL_HOST=mysql
|
||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
|
- MINIO_HOST=minio
|
||||||
|
- MINIO_PORT=9000
|
||||||
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
||||||
@@ -316,13 +317,13 @@ services:
|
|||||||
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
||||||
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
||||||
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
||||||
|
- NACOS_SERVERS=${NACOS_SERVERS:-192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
- MYSQL_HOST=mysql
|
- MYSQL_HOST=mysql
|
||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- ROCKETMQ_HOST=rmqnamesrv
|
- ROCKETMQ_HOST=rmqnamesrv
|
||||||
- ROCKETMQ_PORT=9876
|
- ROCKETMQ_PORT=9876
|
||||||
- MINIO_HOST=minio
|
- MINIO_HOST=minio
|
||||||
@@ -370,13 +371,13 @@ services:
|
|||||||
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
||||||
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
||||||
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
||||||
|
- NACOS_SERVERS=${NACOS_SERVERS:-192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
- MYSQL_HOST=mysql
|
- MYSQL_HOST=mysql
|
||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
||||||
@@ -413,13 +414,13 @@ services:
|
|||||||
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
||||||
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
||||||
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
||||||
|
- NACOS_SERVERS=${NACOS_SERVERS:-192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
- MYSQL_HOST=mysql
|
- MYSQL_HOST=mysql
|
||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
||||||
@@ -456,13 +457,13 @@ services:
|
|||||||
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_USERNAME=nacos
|
||||||
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
- SPRING_CLOUD_NACOS_CONFIG_PASSWORD=nacos
|
||||||
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_NACOS_DISCOVERY_IP=${HOST_IP:-192.168.1.101}
|
||||||
|
- NACOS_SERVERS=${NACOS_SERVERS:-192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
- MYSQL_HOST=mysql
|
- MYSQL_HOST=mysql
|
||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
- SENTINEL_DASHBOARD_HOST=${HOST_IP:-192.168.1.101}
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.101}
|
||||||
|
|||||||
@@ -232,9 +232,8 @@ services:
|
|||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
||||||
@@ -275,9 +274,8 @@ services:
|
|||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
||||||
@@ -318,9 +316,8 @@ services:
|
|||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- ROCKETMQ_HOST=rmqnamesrv
|
- ROCKETMQ_HOST=rmqnamesrv
|
||||||
- ROCKETMQ_PORT=9876
|
- ROCKETMQ_PORT=9876
|
||||||
- MINIO_HOST=minio
|
- MINIO_HOST=minio
|
||||||
@@ -372,9 +369,8 @@ services:
|
|||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
||||||
@@ -415,9 +411,8 @@ services:
|
|||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
||||||
@@ -458,9 +453,8 @@ services:
|
|||||||
- MYSQL_PORT=3306
|
- MYSQL_PORT=3306
|
||||||
- MYSQL_USERNAME=root
|
- MYSQL_USERNAME=root
|
||||||
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
- MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD:-root123456}
|
||||||
- REDIS_HOST=redis
|
|
||||||
- REDIS_PORT=6379
|
|
||||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
- SENTINEL_DASHBOARD_HOST=192.168.1.101
|
||||||
- SENTINEL_DASHBOARD_PORT=8880
|
- SENTINEL_DASHBOARD_PORT=8880
|
||||||
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
- SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP=${HOST_IP:-192.168.1.102}
|
||||||
|
|||||||
@@ -255,8 +255,6 @@ docker compose -f docker-compose-node-03.yml up -d
|
|||||||
docker compose -f docker-compose-node-03.yml logs -f mysql
|
docker compose -f docker-compose-node-03.yml logs -f mysql
|
||||||
# 看到 "ready for connections" 后 Ctrl+C 退出
|
# 看到 "ready for connections" 后 Ctrl+C 退出
|
||||||
|
|
||||||
# 验证数据库已自动创建
|
|
||||||
docker exec mysql mysql -uroot -proot123456 -e "SHOW DATABASES;"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2.7 配置 MySQL 主从复制
|
### 2.7 配置 MySQL 主从复制
|
||||||
@@ -283,7 +281,7 @@ CHANGE MASTER TO
|
|||||||
MASTER_PASSWORD='repl_password_2024',
|
MASTER_PASSWORD='repl_password_2024',
|
||||||
MASTER_AUTO_POSITION=1;
|
MASTER_AUTO_POSITION=1;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
SHOW SLAVE STATUS\G
|
SHOW SLAVE STATUS\G;
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# 确认 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes
|
# 确认 Slave_IO_Running 和 Slave_SQL_Running 都为 Yes
|
||||||
@@ -301,7 +299,7 @@ CHANGE MASTER TO
|
|||||||
MASTER_PASSWORD='repl_password_2024',
|
MASTER_PASSWORD='repl_password_2024',
|
||||||
MASTER_AUTO_POSITION=1;
|
MASTER_AUTO_POSITION=1;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
SHOW SLAVE STATUS\G
|
SHOW SLAVE STATUS\G;
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
docker exec mysql mysql -uroot -proot123456 -e "SET GLOBAL read_only = ON; SET GLOBAL super_read_only = ON;"
|
docker exec mysql mysql -uroot -proot123456 -e "SET GLOBAL read_only = ON; SET GLOBAL super_read_only = ON;"
|
||||||
@@ -734,6 +732,55 @@ environment:
|
|||||||
|
|
||||||
**验证**:重启微服务后,Sentinel 控制台应显示真实宿主机 IP,且所有实例状态为"健康"
|
**验证**:重启微服务后,Sentinel 控制台应显示真实宿主机 IP,且所有实例状态为"健康"
|
||||||
|
|
||||||
|
### Q14: 微服务报 Redis READONLY 错误
|
||||||
|
|
||||||
|
**问题描述**:微服务启动时报错:
|
||||||
|
```
|
||||||
|
io.lettuce.core.RedisReadOnlyException: READONLY You can't write against a read only replica.
|
||||||
|
```
|
||||||
|
|
||||||
|
**原因**:微服务使用单机模式连接 Redis(`REDIS_HOST`/`REDIS_PORT`),直接连接到了 Redis 从节点,而从节点是只读的。
|
||||||
|
|
||||||
|
**解决方案**:
|
||||||
|
|
||||||
|
1. 确保所有微服务使用 **Redis Sentinel 模式** 连接。在 `docker-compose-node-xx.yml` 中配置环境变量:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
environment:
|
||||||
|
# 删除 REDIS_HOST 和 REDIS_PORT,改用 Sentinel
|
||||||
|
- REDIS_PASSWORD=${REDIS_PASSWORD:-redis_HA_Cluster_2024}
|
||||||
|
- REDIS_SENTINEL_NODES=${REDIS_SENTINEL_NODES:-192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. 确保 `application-ha.yml` 配置正确:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
spring:
|
||||||
|
data:
|
||||||
|
redis:
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
database: 0
|
||||||
|
timeout: 10000
|
||||||
|
sentinel:
|
||||||
|
master: mymaster # 与 sentinel.conf 中的 master 名称一致
|
||||||
|
nodes: ${REDIS_SENTINEL_NODES:192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
```
|
||||||
|
|
||||||
|
**验证**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 查看当前 Redis 主节点
|
||||||
|
docker exec redis-sentinel redis-cli -p 26379 SENTINEL get-master-addr-by-name mymaster
|
||||||
|
|
||||||
|
# 输出应为主节点的 IP 和端口
|
||||||
|
# 1) "192.168.1.101"
|
||||||
|
# 2) "6379"
|
||||||
|
|
||||||
|
# 测试 Sentinel 连接
|
||||||
|
docker exec redis-sentinel redis-cli -p 26379 SENTINEL master mymaster
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 七、日常运维
|
## 七、日常运维
|
||||||
|
|||||||
@@ -0,0 +1,112 @@
|
|||||||
|
server:
|
||||||
|
port: 9006
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: video-admin
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: ${NACOS_SERVERS:192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
|
namespace: ${NACOS_NAMESPACE:public}
|
||||||
|
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
ip: ${ADMIN_IP:}
|
||||||
|
config:
|
||||||
|
server-addr: ${spring.cloud.nacos.discovery.server-addr}
|
||||||
|
namespace: ${spring.cloud.nacos.discovery.namespace}
|
||||||
|
group: ${spring.cloud.nacos.discovery.group}
|
||||||
|
file-extension: yaml
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
sentinel:
|
||||||
|
transport:
|
||||||
|
dashboard: ${SENTINEL_HOST:sentinel}:${SENTINEL_PORT:8080}
|
||||||
|
port: 8726
|
||||||
|
client-ip: ${ADMIN_IP:}
|
||||||
|
eager: true
|
||||||
|
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_ROOT_PASSWORD:root123456}
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
hikari:
|
||||||
|
max-lifetime: 58000
|
||||||
|
idle-timeout: 300000
|
||||||
|
connection-timeout: 20000
|
||||||
|
connection-test-query: SELECT 1
|
||||||
|
keepalive-time: 60000
|
||||||
|
validation-timeout: 3000
|
||||||
|
minimum-idle: 5
|
||||||
|
maximum-pool-size: 20
|
||||||
|
data:
|
||||||
|
redis:
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
database: 5
|
||||||
|
timeout: 10000
|
||||||
|
sentinel:
|
||||||
|
master: mymaster
|
||||||
|
nodes: ${REDIS_SENTINEL_NODES:192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
lettuce:
|
||||||
|
pool:
|
||||||
|
max-active: 200
|
||||||
|
max-wait: -1
|
||||||
|
max-idle: 10
|
||||||
|
min-idle: 0
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
mapper-locations: classpath:mapper/*.xml
|
||||||
|
type-aliases-package: com.nuaa.video.admin.entity
|
||||||
|
configuration:
|
||||||
|
map-underscore-to-camel-case: true
|
||||||
|
cache-enabled: false
|
||||||
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
id-type: auto
|
||||||
|
logic-delete-field: status
|
||||||
|
logic-delete-value: 0
|
||||||
|
logic-not-delete-value: 1
|
||||||
|
|
||||||
|
jwt:
|
||||||
|
secret: video-platform-admin-secret-key-2024-nuaa-ha
|
||||||
|
expiration: 86400
|
||||||
|
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/**
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: '*'
|
||||||
|
endpoint:
|
||||||
|
health:
|
||||||
|
show-details: always
|
||||||
|
|
||||||
|
feign:
|
||||||
|
client:
|
||||||
|
config:
|
||||||
|
default:
|
||||||
|
connectTimeout: 5000
|
||||||
|
readTimeout: 5000
|
||||||
|
circuitbreaker:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
com.nuaa.video: info
|
||||||
|
org.springframework.security: info
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
server:
|
||||||
|
port: 9001
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: video-auth
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: ${NACOS_SERVERS:192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
|
namespace: ${NACOS_NAMESPACE:public}
|
||||||
|
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
ip: ${AUTH_IP:}
|
||||||
|
config:
|
||||||
|
server-addr: ${spring.cloud.nacos.discovery.server-addr}
|
||||||
|
namespace: ${spring.cloud.nacos.discovery.namespace}
|
||||||
|
group: ${spring.cloud.nacos.discovery.group}
|
||||||
|
file-extension: yaml
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
sentinel:
|
||||||
|
transport:
|
||||||
|
dashboard: ${SENTINEL_HOST:sentinel}:${SENTINEL_PORT:8080}
|
||||||
|
port: 8721
|
||||||
|
client-ip: ${AUTH_IP:}
|
||||||
|
eager: true
|
||||||
|
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_ROOT_PASSWORD:root123456}
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
hikari:
|
||||||
|
max-lifetime: 58000
|
||||||
|
idle-timeout: 300000
|
||||||
|
connection-timeout: 20000
|
||||||
|
connection-test-query: SELECT 1
|
||||||
|
keepalive-time: 60000
|
||||||
|
validation-timeout: 3000
|
||||||
|
minimum-idle: 5
|
||||||
|
maximum-pool-size: 20
|
||||||
|
data:
|
||||||
|
redis:
|
||||||
|
# Redis Sentinel 高可用配置
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
database: 0
|
||||||
|
timeout: 10000
|
||||||
|
sentinel:
|
||||||
|
# Sentinel master 名称,与 sentinel.conf 中配置的 mymaster 一致
|
||||||
|
master: mymaster
|
||||||
|
# Sentinel 节点列表
|
||||||
|
nodes: ${REDIS_SENTINEL_NODES:192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
lettuce:
|
||||||
|
pool:
|
||||||
|
max-active: 200
|
||||||
|
max-wait: -1
|
||||||
|
max-idle: 10
|
||||||
|
min-idle: 0
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
mapper-locations: classpath:mapper/*.xml
|
||||||
|
type-aliases-package: com.nuaa.video.auth.entity
|
||||||
|
configuration:
|
||||||
|
map-underscore-to-camel-case: true
|
||||||
|
cache-enabled: false
|
||||||
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
id-type: auto
|
||||||
|
logic-delete-field: is_deleted
|
||||||
|
logic-delete-value: 1
|
||||||
|
logic-not-delete-value: 0
|
||||||
|
|
||||||
|
jwt:
|
||||||
|
secret: video-platform-secret-key-2024-nuaa-ha
|
||||||
|
expiration: 86400
|
||||||
|
token-header: Authorization
|
||||||
|
token-prefix: "Bearer "
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: '*'
|
||||||
|
endpoint:
|
||||||
|
health:
|
||||||
|
show-details: always
|
||||||
|
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
com.nuaa.video: info
|
||||||
|
org.springframework.security: info
|
||||||
|
|
||||||
|
feign:
|
||||||
|
circuitbreaker:
|
||||||
|
enabled: true
|
||||||
|
client:
|
||||||
|
config:
|
||||||
|
default:
|
||||||
|
connectTimeout: 5000
|
||||||
|
readTimeout: 5000
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
server:
|
||||||
|
port: 9004
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: video-comment
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: ${NACOS_SERVERS:192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
|
namespace: ${NACOS_NAMESPACE:public}
|
||||||
|
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
ip: ${COMMENT_IP:}
|
||||||
|
config:
|
||||||
|
server-addr: ${spring.cloud.nacos.discovery.server-addr}
|
||||||
|
namespace: ${spring.cloud.nacos.discovery.namespace}
|
||||||
|
group: ${spring.cloud.nacos.discovery.group}
|
||||||
|
file-extension: yaml
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
sentinel:
|
||||||
|
transport:
|
||||||
|
dashboard: ${SENTINEL_HOST:sentinel}:${SENTINEL_PORT:8080}
|
||||||
|
port: 8724
|
||||||
|
client-ip: ${COMMENT_IP:}
|
||||||
|
eager: true
|
||||||
|
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_ROOT_PASSWORD:root123456}
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
hikari:
|
||||||
|
max-lifetime: 58000
|
||||||
|
idle-timeout: 300000
|
||||||
|
connection-timeout: 20000
|
||||||
|
connection-test-query: SELECT 1
|
||||||
|
keepalive-time: 60000
|
||||||
|
validation-timeout: 3000
|
||||||
|
minimum-idle: 5
|
||||||
|
maximum-pool-size: 20
|
||||||
|
data:
|
||||||
|
redis:
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
database: 3
|
||||||
|
timeout: 10000
|
||||||
|
sentinel:
|
||||||
|
master: mymaster
|
||||||
|
nodes: ${REDIS_SENTINEL_NODES:192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
lettuce:
|
||||||
|
pool:
|
||||||
|
max-active: 200
|
||||||
|
max-wait: -1
|
||||||
|
max-idle: 10
|
||||||
|
min-idle: 0
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
mapper-locations: classpath:mapper/*.xml
|
||||||
|
type-aliases-package: com.nuaa.video.comment.entity
|
||||||
|
configuration:
|
||||||
|
map-underscore-to-camel-case: true
|
||||||
|
cache-enabled: false
|
||||||
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
id-type: auto
|
||||||
|
logic-delete-field: status
|
||||||
|
logic-delete-value: 0
|
||||||
|
logic-not-delete-value: 1
|
||||||
|
|
||||||
|
comment:
|
||||||
|
sensitive-filter:
|
||||||
|
enabled: true
|
||||||
|
review:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
jwt:
|
||||||
|
secret: video-platform-secret-key-2024-nuaa-ha
|
||||||
|
expiration: 86400
|
||||||
|
token-header: Authorization
|
||||||
|
token-prefix: "Bearer "
|
||||||
|
|
||||||
|
auth:
|
||||||
|
ignore-urls:
|
||||||
|
- /comment/public/**
|
||||||
|
- /actuator/**
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: '*'
|
||||||
|
endpoint:
|
||||||
|
health:
|
||||||
|
show-details: always
|
||||||
|
|
||||||
|
feign:
|
||||||
|
client:
|
||||||
|
config:
|
||||||
|
default:
|
||||||
|
connectTimeout: 5000
|
||||||
|
readTimeout: 5000
|
||||||
|
circuitbreaker:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
com.nuaa.video: info
|
||||||
|
org.springframework.security: info
|
||||||
@@ -0,0 +1,134 @@
|
|||||||
|
server:
|
||||||
|
port: 9003
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: video-content
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: ${NACOS_SERVERS:192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
|
namespace: ${NACOS_NAMESPACE:public}
|
||||||
|
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
ip: ${CONTENT_IP:}
|
||||||
|
config:
|
||||||
|
server-addr: ${spring.cloud.nacos.discovery.server-addr}
|
||||||
|
namespace: ${spring.cloud.nacos.discovery.namespace}
|
||||||
|
group: ${spring.cloud.nacos.discovery.group}
|
||||||
|
file-extension: yaml
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
sentinel:
|
||||||
|
transport:
|
||||||
|
dashboard: ${SENTINEL_HOST:sentinel}:${SENTINEL_PORT:8080}
|
||||||
|
port: 8723
|
||||||
|
client-ip: ${CONTENT_IP:}
|
||||||
|
eager: true
|
||||||
|
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_ROOT_PASSWORD:root123456}
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
hikari:
|
||||||
|
max-lifetime: 58000
|
||||||
|
idle-timeout: 300000
|
||||||
|
connection-timeout: 20000
|
||||||
|
connection-test-query: SELECT 1
|
||||||
|
keepalive-time: 60000
|
||||||
|
validation-timeout: 3000
|
||||||
|
minimum-idle: 5
|
||||||
|
maximum-pool-size: 20
|
||||||
|
data:
|
||||||
|
redis:
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
database: 2
|
||||||
|
timeout: 10000
|
||||||
|
sentinel:
|
||||||
|
master: mymaster
|
||||||
|
nodes: ${REDIS_SENTINEL_NODES:192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
lettuce:
|
||||||
|
pool:
|
||||||
|
max-active: 200
|
||||||
|
max-wait: -1
|
||||||
|
max-idle: 10
|
||||||
|
min-idle: 0
|
||||||
|
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
|
||||||
|
retry-times-when-send-async-failed: 3
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
mapper-locations: classpath:mapper/*.xml
|
||||||
|
type-aliases-package: com.nuaa.video.content.entity
|
||||||
|
configuration:
|
||||||
|
map-underscore-to-camel-case: true
|
||||||
|
cache-enabled: false
|
||||||
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
id-type: auto
|
||||||
|
logic-delete-field: is_deleted
|
||||||
|
logic-delete-value: 1
|
||||||
|
logic-not-delete-value: 0
|
||||||
|
|
||||||
|
minio:
|
||||||
|
endpoint: http://${MINIO_HOST:minio}:${MINIO_PORT:9000}
|
||||||
|
accessKey: ${MINIO_ACCESS_KEY:minioadmin}
|
||||||
|
secretKey: ${MINIO_SECRET_KEY:minioadmin123}
|
||||||
|
bucketName: ${MINIO_BUCKET:video-platform}
|
||||||
|
|
||||||
|
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/**
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: '*'
|
||||||
|
endpoint:
|
||||||
|
health:
|
||||||
|
show-details: always
|
||||||
|
|
||||||
|
feign:
|
||||||
|
client:
|
||||||
|
config:
|
||||||
|
default:
|
||||||
|
connectTimeout: 5000
|
||||||
|
readTimeout: 5000
|
||||||
|
circuitbreaker:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
jwt:
|
||||||
|
secret: video-platform-secret-key-2024-nuaa-ha
|
||||||
|
expiration: 86400
|
||||||
|
token-header: Authorization
|
||||||
|
token-prefix: "Bearer "
|
||||||
|
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
com.nuaa.video: info
|
||||||
|
org.springframework.security: info
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
server:
|
||||||
|
port: 9000
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: video-gateway
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: ${NACOS_SERVERS:192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
|
namespace: ${NACOS_NAMESPACE:public}
|
||||||
|
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
ip: ${GATEWAY_IP:}
|
||||||
|
config:
|
||||||
|
server-addr: ${spring.cloud.nacos.discovery.server-addr}
|
||||||
|
namespace: ${spring.cloud.nacos.discovery.namespace}
|
||||||
|
group: ${spring.cloud.nacos.discovery.group}
|
||||||
|
file-extension: yaml
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
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/**
|
||||||
|
- id: video-content
|
||||||
|
uri: lb://video-content
|
||||||
|
predicates:
|
||||||
|
- Path=/content/**
|
||||||
|
- 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_HOST:sentinel}:${SENTINEL_PORT:8080}
|
||||||
|
port: 8720
|
||||||
|
client-ip: ${GATEWAY_IP:}
|
||||||
|
eager: true
|
||||||
|
scg:
|
||||||
|
fallback:
|
||||||
|
mode: response
|
||||||
|
response-body: '{"code":500,"message":"服务不可用,请稍后再试"}'
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: '*'
|
||||||
|
endpoint:
|
||||||
|
health:
|
||||||
|
show-details: always
|
||||||
|
gateway:
|
||||||
|
enabled: 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
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
server:
|
||||||
|
port: 9005
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: video-recommend
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: ${NACOS_SERVERS:192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
|
namespace: ${NACOS_NAMESPACE:public}
|
||||||
|
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
ip: ${RECOMMEND_IP:}
|
||||||
|
config:
|
||||||
|
server-addr: ${spring.cloud.nacos.discovery.server-addr}
|
||||||
|
namespace: ${spring.cloud.nacos.discovery.namespace}
|
||||||
|
group: ${spring.cloud.nacos.discovery.group}
|
||||||
|
file-extension: yaml
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
sentinel:
|
||||||
|
transport:
|
||||||
|
dashboard: ${SENTINEL_HOST:sentinel}:${SENTINEL_PORT:8080}
|
||||||
|
port: 8725
|
||||||
|
client-ip: ${RECOMMEND_IP:}
|
||||||
|
eager: true
|
||||||
|
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_ROOT_PASSWORD:root123456}
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
hikari:
|
||||||
|
max-lifetime: 58000
|
||||||
|
idle-timeout: 300000
|
||||||
|
connection-timeout: 20000
|
||||||
|
connection-test-query: SELECT 1
|
||||||
|
keepalive-time: 60000
|
||||||
|
validation-timeout: 3000
|
||||||
|
minimum-idle: 5
|
||||||
|
maximum-pool-size: 20
|
||||||
|
data:
|
||||||
|
redis:
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
database: 4
|
||||||
|
timeout: 10000
|
||||||
|
sentinel:
|
||||||
|
master: mymaster
|
||||||
|
nodes: ${REDIS_SENTINEL_NODES:192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
lettuce:
|
||||||
|
pool:
|
||||||
|
max-active: 200
|
||||||
|
max-wait: -1
|
||||||
|
max-idle: 10
|
||||||
|
min-idle: 0
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
mapper-locations: classpath:mapper/*.xml
|
||||||
|
type-aliases-package: com.nuaa.video.recommend.entity
|
||||||
|
configuration:
|
||||||
|
map-underscore-to-camel-case: true
|
||||||
|
cache-enabled: false
|
||||||
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
id-type: auto
|
||||||
|
logic-delete-field: is_deleted
|
||||||
|
logic-delete-value: 1
|
||||||
|
logic-not-delete-value: 0
|
||||||
|
|
||||||
|
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: video-platform-secret-key-2024-nuaa-ha
|
||||||
|
expiration: 86400
|
||||||
|
token-header: Authorization
|
||||||
|
token-prefix: "Bearer "
|
||||||
|
|
||||||
|
auth:
|
||||||
|
ignore-urls:
|
||||||
|
- /recommend/hot/**
|
||||||
|
- /recommend/tag/**
|
||||||
|
- /actuator/**
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: '*'
|
||||||
|
endpoint:
|
||||||
|
health:
|
||||||
|
show-details: always
|
||||||
|
|
||||||
|
feign:
|
||||||
|
client:
|
||||||
|
config:
|
||||||
|
default:
|
||||||
|
connectTimeout: 5000
|
||||||
|
readTimeout: 5000
|
||||||
|
circuitbreaker:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
com.nuaa.video: info
|
||||||
|
org.springframework.security: info
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
server:
|
||||||
|
port: 9002
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: video-user
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: ${NACOS_SERVERS:192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848}
|
||||||
|
namespace: ${NACOS_NAMESPACE:public}
|
||||||
|
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
ip: ${USER_IP:}
|
||||||
|
config:
|
||||||
|
server-addr: ${spring.cloud.nacos.discovery.server-addr}
|
||||||
|
namespace: ${spring.cloud.nacos.discovery.namespace}
|
||||||
|
group: ${spring.cloud.nacos.discovery.group}
|
||||||
|
file-extension: yaml
|
||||||
|
username: nacos
|
||||||
|
password: nacos
|
||||||
|
sentinel:
|
||||||
|
transport:
|
||||||
|
dashboard: ${SENTINEL_HOST:sentinel}:${SENTINEL_PORT:8080}
|
||||||
|
port: 8722
|
||||||
|
client-ip: ${USER_IP:}
|
||||||
|
eager: true
|
||||||
|
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_ROOT_PASSWORD:root123456}
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
hikari:
|
||||||
|
max-lifetime: 58000
|
||||||
|
idle-timeout: 300000
|
||||||
|
connection-timeout: 20000
|
||||||
|
connection-test-query: SELECT 1
|
||||||
|
keepalive-time: 60000
|
||||||
|
validation-timeout: 3000
|
||||||
|
minimum-idle: 5
|
||||||
|
maximum-pool-size: 20
|
||||||
|
data:
|
||||||
|
redis:
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
database: 1
|
||||||
|
timeout: 10000
|
||||||
|
sentinel:
|
||||||
|
master: mymaster
|
||||||
|
nodes: ${REDIS_SENTINEL_NODES:192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||||
|
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||||
|
lettuce:
|
||||||
|
pool:
|
||||||
|
max-active: 200
|
||||||
|
max-wait: -1
|
||||||
|
max-idle: 10
|
||||||
|
min-idle: 0
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
mapper-locations: classpath:mapper/*.xml
|
||||||
|
type-aliases-package: com.nuaa.video.user.entity
|
||||||
|
configuration:
|
||||||
|
map-underscore-to-camel-case: true
|
||||||
|
cache-enabled: false
|
||||||
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
global-config:
|
||||||
|
db-config:
|
||||||
|
id-type: auto
|
||||||
|
logic-delete-field: is_deleted
|
||||||
|
logic-delete-value: 1
|
||||||
|
logic-not-delete-value: 0
|
||||||
|
|
||||||
|
auth:
|
||||||
|
ignore-urls:
|
||||||
|
- /user/profile/public/**
|
||||||
|
- /user/profile/init
|
||||||
|
- /actuator/**
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoints:
|
||||||
|
web:
|
||||||
|
exposure:
|
||||||
|
include: '*'
|
||||||
|
endpoint:
|
||||||
|
health:
|
||||||
|
show-details: always
|
||||||
|
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
com.nuaa.video: info
|
||||||
|
org.springframework.security: info
|
||||||
|
|
||||||
|
minio:
|
||||||
|
endpoint: http://${MINIO_HOST:minio}:${MINIO_PORT:9000}
|
||||||
|
accessKey: minioadmin
|
||||||
|
secretKey: minioadmin123
|
||||||
|
bucketName: video-platform
|
||||||
Reference in New Issue
Block a user