Files
Web_BLS_Heartbeat_Server/docs/deployment.md
XuJiacheng 625cb9eea4 feat: 添加部署脚本和文档并优化Kafka消费者配置
- 添加部署相关脚本(deploy.bat/update.bat/package.bat)和文档(deployment.md/package-guide.md)
 - 新增PM2配置文件(ecosystem.config.js/ecosystem.config.cjs)
 - 优化Kafka消费者配置支持动态fromOffset
 - 添加环境检查脚本(check-env.js)
 - 更新.gitignore添加release目录
 - 补充.env.example配置文件
2026-01-16 16:19:31 +08:00

5.2 KiB
Raw Blame History

BLS心跳接收端发布流程

环境要求

  • Windows Server系统
  • Node.js 环境(已安装)
  • PM2 进程管理器(已安装)
  • PostgreSQL 数据库
  • Kafka 消息队列
  • Redis可选

发布流程

1. 准备发布包

在开发机器上执行以下命令:

# 安装依赖
npm install

# 构建项目
npm run build

# 创建发布包(包含必要的文件)
# 方法1手动复制文件
# 复制以下文件到发布目录:
# - dist/ (构建后的文件)
# - package.json
# - package-lock.json
# - src/config/config.example.js
# - scripts/db/ (数据库脚本)

# 方法2使用压缩包
# 创建包含上述文件的压缩包

2. 上传到目标服务器

将发布包上传到目标服务器的指定目录,例如:C:\BLS_Heartbeat_Server

3. 在目标服务器上部署

# 进入项目目录
cd C:\BLS_Heartbeat_Server

# 安装生产依赖
npm install --production

# 创建环境变量文件
# 复制配置示例并修改
copy src\config\config.example.js src\config\config.js

# 或者创建 .env 文件(推荐)
# 复制 .env.example 并修改为 .env
copy .env.example .env

# 编辑配置文件设置实际的数据库、Kafka、Redis连接信息
notepad .env

4. 配置环境变量

编辑 .env 文件,设置以下关键配置:

# 应用配置
NODE_ENV=production
PORT=3000

# Kafka配置
KAFKA_BROKERS=localhost:9092
KAFKA_TOPIC=blwlog4Nodejs-rcu-heartbeat-topic
KAFKA_GROUP_ID=bls-heartbeat-consumer
KAFKA_CONSUMER_INSTANCES=6

# PostgreSQL配置
POSTGRES_HOST=127.0.0.1
POSTGRES_PORT=5432
POSTGRES_DATABASE=log_platform
POSTGRES_USER=log_admin
POSTGRES_PASSWORD=your_password

# Redis配置可选
REDIS_ENABLED=true
REDIS_HOST=10.8.8.109
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=15

# 日志配置
LOG_LEVEL=info
LOG_FORMAT=json

5. 初始化数据库

# 运行数据库初始化脚本
npm run db:apply

6. 使用PM2启动服务

# 使用PM2启动服务
pm2 start ecosystem.config.js

# 查看服务状态
pm2 status

# 查看日志
pm2 logs web-bls-heartbeat-server

# 查看详细信息
pm2 show web-bls-heartbeat-server

7. 设置PM2开机自启

# 保存当前PM2进程列表
pm2 save

# 设置开机自启Windows需要管理员权限
pm2 startup

PM2配置说明

项目提供了 ecosystem.config.js 配置文件,包含以下配置:

  • 应用名称:web-bls-heartbeat-server
  • 运行模式:cluster(集群模式)
  • 实例数量根据CPU核心数自动设置
  • 日志文件:logs/ 目录下
  • 环境变量:从 .env 文件加载

监控和维护

查看服务状态

# 查看所有服务状态
pm2 status

# 查看特定服务状态
pm2 show web-bls-heartbeat-server

# 实时监控
pm2 monit

日志管理

# 查看实时日志
pm2 logs web-bls-heartbeat-server

# 查看错误日志
pm2 logs web-bls-heartbeat-server --err

# 清空日志
pm2 flush

# 日志轮转需要安装pm2-logrotate
pm2 install pm2-logrotate

服务重启

# 重启服务
pm2 restart web-bls-heartbeat-server

# 优雅重启(集群模式)
pm2 reload web-bls-heartbeat-server

# 停止服务
pm2 stop web-bLS-heartbeat-server

# 删除服务
pm2 delete web-bls-heartbeat-server

更新部署

# 停止服务
pm2 stop web-bls-heartbeat-server

# 备份当前版本
xcopy /E /I /Y C:\BLS_Heartbeat_Server C:\BLS_Heartbeat_Server_backup

# 上传新版本文件

# 安装依赖(如果有更新)
npm install --production

# 重启服务
pm2 start ecosystem.config.js

# 验证服务状态
pm2 status
pm2 logs web-bls-heartbeat-server

故障排查

服务无法启动

  1. 检查Node.js版本node --version
  2. 检查PM2状态pm2 list
  3. 查看错误日志:pm2 logs web-bls-heartbeat-server --err
  4. 检查配置文件:确认 .env 文件配置正确
  5. 检查网络连接确认Kafka、PostgreSQL、Redis服务可访问

数据库连接失败

  1. 检查PostgreSQL服务状态
  2. 验证数据库连接信息
  3. 检查防火墙设置
  4. 确认数据库用户权限

Kafka连接失败

  1. 检查Kafka服务状态
  2. 验证Kafka地址和端口
  3. 检查主题是否存在
  4. 确认消费者组配置

Redis连接失败

  1. 检查Redis服务状态
  2. 验证Redis连接信息
  3. 如果不需要Redis设置 REDIS_ENABLED=false

性能优化

调整消费者实例数

.env 文件中修改:

KAFKA_CONSUMER_INSTANCES=8

调整批量处理参数

PROCESSOR_BATCH_SIZE=200
PROCESSOR_BATCH_TIMEOUT=3000

调整数据库连接池

DB_MAX_CONNECTIONS=10
DB_IDLE_TIMEOUT_MS=30000

安全建议

  1. 不要在代码中硬编码密码,使用环境变量
  2. 限制数据库和Redis的访问IP
  3. 定期更新依赖包:npm audit fix
  4. 配置防火墙规则,限制不必要的端口访问
  5. 定期备份配置文件和数据库

备份策略

配置文件备份

# 备份环境配置
copy .env .env.backup

# 备份PM2配置
pm2 save

数据库备份

# 使用pg_dump备份数据库
pg_dump -h localhost -U log_admin -d log_platform > backup.sql

联系支持

如有问题,请查看项目文档或联系技术支持团队。