diff --git a/Jenkinsfile b/Jenkinsfile index 0947196..ad39228 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -17,15 +17,15 @@ pipeline { } environment { - // 镜像仓库配置 - REGISTRY = 'localhost:5000' + // 镜像仓库配置(Infra 服务器内网地址,Prod 服务器可通过内网拉取) + REGISTRY = '172.17.16.7:5000' DEPS_IMAGE = "${REGISTRY}/aiot-deps:latest" // 服务配置 CORE_SERVICES = 'viewsh-gateway,viewsh-module-system-server,viewsh-module-infra-server,viewsh-module-iot-server,viewsh-module-iot-gateway,viewsh-module-ops-server' - // 部署配置 - DEPLOY_HOST = '172.19.0.1' + // 部署配置(Prod 服务器内网地址) + DEPLOY_HOST = '172.17.16.14' DEPLOY_PATH = '/opt/aiot-platform-cloud' SSH_KEY = '/var/jenkins_home/.ssh/id_rsa' diff --git a/docker-compose.core.yml b/docker-compose.core.yml index d98a289..4e637eb 100644 --- a/docker-compose.core.yml +++ b/docker-compose.core.yml @@ -10,7 +10,7 @@ volumes: services: viewsh-gateway: - image: ${REGISTRY_HOST:-localhost:5000}/viewsh-gateway:${IMAGE_TAG:-latest} + image: ${REGISTRY_HOST:-172.17.16.7:5000}/viewsh-gateway:${IMAGE_TAG:-latest} container_name: aiot-gateway restart: on-failure:5 ports: @@ -31,9 +31,9 @@ services: NACOS_CONFIG_NAMESPACE: "8efd6d96-de7f-4664-b28e-c2788ffa1395" # ===== Redis 配置 ===== - SPRING_DATA_REDIS_HOST: 172.17.16.14 + SPRING_DATA_REDIS_HOST: 172.17.16.13 SPRING_DATA_REDIS_PORT: 6379 - SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD" + SPRING_DATA_REDIS_PASSWORD: "HkVZkVnn1" volumes: - app-logs:/app/logs @@ -50,7 +50,7 @@ services: start_period: 120s viewsh-module-system-server: - image: ${REGISTRY_HOST:-localhost:5000}/viewsh-module-system-server:${IMAGE_TAG:-latest} + image: ${REGISTRY_HOST:-172.17.16.7:5000}/viewsh-module-system-server:${IMAGE_TAG:-latest} container_name: aiot-system-server restart: on-failure:5 ports: @@ -68,13 +68,13 @@ services: NACOS_CONFIG_NAMESPACE: "8efd6d96-de7f-4664-b28e-c2788ffa1395" # 数据库 - SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.14:3306/aiot-platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.8:3306/aiot-platform-test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: root # TODO: 填入数据库用户名 - SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "65p^VTPi9Qd+" # TODO: 填入数据库密码 + SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "tKi8rfUJjVrf@" # TODO: 填入数据库密码 # Redis - SPRING_DATA_REDIS_HOST: 172.17.16.14 - SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD" # TODO: 填入 Redis 密码 + SPRING_DATA_REDIS_HOST: 172.17.16.13 + SPRING_DATA_REDIS_PASSWORD: "HkVZkVnn1" # TODO: 填入 Redis 密码 # 微信配置 (解决 appid 不能为 null) WX_MP_APP_ID: "wx5b23ba7a5589ecbb" @@ -103,7 +103,7 @@ services: condition: service_healthy viewsh-module-infra-server: - image: ${REGISTRY_HOST:-localhost:5000}/viewsh-module-infra-server:${IMAGE_TAG:-latest} + image: ${REGISTRY_HOST:-172.17.16.7:5000}/viewsh-module-infra-server:${IMAGE_TAG:-latest} container_name: aiot-infra-server restart: on-failure:5 ports: @@ -119,12 +119,12 @@ services: NACOS_DISCOVERY_NAMESPACE: "8efd6d96-de7f-4664-b28e-c2788ffa1395" NACOS_CONFIG_NAMESPACE: "8efd6d96-de7f-4664-b28e-c2788ffa1395" - SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.14:3306/aiot-platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.8:3306/aiot-platform-test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: root - SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "65p^VTPi9Qd+" + SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "tKi8rfUJjVrf@" - SPRING_DATA_REDIS_HOST: 172.17.16.14 - SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD" + SPRING_DATA_REDIS_HOST: 172.17.16.13 + SPRING_DATA_REDIS_PASSWORD: "HkVZkVnn1" # XXL-Job 调度中心地址 XXL_JOB_ADMIN_ADDRESSES: http://172.17.16.14:19090/xxl-job-admin @@ -142,7 +142,7 @@ services: condition: service_healthy viewsh-module-iot-server: - image: ${REGISTRY_HOST:-localhost:5000}/viewsh-module-iot-server:${IMAGE_TAG:-latest} + image: ${REGISTRY_HOST:-172.17.16.7:5000}/viewsh-module-iot-server:${IMAGE_TAG:-latest} container_name: aiot-iot-server restart: on-failure:5 ports: @@ -158,14 +158,14 @@ services: NACOS_DISCOVERY_NAMESPACE: "8efd6d96-de7f-4664-b28e-c2788ffa1395" NACOS_CONFIG_NAMESPACE: "8efd6d96-de7f-4664-b28e-c2788ffa1395" - SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.14:3306/aiot-platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.8:3306/aiot-platform-test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: root - SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "65p^VTPi9Qd+" + SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "tKi8rfUJjVrf@" - SPRING_DATA_REDIS_HOST: 172.17.16.14 - SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD" + SPRING_DATA_REDIS_HOST: 172.17.16.13 + SPRING_DATA_REDIS_PASSWORD: "HkVZkVnn1" - ROCKETMQ_NAME_SERVER: 172.17.16.14:9876 + ROCKETMQ_NAME_SERVER: rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 # TDengine TDENGINE_HOST: 172.17.16.14 @@ -194,7 +194,7 @@ services: condition: service_healthy viewsh-module-iot-gateway: - image: ${REGISTRY_HOST:-localhost:5000}/viewsh-module-iot-gateway:${IMAGE_TAG:-latest} + image: ${REGISTRY_HOST:-172.17.16.7:5000}/viewsh-module-iot-gateway:${IMAGE_TAG:-latest} container_name: aiot-iot-gateway restart: on-failure:5 ports: @@ -207,10 +207,10 @@ services: SPRING_PROFILES_ACTIVE: prod JAVA_OPTS: "-Xms1024m -Xmx2048m -XX:+UseContainerSupport -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/logs" - SPRING_DATA_REDIS_HOST: 172.17.16.14 - SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD" + SPRING_DATA_REDIS_HOST: 172.17.16.13 + SPRING_DATA_REDIS_PASSWORD: "HkVZkVnn1" - ROCKETMQ_NAME_SERVER: 172.17.16.14:9876 + ROCKETMQ_NAME_SERVER: rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 # 添加这一行 VIEWSH_IOT_GATEWAY_RPC_URL: "http://aiot-iot-server:48091" volumes: @@ -224,7 +224,7 @@ services: - viewsh-module-iot-server viewsh-module-ops-server: - image: ${REGISTRY_HOST:-localhost:5000}/viewsh-module-ops-server:${IMAGE_TAG:-latest} + image: ${REGISTRY_HOST:-172.17.16.7:5000}/viewsh-module-ops-server:${IMAGE_TAG:-latest} container_name: aiot-ops-server restart: on-failure:5 ports: @@ -240,14 +240,14 @@ services: NACOS_DISCOVERY_NAMESPACE: "8efd6d96-de7f-4664-b28e-c2788ffa1395" NACOS_CONFIG_NAMESPACE: "8efd6d96-de7f-4664-b28e-c2788ffa1395" - SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.14:3306/aiot-platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.8:3306/aiot-platform-test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: root - SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "65p^VTPi9Qd+" + SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "tKi8rfUJjVrf@" - SPRING_DATA_REDIS_HOST: 172.17.16.14 - SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD" + SPRING_DATA_REDIS_HOST: 172.17.16.13 + SPRING_DATA_REDIS_PASSWORD: "HkVZkVnn1" - ROCKETMQ_NAME_SERVER: 172.17.16.14:9876 + ROCKETMQ_NAME_SERVER: rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080 # XXL-Job 调度中心地址 XXL_JOB_ADMIN_ADDRESSES: http://172.17.16.14:19090/xxl-job-admin diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 1111fb9..b7003dd 100644 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -1,230 +1,230 @@ -#!/bin/bash - -# ============================================ -# AIOT Platform - 部署脚本 -# 滚动更新部署,支持健康检查和自动回滚 -# ============================================ - -set -e - -# 颜色输出 -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' # No Color - -# 配置 -COMPOSE_FILE="docker-compose.core.yml" -REGISTRY="localhost:5000" -HEALTH_CHECK_TIMEOUT=120 -HEALTH_CHECK_INTERVAL=5 - -# 日志函数 -log_info() { - echo -e "${GREEN}[INFO]${NC} $1" -} - -log_warn() { - echo -e "${YELLOW}[WARN]${NC} $1" -} - -log_error() { - echo -e "${RED}[ERROR]${NC} $1" -} - -# 检查服务健康状态 -check_health() { - local service=$1 - local container_name="aiot-${service}" - local elapsed=0 - - log_info "等待 ${service} 健康检查..." - - while [ $elapsed -lt $HEALTH_CHECK_TIMEOUT ]; do - if docker inspect --format='{{.State.Health.Status}}' "$container_name" 2>/dev/null | grep -q "healthy"; then - log_info "${service} 健康检查通过 ✓" - return 0 - fi - - sleep $HEALTH_CHECK_INTERVAL - elapsed=$((elapsed + HEALTH_CHECK_INTERVAL)) - echo -n "." - done - - echo "" - log_error "${service} 健康检查超时 ✗" - return 1 -} - -# 备份当前运行的镜像标签 -backup_current_tags() { - log_info "备份当前镜像标签..." - - docker-compose -f "$COMPOSE_FILE" config --services | while read service; do - local current_image=$(docker inspect "aiot-${service}" --format='{{.Config.Image}}' 2>/dev/null || echo "") - if [ -n "$current_image" ]; then - echo "${service}=${current_image}" >> .deploy_backup - fi - done - - log_info "备份完成: .deploy_backup" -} - -# 部署单个服务 -deploy_service() { - local service=$1 - - log_info "=========================================" - log_info "部署服务: ${service}" - log_info "=========================================" - - # 拉取最新镜像 - log_info "拉取最新镜像..." - if ! docker-compose -f "$COMPOSE_FILE" pull "$service"; then - log_error "拉取镜像失败" - return 1 - fi - - # 启动新容器 - log_info "启动新容器..." - if ! docker-compose -f "$COMPOSE_FILE" up -d "$service"; then - log_error "启动容器失败" - return 1 - fi - - # 健康检查 - if ! check_health "$service"; then - log_error "${service} 部署失败,准备回滚..." - return 1 - fi - - log_info "${service} 部署成功 ✓" - return 0 -} - -# 回滚服务 -rollback_service() { - local service=$1 - - log_warn "回滚服务: ${service}" - - # 从备份文件读取之前的镜像 - if [ -f .deploy_backup ]; then - local backup_image=$(grep "^${service}=" .deploy_backup | cut -d'=' -f2) - - if [ -n "$backup_image" ]; then - log_info "回滚到镜像: ${backup_image}" - - docker-compose -f "$COMPOSE_FILE" stop "$service" - docker tag "$backup_image" "${REGISTRY}/${service}:latest" - docker-compose -f "$COMPOSE_FILE" up -d "$service" - - if check_health "$service"; then - log_info "${service} 回滚成功 ✓" - return 0 - fi - fi - fi - - log_error "${service} 回滚失败 ✗" - return 1 -} - -# 主部署流程 -main() { - log_info "=========================================" - log_info "AIOT Platform 部署开始" - log_info "=========================================" - - # 检查 .env 文件 - if [ ! -f .env ]; then - log_error ".env 文件不存在,请先复制 .env.example 并配置" - exit 1 - fi - - # 加载环境变量 - source .env - - # 备份当前状态 - rm -f .deploy_backup - backup_current_tags - - # 获取要部署的服务列表 - local services_to_deploy="" - - if [ $# -eq 0 ]; then - # 部署所有核心服务 - services_to_deploy=$(docker-compose -f "$COMPOSE_FILE" config --services | grep -v -E "mysql|redis|nacos|rocketmq") - else - # 部署指定服务 - services_to_deploy="$@" - fi - - log_info "待部署服务: ${services_to_deploy}" - - # 部署服务 - local failed_services="" - - for service in $services_to_deploy; do - if ! deploy_service "$service"; then - failed_services="${failed_services} ${service}" - - # 尝试回滚 - rollback_service "$service" - fi - done - - # 清理旧镜像 - log_info "清理悬空镜像..." - docker image prune -f - - # 部署结果 - echo "" - log_info "=========================================" - if [ -z "$failed_services" ]; then - log_info "所有服务部署成功 ✓" - log_info "=========================================" - rm -f .deploy_backup - exit 0 - else - log_error "以下服务部署失败: ${failed_services}" - log_error "=========================================" - exit 1 - fi -} - -# 显示帮助 -show_help() { - cat << EOF -用法: $0 [服务名...] - -部署 AIOT Platform 服务到生产环境 - -参数: - 无参数 部署所有应用服务 - 服务名... 部署指定的服务 - -示例: - $0 # 部署所有服务 - $0 viewsh-gateway # 仅部署 gateway - $0 viewsh-module-iot-server viewsh-module-iot-gateway # 部署多个服务 - -服务列表: - - viewsh-gateway - - viewsh-module-system-server - - viewsh-module-infra-server - - viewsh-module-iot-server - - viewsh-module-iot-gateway - - viewsh-module-ops-server - -EOF -} - -# 参数处理 -if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then - show_help - exit 0 -fi - -# 执行主流程 -main "$@" +#!/bin/bash + +# ============================================ +# AIOT Platform - 部署脚本 +# 滚动更新部署,支持健康检查和自动回滚 +# ============================================ + +set -e + +# 颜色输出 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# 配置 +COMPOSE_FILE="docker-compose.core.yml" +REGISTRY="172.17.16.7:5000" +HEALTH_CHECK_TIMEOUT=120 +HEALTH_CHECK_INTERVAL=5 + +# 日志函数 +log_info() { + echo -e "${GREEN}[INFO]${NC} $1" +} + +log_warn() { + echo -e "${YELLOW}[WARN]${NC} $1" +} + +log_error() { + echo -e "${RED}[ERROR]${NC} $1" +} + +# 检查服务健康状态 +check_health() { + local service=$1 + local container_name="aiot-${service}" + local elapsed=0 + + log_info "等待 ${service} 健康检查..." + + while [ $elapsed -lt $HEALTH_CHECK_TIMEOUT ]; do + if docker inspect --format='{{.State.Health.Status}}' "$container_name" 2>/dev/null | grep -q "healthy"; then + log_info "${service} 健康检查通过 ✓" + return 0 + fi + + sleep $HEALTH_CHECK_INTERVAL + elapsed=$((elapsed + HEALTH_CHECK_INTERVAL)) + echo -n "." + done + + echo "" + log_error "${service} 健康检查超时 ✗" + return 1 +} + +# 备份当前运行的镜像标签 +backup_current_tags() { + log_info "备份当前镜像标签..." + + docker-compose -f "$COMPOSE_FILE" config --services | while read service; do + local current_image=$(docker inspect "aiot-${service}" --format='{{.Config.Image}}' 2>/dev/null || echo "") + if [ -n "$current_image" ]; then + echo "${service}=${current_image}" >> .deploy_backup + fi + done + + log_info "备份完成: .deploy_backup" +} + +# 部署单个服务 +deploy_service() { + local service=$1 + + log_info "=========================================" + log_info "部署服务: ${service}" + log_info "=========================================" + + # 拉取最新镜像 + log_info "拉取最新镜像..." + if ! docker-compose -f "$COMPOSE_FILE" pull "$service"; then + log_error "拉取镜像失败" + return 1 + fi + + # 启动新容器 + log_info "启动新容器..." + if ! docker-compose -f "$COMPOSE_FILE" up -d "$service"; then + log_error "启动容器失败" + return 1 + fi + + # 健康检查 + if ! check_health "$service"; then + log_error "${service} 部署失败,准备回滚..." + return 1 + fi + + log_info "${service} 部署成功 ✓" + return 0 +} + +# 回滚服务 +rollback_service() { + local service=$1 + + log_warn "回滚服务: ${service}" + + # 从备份文件读取之前的镜像 + if [ -f .deploy_backup ]; then + local backup_image=$(grep "^${service}=" .deploy_backup | cut -d'=' -f2) + + if [ -n "$backup_image" ]; then + log_info "回滚到镜像: ${backup_image}" + + docker-compose -f "$COMPOSE_FILE" stop "$service" + docker tag "$backup_image" "${REGISTRY}/${service}:latest" + docker-compose -f "$COMPOSE_FILE" up -d "$service" + + if check_health "$service"; then + log_info "${service} 回滚成功 ✓" + return 0 + fi + fi + fi + + log_error "${service} 回滚失败 ✗" + return 1 +} + +# 主部署流程 +main() { + log_info "=========================================" + log_info "AIOT Platform 部署开始" + log_info "=========================================" + + # 检查 .env 文件 + if [ ! -f .env ]; then + log_error ".env 文件不存在,请先复制 .env.example 并配置" + exit 1 + fi + + # 加载环境变量 + source .env + + # 备份当前状态 + rm -f .deploy_backup + backup_current_tags + + # 获取要部署的服务列表 + local services_to_deploy="" + + if [ $# -eq 0 ]; then + # 部署所有核心服务 + services_to_deploy=$(docker-compose -f "$COMPOSE_FILE" config --services | grep -v -E "mysql|redis|nacos|rocketmq") + else + # 部署指定服务 + services_to_deploy="$@" + fi + + log_info "待部署服务: ${services_to_deploy}" + + # 部署服务 + local failed_services="" + + for service in $services_to_deploy; do + if ! deploy_service "$service"; then + failed_services="${failed_services} ${service}" + + # 尝试回滚 + rollback_service "$service" + fi + done + + # 清理旧镜像 + log_info "清理悬空镜像..." + docker image prune -f + + # 部署结果 + echo "" + log_info "=========================================" + if [ -z "$failed_services" ]; then + log_info "所有服务部署成功 ✓" + log_info "=========================================" + rm -f .deploy_backup + exit 0 + else + log_error "以下服务部署失败: ${failed_services}" + log_error "=========================================" + exit 1 + fi +} + +# 显示帮助 +show_help() { + cat << EOF +用法: $0 [服务名...] + +部署 AIOT Platform 服务到生产环境 + +参数: + 无参数 部署所有应用服务 + 服务名... 部署指定的服务 + +示例: + $0 # 部署所有服务 + $0 viewsh-gateway # 仅部署 gateway + $0 viewsh-module-iot-server viewsh-module-iot-gateway # 部署多个服务 + +服务列表: + - viewsh-gateway + - viewsh-module-system-server + - viewsh-module-infra-server + - viewsh-module-iot-server + - viewsh-module-iot-gateway + - viewsh-module-ops-server + +EOF +} + +# 参数处理 +if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then + show_help + exit 0 +fi + +# 执行主流程 +main "$@" diff --git a/viewsh-gateway/src/main/resources/application-prod.yaml b/viewsh-gateway/src/main/resources/application-prod.yaml index 82d1fcd..9be9c2d 100644 --- a/viewsh-gateway/src/main/resources/application-prod.yaml +++ b/viewsh-gateway/src/main/resources/application-prod.yaml @@ -1,75 +1,75 @@ ---- #################### 注册中心 + 配置中心相关配置 #################### - -spring: - cloud: - nacos: - server-addr: ${NACOS_ADDR:127.0.0.1:8848} - username: ${NACOS_USERNAME:nacos} - password: ${NACOS_PASSWORD:nacos} - discovery: - namespace: ${NACOS_DISCOVERY_NAMESPACE:prod} - group: DEFAULT_GROUP - metadata: - version: 1.0.0 - config: - namespace: ${NACOS_CONFIG_NAMESPACE:prod} - group: DEFAULT_GROUP - file-extension: yaml - refresh-enabled: true - ---- #################### Redis 配置 #################### -spring: - data: - redis: - host: 127.0.0.1 - port: 6379 - database: 0 - password: "" - timeout: 5000ms - lettuce: - pool: - max-active: 8 - max-wait: -1ms - max-idle: 8 - min-idle: 0 - ---- #################### 服务保障相关配置 #################### - -lock4j: - acquire-timeout: 3000 - expire: 30000 - ---- #################### 监控相关配置 #################### - -management: - endpoints: - web: - base-path: /actuator - exposure: - include: '*' - -spring: - boot: - admin: - client: - instance: - service-host-type: IP - username: ${SPRING_BOOT_ADMIN_USERNAME:admin} - password: ${SPRING_BOOT_ADMIN_PASSWORD:admin} - -logging: - level: - root: INFO - com.viewsh: ${LOG_LEVEL:INFO} - org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR - file: - name: ${LOG_FILE_PATH:/app/logs}/${spring.application.name}.log - ---- #################### 芋道相关配置 #################### - -viewsh: - demo: false - env: - tag: ${HOSTNAME:prod} - security: - mock-enable: false +--- #################### 注册中心 + 配置中心相关配置 #################### + +spring: + cloud: + nacos: + server-addr: ${NACOS_ADDR:127.0.0.1:8848} + username: ${NACOS_USERNAME:nacos} + password: ${NACOS_PASSWORD:nacos} + discovery: + namespace: ${NACOS_DISCOVERY_NAMESPACE:prod} + group: DEFAULT_GROUP + metadata: + version: 1.0.0 + config: + namespace: ${NACOS_CONFIG_NAMESPACE:prod} + group: DEFAULT_GROUP + file-extension: yaml + refresh-enabled: true + +--- #################### Redis 配置 #################### +spring: + data: + redis: + host: 172.17.16.13 + port: 6379 + database: 0 + password: "" + timeout: 5000ms + lettuce: + pool: + max-active: 8 + max-wait: -1ms + max-idle: 8 + min-idle: 0 + +--- #################### 服务保障相关配置 #################### + +lock4j: + acquire-timeout: 3000 + expire: 30000 + +--- #################### 监控相关配置 #################### + +management: + endpoints: + web: + base-path: /actuator + exposure: + include: '*' + +spring: + boot: + admin: + client: + instance: + service-host-type: IP + username: ${SPRING_BOOT_ADMIN_USERNAME:admin} + password: ${SPRING_BOOT_ADMIN_PASSWORD:admin} + +logging: + level: + root: INFO + com.viewsh: ${LOG_LEVEL:INFO} + org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR + file: + name: ${LOG_FILE_PATH:/app/logs}/${spring.application.name}.log + +--- #################### 芋道相关配置 #################### + +viewsh: + demo: false + env: + tag: ${HOSTNAME:prod} + security: + mock-enable: false diff --git a/viewsh-module-infra/viewsh-module-infra-server/src/main/resources/application-prod.yaml b/viewsh-module-infra/viewsh-module-infra-server/src/main/resources/application-prod.yaml index 412ae51..2f313d2 100644 --- a/viewsh-module-infra/viewsh-module-infra-server/src/main/resources/application-prod.yaml +++ b/viewsh-module-infra/viewsh-module-infra-server/src/main/resources/application-prod.yaml @@ -1,166 +1,166 @@ ---- #################### 注册中心 + 配置中心相关配置 #################### - -spring: - cloud: - nacos: - server-addr: ${NACOS_ADDR:127.0.0.1:8848} - username: ${NACOS_USERNAME:nacos} - password: ${NACOS_PASSWORD:nacos} - discovery: - namespace: ${NACOS_DISCOVERY_NAMESPACE:prod} - group: DEFAULT_GROUP - metadata: - version: 1.0.0 - config: - namespace: ${NACOS_CONFIG_NAMESPACE:prod} - group: DEFAULT_GROUP - file-extension: yaml - refresh-enabled: true - lifecycle: - timeout-per-shutdown-phase: 30s # 增加优雅关闭超时时间 - ---- #################### 数据库相关配置 #################### -spring: - datasource: - druid: - web-stat-filter: - enabled: true - stat-view-servlet: - enabled: true - url-pattern: /druid/* - login-username: ${DRUID_USERNAME:admin} - login-password: ${DRUID_PASSWORD:admin} - filter: - stat: - enabled: true - log-slow-sql: true - slow-sql-millis: 100 - merge-sql: true - wall: - config: - multi-statement-allow: true - dynamic: - druid: - initial-size: 5 - min-idle: 10 - max-active: 20 - max-wait: 60000 - time-between-eviction-runs-millis: 60000 - min-evictable-idle-time-millis: 600000 - max-evictable-idle-time-millis: 1800000 - validation-query: SELECT 1 FROM DUAL - test-while-idle: true - test-on-borrow: false - test-on-return: false - pool-prepared-statements: true - max-pool-prepared-statement-per-connection-size: 20 - primary: master - datasource: - master: - url: jdbc:mysql://${MYSQL_HOST:127.0.0.1}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:aiot_platform}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true - username: ${MYSQL_USER:root} - password: ${MYSQL_PASSWORD:} - slave: - lazy: true - url: jdbc:mysql://${MYSQL_SLAVE_HOST:${MYSQL_HOST:127.0.0.1}}:${MYSQL_SLAVE_PORT:${MYSQL_PORT:3306}}/${MYSQL_DATABASE:aiot_platform}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true - username: ${MYSQL_SLAVE_USER:${MYSQL_USER:root}} - password: ${MYSQL_SLAVE_PASSWORD:${MYSQL_PASSWORD:}} - - data: - redis: - host: ${REDIS_HOST:127.0.0.1} - port: ${REDIS_PORT:6379} - database: ${REDIS_DATABASE:0} - password: ${REDIS_PASSWORD:} - timeout: 5000ms - lettuce: - pool: - max-active: 8 - max-wait: -1ms - max-idle: 8 - min-idle: 0 - ---- #################### MQ 消息队列相关配置 #################### - -rocketmq: - name-server: ${ROCKETMQ_NAMESRV_ADDR:127.0.0.1:9876} - -spring: - rabbitmq: - host: ${RABBITMQ_HOST:127.0.0.1} - port: ${RABBITMQ_PORT:5672} - username: ${RABBITMQ_USERNAME:guest} - password: ${RABBITMQ_PASSWORD:guest} - kafka: - bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS:127.0.0.1:9092} - ---- #################### 定时任务相关配置 #################### -xxl: - job: - admin: - addresses: ${XXL_JOB_ADMIN_ADDRESSES:http://172.17.16.14:19090/xxl-job-admin} - ---- #################### 服务保障相关配置 #################### - -lock4j: - acquire-timeout: 3000 - expire: 30000 - ---- #################### 监控相关配置 #################### - -management: - endpoints: - web: - base-path: /actuator - exposure: - include: '*' - -spring: - boot: - admin: - client: - instance: - service-host-type: IP - username: ${SPRING_BOOT_ADMIN_USERNAME:admin} - password: ${SPRING_BOOT_ADMIN_PASSWORD:admin} - context-path: /admin # 配置 Spring - -logging: - level: - root: INFO - com.viewsh: ${LOG_LEVEL:INFO} - com.viewsh.module.infra.dal.mysql: debug - com.viewsh.module.infra.dal.mysql.logger.ApiErrorLogMapper: INFO - com.viewsh.module.infra.dal.mysql.file.FileConfigMapper: INFO - org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR - file: - name: ${LOG_FILE_PATH:/app/logs}/${spring.application.name}.log - ---- #################### 芋道相关配置 #################### - -viewsh: - demo: false - env: - tag: ${HOSTNAME:prod} - captcha: - enable: true - security: - mock-enable: false - ---- #################### Quartz 优雅关闭配置 #################### - -spring: - quartz: - properties: - org: - quartz: - scheduler: - makeSchedulerThreadDaemon: true - shutdownHook: clean_shutdown - threadPool: - threadNamePrefix: QuartzSchedulerThread - threadsInheritContextClassLoaderOfInitializingThread: true - plugin: - shutdownhook: - class: org.quartz.plugins.management.ShutdownHookPlugin - cleanShutdown: true +--- #################### 注册中心 + 配置中心相关配置 #################### + +spring: + cloud: + nacos: + server-addr: ${NACOS_ADDR:127.0.0.1:8848} + username: ${NACOS_USERNAME:nacos} + password: ${NACOS_PASSWORD:nacos} + discovery: + namespace: ${NACOS_DISCOVERY_NAMESPACE:prod} + group: DEFAULT_GROUP + metadata: + version: 1.0.0 + config: + namespace: ${NACOS_CONFIG_NAMESPACE:prod} + group: DEFAULT_GROUP + file-extension: yaml + refresh-enabled: true + lifecycle: + timeout-per-shutdown-phase: 30s # 增加优雅关闭超时时间 + +--- #################### 数据库相关配置 #################### +spring: + datasource: + druid: + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + url-pattern: /druid/* + login-username: ${DRUID_USERNAME:admin} + login-password: ${DRUID_PASSWORD:admin} + filter: + stat: + enabled: true + log-slow-sql: true + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: + druid: + initial-size: 5 + min-idle: 10 + max-active: 20 + max-wait: 60000 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 600000 + max-evictable-idle-time-millis: 1800000 + validation-query: SELECT 1 FROM DUAL + test-while-idle: true + test-on-borrow: false + test-on-return: false + pool-prepared-statements: true + max-pool-prepared-statement-per-connection-size: 20 + primary: master + datasource: + master: + url: jdbc:mysql://${MYSQL_HOST:172.17.16.8}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:aiot-platform-test}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: ${MYSQL_USER:root} + password: ${MYSQL_PASSWORD:} + slave: + lazy: true + url: jdbc:mysql://${MYSQL_SLAVE_HOST:${MYSQL_HOST:172.17.16.8}}:${MYSQL_SLAVE_PORT:${MYSQL_PORT:3306}}/${MYSQL_DATABASE:aiot-platform-test}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: ${MYSQL_SLAVE_USER:${MYSQL_USER:root}} + password: ${MYSQL_SLAVE_PASSWORD:${MYSQL_PASSWORD:}} + + data: + redis: + host: ${REDIS_HOST:172.17.16.13} + port: ${REDIS_PORT:6379} + database: ${REDIS_DATABASE:0} + password: ${REDIS_PASSWORD:} + timeout: 5000ms + lettuce: + pool: + max-active: 8 + max-wait: -1ms + max-idle: 8 + min-idle: 0 + +--- #################### MQ 消息队列相关配置 #################### + +rocketmq: + name-server: ${ROCKETMQ_NAMESRV_ADDR:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} + +spring: + rabbitmq: + host: ${RABBITMQ_HOST:127.0.0.1} + port: ${RABBITMQ_PORT:5672} + username: ${RABBITMQ_USERNAME:guest} + password: ${RABBITMQ_PASSWORD:guest} + kafka: + bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS:127.0.0.1:9092} + +--- #################### 定时任务相关配置 #################### +xxl: + job: + admin: + addresses: ${XXL_JOB_ADMIN_ADDRESSES:http://172.17.16.14:19090/xxl-job-admin} + +--- #################### 服务保障相关配置 #################### + +lock4j: + acquire-timeout: 3000 + expire: 30000 + +--- #################### 监控相关配置 #################### + +management: + endpoints: + web: + base-path: /actuator + exposure: + include: '*' + +spring: + boot: + admin: + client: + instance: + service-host-type: IP + username: ${SPRING_BOOT_ADMIN_USERNAME:admin} + password: ${SPRING_BOOT_ADMIN_PASSWORD:admin} + context-path: /admin # 配置 Spring + +logging: + level: + root: INFO + com.viewsh: ${LOG_LEVEL:INFO} + com.viewsh.module.infra.dal.mysql: debug + com.viewsh.module.infra.dal.mysql.logger.ApiErrorLogMapper: INFO + com.viewsh.module.infra.dal.mysql.file.FileConfigMapper: INFO + org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR + file: + name: ${LOG_FILE_PATH:/app/logs}/${spring.application.name}.log + +--- #################### 芋道相关配置 #################### + +viewsh: + demo: false + env: + tag: ${HOSTNAME:prod} + captcha: + enable: true + security: + mock-enable: false + +--- #################### Quartz 优雅关闭配置 #################### + +spring: + quartz: + properties: + org: + quartz: + scheduler: + makeSchedulerThreadDaemon: true + shutdownHook: clean_shutdown + threadPool: + threadNamePrefix: QuartzSchedulerThread + threadsInheritContextClassLoaderOfInitializingThread: true + plugin: + shutdownhook: + class: org.quartz.plugins.management.ShutdownHookPlugin + cleanShutdown: true diff --git a/viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application-prod.yaml b/viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application-prod.yaml index 3d3a772..dffe699 100644 --- a/viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application-prod.yaml +++ b/viewsh-module-iot/viewsh-module-iot-gateway/src/main/resources/application-prod.yaml @@ -9,7 +9,7 @@ spring: # Redis 配置 data: redis: - host: ${REDIS_HOST:127.0.0.1} + host: ${REDIS_HOST:172.17.16.13} port: ${REDIS_PORT:6379} database: ${REDIS_DATABASE:0} password: ${REDIS_PASSWORD:} @@ -19,7 +19,7 @@ spring: # rocketmq 配置项,对应 RocketMQProperties 配置类 rocketmq: - name-server: ${ROCKETMQ_NAMESRV_ADDR:127.0.0.1:9876} + name-server: ${ROCKETMQ_NAMESRV_ADDR:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} # Producer 配置项 producer: group: ${spring.application.name}_PRODUCER diff --git a/viewsh-module-iot/viewsh-module-iot-server/src/main/resources/application-prod.yaml b/viewsh-module-iot/viewsh-module-iot-server/src/main/resources/application-prod.yaml index ca823dd..e14818c 100644 --- a/viewsh-module-iot/viewsh-module-iot-server/src/main/resources/application-prod.yaml +++ b/viewsh-module-iot/viewsh-module-iot-server/src/main/resources/application-prod.yaml @@ -1,156 +1,156 @@ ---- #################### 注册中心 + 配置中心相关配置 #################### - -spring: - cloud: - nacos: - server-addr: ${NACOS_ADDR:127.0.0.1:8848} - username: ${NACOS_USERNAME:nacos} - password: ${NACOS_PASSWORD:nacos} - discovery: - namespace: ${NACOS_DISCOVERY_NAMESPACE:prod} - group: DEFAULT_GROUP - metadata: - version: 1.0.0 - config: - namespace: ${NACOS_CONFIG_NAMESPACE:prod} - group: DEFAULT_GROUP - file-extension: yaml - refresh-enabled: true - ---- #################### 数据库相关配置 #################### -spring: - datasource: - druid: - web-stat-filter: - enabled: true - stat-view-servlet: - enabled: true - url-pattern: /druid/* - login-username: ${DRUID_USERNAME:admin} - login-password: ${DRUID_PASSWORD:admin} - filter: - stat: - enabled: true - log-slow-sql: true - slow-sql-millis: 100 - merge-sql: true - wall: - config: - multi-statement-allow: true - dynamic: - druid: - initial-size: 5 - min-idle: 10 - max-active: 20 - max-wait: 60000 - time-between-eviction-runs-millis: 60000 - min-evictable-idle-time-millis: 600000 - max-evictable-idle-time-millis: 1800000 - validation-query: SELECT 1 FROM DUAL - test-while-idle: true - test-on-borrow: false - test-on-return: false - pool-prepared-statements: true - max-pool-prepared-statement-per-connection-size: 20 - primary: master - datasource: - master: - url: jdbc:mysql://${MYSQL_HOST:127.0.0.1}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:aiot_platform}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true - username: ${MYSQL_USER:root} - password: ${MYSQL_PASSWORD:} - slave: - lazy: true - url: jdbc:mysql://${MYSQL_SLAVE_HOST:${MYSQL_HOST:127.0.0.1}}:${MYSQL_SLAVE_PORT:${MYSQL_PORT:3306}}/${MYSQL_DATABASE:aiot_platform}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true - username: ${MYSQL_SLAVE_USER:${MYSQL_USER:root}} - password: ${MYSQL_SLAVE_PASSWORD:${MYSQL_PASSWORD:}} - tdengine: - url: jdbc:TAOS-RS://${TDENGINE_HOST:172.17.16.14}:${TDENGINE_PORT:6041}/aiot_platform - driver-class-name: com.taosdata.jdbc.rs.RestfulDriver - username: ${TDENGINE_USERNAME:root} - password: ${TDENGINE_PASSWORD:taosdata} - druid: - validation-query: SELECT SERVER_STATUS() - - data: - redis: - host: ${REDIS_HOST:127.0.0.1} - port: ${REDIS_PORT:6379} - database: ${REDIS_DATABASE:0} - password: ${REDIS_PASSWORD:} - timeout: 5000ms - lettuce: - pool: - max-active: 8 - max-wait: -1ms - max-idle: 8 - min-idle: 0 - ---- #################### MQ 消息队列相关配置 #################### - -rocketmq: - name-server: ${ROCKETMQ_NAMESRV_ADDR:127.0.0.1:9876} - -spring: - # 禁用 RabbitMQ 自动配置(如果不需要 RabbitMQ,避免启动时连接失败) - autoconfigure: - exclude: - - org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration - # RabbitMQ 配置(已禁用自动配置,仅保留配置项供业务代码使用) - # rabbitmq: - # host: ${RABBITMQ_HOST:127.0.0.1} - # port: ${RABBITMQ_PORT:5672} - # username: ${RABBITMQ_USERNAME:guest} - # password: ${RABBITMQ_PASSWORD:guest} - kafka: - bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS:127.0.0.1:9092} - ---- #################### 定时任务相关配置 #################### -xxl: - job: - admin: - addresses: ${XXL_JOB_ADMIN_ADDRESSES:http://172.17.16.14:19090/xxl-job-admin} - ---- #################### 服务保障相关配置 #################### - -lock4j: - acquire-timeout: 3000 - expire: 30000 - ---- #################### 监控相关配置 #################### - -management: - endpoints: - web: - base-path: /actuator - exposure: - include: '*' - -spring: - boot: - admin: - client: - instance: - service-host-type: IP - username: ${SPRING_BOOT_ADMIN_USERNAME:admin} - password: ${SPRING_BOOT_ADMIN_PASSWORD:admin} - -logging: - level: - root: INFO - com.viewsh: ${LOG_LEVEL:INFO} - com.viewsh.module.iot.dal.mysql: debug - com.viewsh.module.iot.dal.mysql.sms.SmsChannelMapper: INFO - org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR - file: - name: ${LOG_FILE_PATH:/app/logs}/${spring.application.name}.log - ---- #################### 芋道相关配置 #################### - -viewsh: - demo: false - env: - tag: ${HOSTNAME:prod} - captcha: - enable: true - security: - mock-enable: false +--- #################### 注册中心 + 配置中心相关配置 #################### + +spring: + cloud: + nacos: + server-addr: ${NACOS_ADDR:127.0.0.1:8848} + username: ${NACOS_USERNAME:nacos} + password: ${NACOS_PASSWORD:nacos} + discovery: + namespace: ${NACOS_DISCOVERY_NAMESPACE:prod} + group: DEFAULT_GROUP + metadata: + version: 1.0.0 + config: + namespace: ${NACOS_CONFIG_NAMESPACE:prod} + group: DEFAULT_GROUP + file-extension: yaml + refresh-enabled: true + +--- #################### 数据库相关配置 #################### +spring: + datasource: + druid: + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + url-pattern: /druid/* + login-username: ${DRUID_USERNAME:admin} + login-password: ${DRUID_PASSWORD:admin} + filter: + stat: + enabled: true + log-slow-sql: true + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: + druid: + initial-size: 5 + min-idle: 10 + max-active: 20 + max-wait: 60000 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 600000 + max-evictable-idle-time-millis: 1800000 + validation-query: SELECT 1 FROM DUAL + test-while-idle: true + test-on-borrow: false + test-on-return: false + pool-prepared-statements: true + max-pool-prepared-statement-per-connection-size: 20 + primary: master + datasource: + master: + url: jdbc:mysql://${MYSQL_HOST:172.17.16.8}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:aiot-platform-test}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: ${MYSQL_USER:root} + password: ${MYSQL_PASSWORD:} + slave: + lazy: true + url: jdbc:mysql://${MYSQL_SLAVE_HOST:${MYSQL_HOST:172.17.16.8}}:${MYSQL_SLAVE_PORT:${MYSQL_PORT:3306}}/${MYSQL_DATABASE:aiot-platform-test}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: ${MYSQL_SLAVE_USER:${MYSQL_USER:root}} + password: ${MYSQL_SLAVE_PASSWORD:${MYSQL_PASSWORD:}} + tdengine: + url: jdbc:TAOS-RS://${TDENGINE_HOST:172.17.16.14}:${TDENGINE_PORT:6041}/aiot_platform + driver-class-name: com.taosdata.jdbc.rs.RestfulDriver + username: ${TDENGINE_USERNAME:root} + password: ${TDENGINE_PASSWORD:taosdata} + druid: + validation-query: SELECT SERVER_STATUS() + + data: + redis: + host: ${REDIS_HOST:172.17.16.13} + port: ${REDIS_PORT:6379} + database: ${REDIS_DATABASE:0} + password: ${REDIS_PASSWORD:} + timeout: 5000ms + lettuce: + pool: + max-active: 8 + max-wait: -1ms + max-idle: 8 + min-idle: 0 + +--- #################### MQ 消息队列相关配置 #################### + +rocketmq: + name-server: ${ROCKETMQ_NAMESRV_ADDR:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} + +spring: + # 禁用 RabbitMQ 自动配置(如果不需要 RabbitMQ,避免启动时连接失败) + autoconfigure: + exclude: + - org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration + # RabbitMQ 配置(已禁用自动配置,仅保留配置项供业务代码使用) + # rabbitmq: + # host: ${RABBITMQ_HOST:127.0.0.1} + # port: ${RABBITMQ_PORT:5672} + # username: ${RABBITMQ_USERNAME:guest} + # password: ${RABBITMQ_PASSWORD:guest} + kafka: + bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS:127.0.0.1:9092} + +--- #################### 定时任务相关配置 #################### +xxl: + job: + admin: + addresses: ${XXL_JOB_ADMIN_ADDRESSES:http://172.17.16.14:19090/xxl-job-admin} + +--- #################### 服务保障相关配置 #################### + +lock4j: + acquire-timeout: 3000 + expire: 30000 + +--- #################### 监控相关配置 #################### + +management: + endpoints: + web: + base-path: /actuator + exposure: + include: '*' + +spring: + boot: + admin: + client: + instance: + service-host-type: IP + username: ${SPRING_BOOT_ADMIN_USERNAME:admin} + password: ${SPRING_BOOT_ADMIN_PASSWORD:admin} + +logging: + level: + root: INFO + com.viewsh: ${LOG_LEVEL:INFO} + com.viewsh.module.iot.dal.mysql: debug + com.viewsh.module.iot.dal.mysql.sms.SmsChannelMapper: INFO + org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR + file: + name: ${LOG_FILE_PATH:/app/logs}/${spring.application.name}.log + +--- #################### 芋道相关配置 #################### + +viewsh: + demo: false + env: + tag: ${HOSTNAME:prod} + captcha: + enable: true + security: + mock-enable: false diff --git a/viewsh-module-ops/viewsh-module-ops-server/src/main/resources/application-prod.yaml b/viewsh-module-ops/viewsh-module-ops-server/src/main/resources/application-prod.yaml index dfae8cc..9e92d05 100644 --- a/viewsh-module-ops/viewsh-module-ops-server/src/main/resources/application-prod.yaml +++ b/viewsh-module-ops/viewsh-module-ops-server/src/main/resources/application-prod.yaml @@ -59,27 +59,27 @@ spring: primary: master datasource: master: - url: ${SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL} - username: ${SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME} - password: ${SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD} + url: jdbc:mysql://${MYSQL_HOST:172.17.16.8}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:aiot-platform-test}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: ${MYSQL_USER:root} + password: ${MYSQL_PASSWORD:} slave: # 模拟从库,可根据自己需要修改 lazy: true # 开启懒加载,保证启动速度 - url: ${SPRING_DATASOURCE_DYNAMIC_DATASOURCE_SLAVE_URL:${SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL}} - username: ${SPRING_DATASOURCE_DYNAMIC_DATASOURCE_SLAVE_USERNAME:${SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME}} - password: ${SPRING_DATASOURCE_DYNAMIC_DATASOURCE_SLAVE_PASSWORD:${SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD}} + url: jdbc:mysql://${MYSQL_SLAVE_HOST:${MYSQL_HOST:172.17.16.8}}:${MYSQL_SLAVE_PORT:${MYSQL_PORT:3306}}/${MYSQL_DATABASE:aiot-platform-test}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: ${MYSQL_SLAVE_USER:${MYSQL_USER:root}} + password: ${MYSQL_SLAVE_PASSWORD:${MYSQL_PASSWORD:}} # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 data: redis: - host: ${SPRING_DATA_REDIS_HOST:127.0.0.1} # 地址 - port: ${SPRING_DATA_REDIS_PORT:6379} # 端口 - database: ${SPRING_DATA_REDIS_DATABASE:0} # 数据库索引 - password: ${SPRING_DATA_REDIS_PASSWORD} # 密码 + host: ${REDIS_HOST:172.17.16.13} # 地址 + port: ${REDIS_PORT:6379} # 端口 + database: ${REDIS_DATABASE:0} # 数据库索引 + password: ${REDIS_PASSWORD:} # 密码 --- #################### MQ 消息队列相关配置 #################### # rocketmq 配置项,对应 RocketMQProperties 配置类 rocketmq: - name-server: ${ROCKETMQ_NAME_SERVER:127.0.0.1:9876} # RocketMQ Namesrv + name-server: ${ROCKETMQ_NAME_SERVER:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} # RocketMQ Namesrv spring: # RabbitMQ 配置项,对应 RabbitProperties 配置类 diff --git a/viewsh-module-system/viewsh-module-system-server/src/main/resources/application-prod.yaml b/viewsh-module-system/viewsh-module-system-server/src/main/resources/application-prod.yaml index ccb110e..8c885db 100644 --- a/viewsh-module-system/viewsh-module-system-server/src/main/resources/application-prod.yaml +++ b/viewsh-module-system/viewsh-module-system-server/src/main/resources/application-prod.yaml @@ -1,206 +1,206 @@ ---- #################### 注册中心 + 配置中心相关配置 #################### - -spring: - cloud: - nacos: - server-addr: ${NACOS_ADDR:127.0.0.1:8848} - username: ${NACOS_USERNAME:nacos} - password: ${NACOS_PASSWORD:nacos} - discovery: - namespace: ${NACOS_DISCOVERY_NAMESPACE:prod} - group: DEFAULT_GROUP - metadata: - version: 1.0.0 - config: - namespace: ${NACOS_CONFIG_NAMESPACE:prod} - group: DEFAULT_GROUP - file-extension: yaml - refresh-enabled: true - ---- #################### 数据库相关配置 #################### -spring: - datasource: - druid: # Druid 【监控】相关的全局配置 - web-stat-filter: - enabled: true - stat-view-servlet: - enabled: true - allow: # 设置白名单,不填则允许所有访问 - url-pattern: /druid/* - login-username: ${DRUID_USERNAME:admin} - login-password: ${DRUID_PASSWORD:admin} - filter: - stat: - enabled: true - log-slow-sql: true # 慢 SQL 记录 - slow-sql-millis: 100 - merge-sql: true - wall: - config: - multi-statement-allow: true - dynamic: # 多数据源配置 - druid: # Druid 【连接池】相关的全局配置 - initial-size: 5 - min-idle: 10 - max-active: 20 - max-wait: 60000 - time-between-eviction-runs-millis: 60000 - min-evictable-idle-time-millis: 600000 - max-evictable-idle-time-millis: 1800000 - validation-query: SELECT 1 FROM DUAL - test-while-idle: true - test-on-borrow: false - test-on-return: false - pool-prepared-statements: true - max-pool-prepared-statement-per-connection-size: 20 - primary: master - datasource: - master: - url: jdbc:mysql://127.0.0.1:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true - username: root - password: root - slave: # 从库配置(可选) - lazy: true - url: jdbc:mysql://127.0.0.1:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true - username: root - password: root - - # Redis 配置 - data: - redis: - host: 127.0.0.1 - port: 6379 - database: 0 - password: "" - timeout: 5000ms - lettuce: - pool: - max-active: 8 - max-wait: -1ms - max-idle: 8 - min-idle: 0 - ---- #################### MQ 消息队列相关配置 #################### - -# rocketmq 配置项 -rocketmq: - name-server: ${ROCKETMQ_NAMESRV_ADDR:127.0.0.1:9876} - -spring: - # RabbitMQ 配置项(可选) - rabbitmq: - host: ${RABBITMQ_HOST:127.0.0.1} - port: ${RABBITMQ_PORT:5672} - username: ${RABBITMQ_USERNAME:guest} - password: ${RABBITMQ_PASSWORD:guest} - # Kafka 配置项(可选) - kafka: - bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS:127.0.0.1:9092} - ---- #################### 定时任务相关配置 #################### -xxl: - job: - admin: - addresses: ${XXL_JOB_ADMIN_ADDRESSES:http://172.17.16.14:19090/xxl-job-admin} - ---- #################### 服务保障相关配置 #################### - -# Lock4j 配置项 -lock4j: - acquire-timeout: 3000 - expire: 30000 - ---- #################### 监控相关配置 #################### - -# Actuator 监控端点的配置项 -management: - endpoints: - web: - base-path: /actuator - exposure: - include: '*' - -# Spring Boot Admin 配置项 -spring: - boot: - admin: - client: - instance: - service-host-type: IP - username: ${SPRING_BOOT_ADMIN_USERNAME:admin} - password: ${SPRING_BOOT_ADMIN_PASSWORD:admin} - -# 日志文件配置 -logging: - level: - root: INFO - com.viewsh: ${LOG_LEVEL:INFO} - file: - name: ${LOG_FILE_PATH:/app/logs}/${spring.application.name}.log - ---- #################### 微信公众号、小程序相关配置 #################### -wx: - mp: # 公众号配置(必填) - app-id: ${WX_MP_APP_ID:wx5b23ba7a5589ecbb} # 优先环境变量,兜底默认值 - secret: ${WX_MP_SECRET:2a7b3b20c537e52e74afd395eb85f61f} - config-storage: - type: RedisTemplate - key-prefix: wx - http-client-type: HttpClient - miniapp: # 小程序配置(必填) - appid: ${WX_MINIAPP_APPID:wxc4598c446f8a9cb3} - secret: ${WX_MINIAPP_SECRET:4a1a04e07f6a4a0751b39c3064a92c8b} - config-storage: - type: RedisTemplate - key-prefix: wa - http-client-type: HttpClient - ---- #################### 芋道相关配置 #################### - -viewsh: - demo: false # 生产环境关闭演示模式 - env: - tag: ${HOSTNAME:prod} - captcha: - enable: true # 生产环境开启验证码 - security: - mock-enable: false # 生产环境关闭 mock - access-log: - enable: true - wxa-code: - env-version: release - wxa-subscribe-message: - miniprogram-state: formal - -justauth: - enabled: true - type: - DINGTALK: # 钉钉 - client-id: dingvrnreaje3yqvzhxg - client-secret: i8E6iZyDvZj51JIb0tYsYfVQYOks9Cq1lgryEjFRqC79P3iJcrxEwT6Qk2QvLrLI - ignore-check-redirect-uri: true - WECHAT_ENTERPRISE: # 企业微信 - client-id: wwd411c69a39ad2e54 - client-secret: 1wTb7hYxnpT2TUbIeHGXGo7T0odav1ic10mLdyyATOw - agent-id: 1000004 - ignore-check-redirect-uri: true - # noinspection SpringBootApplicationYaml - WECHAT_MINI_PROGRAM: # 微信小程序 - client-id: ${wx.miniapp.appid} - client-secret: ${wx.miniapp.secret} - ignore-check-redirect-uri: true - ignore-check-state: true # 微信小程序,不会使用到 state,所以不进行校验 - WECHAT_MP: # 微信公众号 - client-id: ${wx.mp.app-id} - client-secret: ${wx.mp.secret} - ignore-check-redirect-uri: true - ALIPAY: # 支付宝小程序 - client-id: xx - client-secret: xx - alipay-public-key: xx - ignore-check-redirect-uri: true - ignore-check-state: true - cache: - type: REDIS - prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: - timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 +--- #################### 注册中心 + 配置中心相关配置 #################### + +spring: + cloud: + nacos: + server-addr: ${NACOS_ADDR:127.0.0.1:8848} + username: ${NACOS_USERNAME:nacos} + password: ${NACOS_PASSWORD:nacos} + discovery: + namespace: ${NACOS_DISCOVERY_NAMESPACE:prod} + group: DEFAULT_GROUP + metadata: + version: 1.0.0 + config: + namespace: ${NACOS_CONFIG_NAMESPACE:prod} + group: DEFAULT_GROUP + file-extension: yaml + refresh-enabled: true + +--- #################### 数据库相关配置 #################### +spring: + datasource: + druid: # Druid 【监控】相关的全局配置 + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + allow: # 设置白名单,不填则允许所有访问 + url-pattern: /druid/* + login-username: ${DRUID_USERNAME:admin} + login-password: ${DRUID_PASSWORD:admin} + filter: + stat: + enabled: true + log-slow-sql: true # 慢 SQL 记录 + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: # 多数据源配置 + druid: # Druid 【连接池】相关的全局配置 + initial-size: 5 + min-idle: 10 + max-active: 20 + max-wait: 60000 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 600000 + max-evictable-idle-time-millis: 1800000 + validation-query: SELECT 1 FROM DUAL + test-while-idle: true + test-on-borrow: false + test-on-return: false + pool-prepared-statements: true + max-pool-prepared-statement-per-connection-size: 20 + primary: master + datasource: + master: + url: jdbc:mysql://172.17.16.8:3306/aiot-platform-test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: root + password: root + slave: # 从库配置(可选) + lazy: true + url: jdbc:mysql://172.17.16.8:3306/aiot-platform-test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: root + password: root + + # Redis 配置 + data: + redis: + host: 172.17.16.13 + port: 6379 + database: 0 + password: "" + timeout: 5000ms + lettuce: + pool: + max-active: 8 + max-wait: -1ms + max-idle: 8 + min-idle: 0 + +--- #################### MQ 消息队列相关配置 #################### + +# rocketmq 配置项 +rocketmq: + name-server: ${ROCKETMQ_NAMESRV_ADDR:rmq-4wd73bxpv.rocketmq.sh.qcloud.tencenttdmq.com:8080} + +spring: + # RabbitMQ 配置项(可选) + rabbitmq: + host: ${RABBITMQ_HOST:127.0.0.1} + port: ${RABBITMQ_PORT:5672} + username: ${RABBITMQ_USERNAME:guest} + password: ${RABBITMQ_PASSWORD:guest} + # Kafka 配置项(可选) + kafka: + bootstrap-servers: ${KAFKA_BOOTSTRAP_SERVERS:127.0.0.1:9092} + +--- #################### 定时任务相关配置 #################### +xxl: + job: + admin: + addresses: ${XXL_JOB_ADMIN_ADDRESSES:http://172.17.16.14:19090/xxl-job-admin} + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项 +lock4j: + acquire-timeout: 3000 + expire: 30000 + +--- #################### 监控相关配置 #################### + +# Actuator 监控端点的配置项 +management: + endpoints: + web: + base-path: /actuator + exposure: + include: '*' + +# Spring Boot Admin 配置项 +spring: + boot: + admin: + client: + instance: + service-host-type: IP + username: ${SPRING_BOOT_ADMIN_USERNAME:admin} + password: ${SPRING_BOOT_ADMIN_PASSWORD:admin} + +# 日志文件配置 +logging: + level: + root: INFO + com.viewsh: ${LOG_LEVEL:INFO} + file: + name: ${LOG_FILE_PATH:/app/logs}/${spring.application.name}.log + +--- #################### 微信公众号、小程序相关配置 #################### +wx: + mp: # 公众号配置(必填) + app-id: ${WX_MP_APP_ID:wx5b23ba7a5589ecbb} # 优先环境变量,兜底默认值 + secret: ${WX_MP_SECRET:2a7b3b20c537e52e74afd395eb85f61f} + config-storage: + type: RedisTemplate + key-prefix: wx + http-client-type: HttpClient + miniapp: # 小程序配置(必填) + appid: ${WX_MINIAPP_APPID:wxc4598c446f8a9cb3} + secret: ${WX_MINIAPP_SECRET:4a1a04e07f6a4a0751b39c3064a92c8b} + config-storage: + type: RedisTemplate + key-prefix: wa + http-client-type: HttpClient + +--- #################### 芋道相关配置 #################### + +viewsh: + demo: false # 生产环境关闭演示模式 + env: + tag: ${HOSTNAME:prod} + captcha: + enable: true # 生产环境开启验证码 + security: + mock-enable: false # 生产环境关闭 mock + access-log: + enable: true + wxa-code: + env-version: release + wxa-subscribe-message: + miniprogram-state: formal + +justauth: + enabled: true + type: + DINGTALK: # 钉钉 + client-id: dingvrnreaje3yqvzhxg + client-secret: i8E6iZyDvZj51JIb0tYsYfVQYOks9Cq1lgryEjFRqC79P3iJcrxEwT6Qk2QvLrLI + ignore-check-redirect-uri: true + WECHAT_ENTERPRISE: # 企业微信 + client-id: wwd411c69a39ad2e54 + client-secret: 1wTb7hYxnpT2TUbIeHGXGo7T0odav1ic10mLdyyATOw + agent-id: 1000004 + ignore-check-redirect-uri: true + # noinspection SpringBootApplicationYaml + WECHAT_MINI_PROGRAM: # 微信小程序 + client-id: ${wx.miniapp.appid} + client-secret: ${wx.miniapp.secret} + ignore-check-redirect-uri: true + ignore-check-state: true # 微信小程序,不会使用到 state,所以不进行校验 + WECHAT_MP: # 微信公众号 + client-id: ${wx.mp.app-id} + client-secret: ${wx.mp.secret} + ignore-check-redirect-uri: true + ALIPAY: # 支付宝小程序 + client-id: xx + client-secret: xx + alipay-public-key: xx + ignore-check-redirect-uri: true + ignore-check-state: true + cache: + type: REDIS + prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: + timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