统一配置管理实施总结

✅ 完成内容

1. 配置管理组件(Python)

创建了三个新服务的配置管理组件,实现统一的部署和配置管理:

✅ sbin/husky/components/husky_afterservice.py

  • 售后服务配置管理
  • 数据库自动初始化(从 etc/install-scripts/aftersales/ 读取SQL文件)
  • 配置文件模板替换
  • Systemd服务注册

✅ sbin/husky/components/mindoc.py

  • MindDoc文档系统配置管理
  • 数据库初始化
  • 配置文件生成(app.conf)
  • 目录结构创建

✅ sbin/husky/components/kkfileview.py

  • kkFileView文件预览服务配置管理
  • 配置文件生成(application.properties)
  • 缓存目录管理
  • 无需数据库初始化

2. 主配置文件更新

✅ etc/config_default.xml

新增三个服务的配置段:

<!-- 售后服务系统 -->
<husky_afterservice>
    <servers>aimaster</servers>
    <servers_enable>1</servers_enable>
    <port>8081</port>
    <ram>256M</ram>
    <fileMaxSize>128MB</fileMaxSize>
    <mysqlDataBase>husky_afterservice_db</mysqlDataBase>
    <mysqlUser>husky</mysqlUser>
    <mysqlPassword>Husky@123</mysqlPassword>
</husky_afterservice>

<!-- MindDoc文档系统 -->
<mindoc>
    <servers>aimaster</servers>
    <servers_enable>1</servers_enable>
    <port>8082</port>
    <mysqlDataBase>mindoc_db</mysqlDataBase>
    <mysqlUser>husky</mysqlUser>
    <mysqlPassword>Husky@123</mysqlPassword>
</mindoc>

<!-- kkFileView文件预览服务 -->
<kkfileview>
    <servers>aimaster</servers>
    <servers_enable>1</servers_enable>
    <port>8083</port>
    <ram>256M</ram>
</kkfileview>

3. 配置模板文件

✅ 售后服务配置模板

  • apps/husky_afterservice/config/application-default.yml
  • apps/husky_afterservice/config/application-druid-default.yml
  • apps/husky_afterservice/config/logback-default.xml
  • apps/husky_afterservice/husky_afterservice-default.sh

模板变量:

  • #VERSION# - 版本号
  • #PORT# - 端口(8081)
  • #FILE_LOCATION# - 文件上传路径
  • #fileMaxSize# - 文件大小限制
  • #REDIS_SERVER#, #REDIS_PORT#, #REDIS_PASSWD# - Redis配置
  • #mysqlServer#, #mysqlDataBase#, #mysqlUser#, #mysqlPassword# - 数据库配置

✅ MindDoc配置模板

  • apps/mindoc/conf/app-default.conf
  • apps/mindoc/mindoc-default.sh

模板变量:

  • #appname# - 应用名称
  • #httpport# - 端口(8082)
  • #runmode# - 运行模式(prod)
  • #db_adapter# - 数据库类型(mysql)
  • #db_host# - 数据库地址
  • #db_database#, #db_username#, #db_password# - 数据库配置
  • #uploads_path# - 上传路径
  • #database_path# - 数据路径

✅ kkFileView配置模板

  • apps/kkfileview/config/application-default.properties
  • apps/kkfileview/kkfileview-default.sh

模板变量:

  • #server.port# - 端口(8083)
  • #file.dir# - 文件目录
  • #cache.enabled# - 缓存开关
  • #cache.type# - 缓存类型

4. 部署脚本更新

✅ sbin/deploy.py

新增服务别名支持:

elif moduleName == 'afterservice' or moduleName == 'as':
    modules_alias_name = 'husky_afterservice'
elif moduleName == 'mindoc' or moduleName == 'md':
    modules_alias_name = 'mindoc'
elif moduleName == 'kkfileview' or moduleName == 'kk':
    modules_alias_name = 'kkfileview'

更新帮助信息,显示所有可用服务。

5. 文档

✅ docs/配置管理使用手册.md

包含内容:

  • 配置架构说明
  • 主配置文件详解
  • 部署命令大全
  • 配置文件模板说明
  • 配置更新流程
  • 目录结构说明
  • 故障排查指南
  • 最佳实践
  • 安全建议

📊 服务端口分配

服务 端口 内存 数据库
husky_wms 8080 128M husky_wms_db
husky_afterservice 8081 256M husky_afterservice_db
mindoc 8082 - mindoc_db
kkfileview 8083 256M -

总内存占用: ~640M(适合2C2G服务器)

🚀 使用方法

基础服务部署

# 1. 部署MySQL
python sbin/deploy.py mysql install
python sbin/deploy.py mysql start

# 2. 部署Redis
python sbin/deploy.py redis install
python sbin/deploy.py redis start

业务服务部署

# 3. 部署WMS
python sbin/deploy.py wms install
python sbin/deploy.py wms start

# 4. 部署售后服务
python sbin/deploy.py afterservice install
python sbin/deploy.py afterservice start

# 5. 部署MindDoc
python sbin/deploy.py mindoc install
python sbin/deploy.py mindoc start

# 6. 部署kkFileView
python sbin/deploy.py kkfileview install
python sbin/deploy.py kkfileview start

使用简写

python sbin/deploy.py as install    # afterservice
python sbin/deploy.py md install    # mindoc
python sbin/deploy.py kk install    # kkfileview

