ecosystem.config.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // oms/ecosystem.config.js
  2. module.exports = {
  3. apps: [
  4. {
  5. name: "oms-backend", // PM2 进程名称
  6. script: "dist/app.js", // 编译后的主应用文件
  7. instances: 1, // 通常为 1,除非您需要多个 Node.js 实例
  8. autorestart: true, // 崩溃后自动重启
  9. watch: false, // 生产环境不监听文件变化
  10. // max_memory_restart: "1G", // 内存使用超过 1GB 时重启
  11. env_production: {
  12. // 生产环境特定环境变量
  13. NODE_ENV: "production",
  14. PORT: 3000,
  15. MONGO_URI: "mongodb://oms:oms123.@localhost/omsdb?authSource=admin", // MongoDB 宿主机端口 27717
  16. REDIS_URI: "redis://localhost:6379", // Redis 宿主机端口 6379
  17. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // RabbitMQ 宿主机端口 5672
  18. RABBITMQ_EXCHANGE: "event-exchange",
  19. RABBITMQ_LOG_QUQUE: "log-event-queue",
  20. RABBITMQ_OMS_QUEUE: "oms-event-queue",
  21. CLICKHOUSE_HOST: "http://localhost:8123", // ClickHouse 宿主机端口 8123
  22. CLICKHOUSE_DATABASE: "omsdb",
  23. CLICKHOUSE_USER: "ckuser",
  24. CLICKHOUSE_PASSWORD: "ckpassword",
  25. },
  26. // 如果您需要本地开发调试,可以定义 env_development
  27. env_development: {
  28. NODE_ENV: "development",
  29. PORT: 3000,
  30. MONGO_URI: "mongodb://oms:oms123.@localhost/omsdb?authSource=admin",
  31. REDIS_URI: "redis://localhost:6379",
  32. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
  33. RABBITMQ_EXCHANGE: "event-exchange",
  34. RABBITMQ_LOG_QUQUE: "log-event-queue",
  35. RABBITMQ_OMS_QUEUE: "oms-event-queue",
  36. CLICKHOUSE_HOST: "http://localhost:8123",
  37. CLICKHOUSE_DATABASE: "omsdb",
  38. CLICKHOUSE_USER: "ckuser",
  39. CLICKHOUSE_PASSWORD: "ckpassword",
  40. },
  41. },
  42. {
  43. name: "event-api-service", // <-- 新增的埋点 API 进程
  44. script: "dist/services/event-api-service.js", // 指向编译后的埋点服务文件
  45. instances: "max", // 可以根据 CPU 核心数启动多个实例
  46. exec_mode: "cluster", // 以集群模式运行,利用多核 CPU
  47. autorestart: true,
  48. watch: false,
  49. max_memory_restart: "500M", // 根据实际情况调整内存限制
  50. env_production: {
  51. NODE_ENV: "production",
  52. EVENT_PORT: 3001, // <-- 埋点 API 进程使用不同的端口
  53. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // RabbitMQ连接
  54. RABBITMQ_EXCHANGE: "event-exchange", // 交换机名称
  55. RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务队列
  56. RABBITMQ_OMS_QUEUE: "oms-event-queue", // 数据清洗整理到mongodb和clickhouse队列
  57. },
  58. env_development: {
  59. NODE_ENV: "development",
  60. EVENT_PORT: 3001, // <-- 本地开发调试也使用不同端口
  61. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
  62. RABBITMQ_EXCHANGE: "event-exchange", // 交换机名称
  63. RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务队列
  64. RABBITMQ_OMS_QUEUE: "oms-event-queue", // 数据清洗整理到mongodb和clickhouse队列
  65. },
  66. },
  67. {
  68. name: "log-service", // <-- 新增的日志服务进程
  69. script: "dist/services/log-service.js", // 指向编译后的日志服务文件
  70. instances: 1, // 通常只需要一个日志写入进程,但也可以是多个并行写入到不同文件或同一文件
  71. watch: false,
  72. max_memory_restart: "500M", // 根据日志量调整内存限制
  73. env_development: {
  74. NODE_ENV: "production",
  75. RABBITMQ_URL: "amqp://coloring:coloring123.@rabbitmq:5672", // RabbitMQ连接
  76. RABBITMQ_LOG_QUEUE: "log_event_queue", // 日志服务订阅的队列
  77. LOG_DIR: "/app/logs/coloring", // <-- 日志文件存储路径 (容器内部)
  78. },
  79. env_production: {
  80. NODE_ENV: "production",
  81. RABBITMQ_URL: "amqp://coloring:coloring123.@rabbitmq:5672", // RabbitMQ连接
  82. RABBITMQ_LOG_QUEUE: "log_event_queue", // 日志服务订阅的队列
  83. LOG_DIR: "/mnt/volume_sfo2_04/logs", // <-- 日志文件存储路径 (容器内部)
  84. },
  85. },
  86. {
  87. name: "ingestor-service", // <-- 新增的数据摄取器进程
  88. script: "dist/services/ingestor-service.js", // 指向编译后的摄取器服务文件
  89. instances: 1, // 可以根据处理能力调整实例数量
  90. watch: false,
  91. max_memory_restart: "1G", // 根据数据量和处理逻辑调整内存限制
  92. env: {
  93. NODE_ENV: "production",
  94. RABBITMQ_URL: "amqp://coloring:coloring123.@rabbitmq:5672", // RabbitMQ连接
  95. RABBITMQ_OMS_QUEUE: "oms-event-queue", // 摄取器订阅的队列
  96. MONGO_URI: "mongodb://mongodb:27017/omsdb", // MongoDB连接
  97. CLICKHOUSE_HOST: "http://clickhouse:8123", // ClickHouse连接
  98. CLICKHOUSE_DATABASE: "omsdb", // ClickHouse数据库名
  99. CLICKHOUSE_USER: "ckuser", // ClickHouse用户
  100. CLICKHOUSE_PASSWORD: "ckpassword", // ClickHouse密码
  101. },
  102. },
  103. ],
  104. };