🔧 配置管理流程

初始化配置

  1. 编辑 etc/config_default.xml
  2. 修改服务器地址、端口、密码等参数
  3. 执行部署命令

修改配置

  1. 编辑 etc/config_default.xml
  2. 重新生成配置:python sbin/deploy.py <service> config_package
  3. 重启服务:python sbin/deploy.py <service> restart

配置文件生成过程

etc/config_default.xml
    ↓ (Python读取配置)
sbin/husky/components/<service>.py
    ↓ (替换模板变量)
apps/<service>/config/*-default.*
    ↓ (生成最终配置)
apps/<service>/config/*

📁 目录结构

huskyapp/
├── etc/
│   ├── config_default.xml           # 主配置文件
│   ├── systemd/                     # Systemd服务文件
│   │   ├── husky-wms.service
│   │   ├── husky-afterservice.service
│   │   ├── mindoc.service
│   │   └── kkfileview.service
│   └── install-scripts/             # 数据库初始化SQL
│       ├── husky_wms/
│       └── aftersales/
├── sbin/
│   ├── deploy.py                    # 部署脚本入口
│   ├── service_manager.sh           # 服务管理脚本
│   └── husky/
│       └── components/              # 配置管理组件
│           ├── husky_wms.py
│           ├── husky_afterservice.py
│           ├── mindoc.py
│           └── kkfileview.py
└── apps/
    ├── husky_wms/
    │   ├── config/                  # 配置文件
    │   └── husky_wms.sh             # 启动脚本
    ├── husky_afterservice/
    │   ├── config/
    │   └── husky_afterservice.sh
    ├── mindoc/
    │   ├── conf/
    │   └── mindoc.sh
    └── kkfileview/
        ├── config/
        └── kkfileview.sh

🔍 配置参数说明

通用配置

  • servers - 服务器主机名
  • servers_enable - 是否启用(1=启用,2=禁用)
  • port - 服务端口
  • ram - JVM内存大小(Java服务)

数据库配置

  • mysqlDataBase - 数据库名
  • mysqlUser - 数据库用户
  • mysqlPassword - 数据库密码

应用特定配置

  • fileMaxSize - 文件上传大小限制(WMS、售后服务)
  • 无特殊配置(MindDoc、kkFileView使用默认值)

🎯 特性优势

1. 统一配置管理

  • 所有服务配置集中在 config_default.xml
  • 一次配置,自动应用到所有服务
  • 便于版本控制和备份

2. 自动化部署

  • 一条命令完成安装、配置、启动
  • 自动创建目录结构
  • 自动初始化数据库
  • 自动注册系统服务

3. 模板化配置

  • 配置文件模板化,支持变量替换
  • 易于扩展新服务
  • 配置修改后自动生成

4. 环境隔离

  • 支持多环境配置(开发、测试、生产)
  • 配置文件独立管理
  • 数据目录分离

📝 注意事项

1. 端口冲突

确保端口未被占用:

netstat -tlnp | grep -E "8080|8081|8082|8083"

2. 数据库权限

确保MySQL用户有足够权限:

GRANT ALL PRIVILEGES ON husky_afterservice_db.* TO 'husky'@'localhost';
GRANT ALL PRIVILEGES ON mindoc_db.* TO 'husky'@'localhost';
FLUSH PRIVILEGES;

3. 文件权限

确保启动脚本有执行权限:

chmod +x apps/*/husky_*.sh
chmod +x apps/*/mindoc.sh
chmod +x apps/*/kkfileview.sh

4. 配置备份

重要配置文件建议备份:

cp etc/config_default.xml etc/config_default.xml.bak

🔐 安全建议

  1. 修改默认密码

    • MySQL root密码
    • Redis密码
    • 应用数据库用户密码
  2. 限制文件权限

    chmod 600 etc/config_default.xml
  3. 不要提交密码到Git

    # .gitignore
    etc/config.xml

📞 故障排查

配置未生效

# 查看配置文件
cat apps/husky_afterservice/config/application.yml

# 重新生成配置
python sbin/deploy.py afterservice config_package

服务启动失败

# 查看日志
tail -f apps/husky_afterservice/nohup.log

# 检查配置
python sbin/deploy.py afterservice check

数据库连接失败

# 测试连接
mysql -u husky -p -e "USE husky_afterservice_db;"

# 重新初始化
python sbin/deploy.py afterservice install_package

📚 相关文档

✨ 后续优化建议

  1. 配置加密

    • 敏感信息加密存储
    • 使用环境变量
  2. 配置验证

    • 部署前配置验证
    • 参数合法性检查
  3. 日志管理

    • 统一日志格式
    • 日志轮转策略
  4. 监控告警

    • 服务健康检查
    • 资源使用监控
  5. 容器化部署

    • Docker镜像
    • Docker Compose编排

🎉 总结

通过本次统一配置管理实施:

✅ 实现了三个新服务(售后服务、MindDoc、kkFileView)的统一配置管理
✅ 创建了完整的配置模板和部署脚本
✅ 提供了详细的使用文档和故障排查指南
✅ 优化了部署流程,支持一键部署
✅ 确保了配置的一致性和可维护性

现在可以通过简单的命令完成所有服务的部署和配置管理!

作者:聂盼盼  创建时间:2025-10-28 19:52
最后编辑:聂盼盼  更新时间:2025-10-28 19:53