ecosystem.config.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. // oms/ecosystem.config.js
  2. module.exports = {
  3. apps: [
  4. {
  5. name: "oms-backend", // PM2 进程名称
  6. script: "dist/src/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. // MongoDB 连接:使用 localhost 访问宿主机上映射的 Docker 容器
  16. MONGO_URI: "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin",
  17. // Redis 连接:使用 localhost 访问宿主机上映射的 Docker 容器
  18. REDIS_URI: "redis://localhost:6379",
  19. // RabbitMQ 连接:使用 localhost 访问宿主机上映射的 Docker 容器
  20. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
  21. RABBITMQ_EXCHANGE: "event-exchange",
  22. RABBITMQ_LOG_QUEUE: "log-event-queue",
  23. RABBITMQ_OMS_QUEUE: "oms-event-queue",
  24. // ClickHouse 连接:使用 localhost 访问宿主机上映射的 Docker 容器
  25. CLICKHOUSE_HOST: "http://localhost:8123",
  26. CLICKHOUSE_DATABASE: "omsdb",
  27. CLICKHOUSE_USER: "ckuser",
  28. CLICKHOUSE_PASSWORD: "ckpassword",
  29. },
  30. // 如果您需要本地开发调试,可以定义 env_development
  31. env_development: {
  32. NODE_ENV: "development",
  33. PORT: 3000,
  34. MONGO_URI: "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin",
  35. REDIS_URI: "redis://localhost:6379",
  36. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
  37. RABBITMQ_EXCHANGE: "event-exchange",
  38. RABBITMQ_LOG_QUEUE: "log-event-queue",
  39. RABBITMQ_OMS_QUEUE: "oms-event-queue",
  40. CLICKHOUSE_HOST: "http://localhost:8123",
  41. CLICKHOUSE_DATABASE: "omsdb",
  42. CLICKHOUSE_USER: "ckuser",
  43. CLICKHOUSE_PASSWORD: "ckpassword",
  44. },
  45. },
  46. {
  47. name: "event-api-service", // 埋点 API 进程
  48. script: "dist/services/event-api-service.js", // 指向编译后的埋点服务文件
  49. instances: "max", // 可以根据 CPU 核心数启动多个实例
  50. exec_mode: "cluster", // 以集群模式运行,利用多核 CPU
  51. autorestart: true,
  52. watch: false,
  53. max_memory_restart: "500M", // 根据实际情况调整内存限制
  54. env_production: {
  55. NODE_ENV: "production",
  56. EVENT_PORT: 3001, // 埋点 API 进程使用不同的端口
  57. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // 使用 localhost 访问宿主机上映射的 Docker 容器
  58. RABBITMQ_EXCHANGE: "event-exchange", // 交换机名称
  59. RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务队列
  60. RABBITMQ_OMS_QUEUE: "oms-event-queue", // 数据清洗整理到mongodb和clickhouse队列
  61. },
  62. env_development: {
  63. NODE_ENV: "development",
  64. EVENT_PORT: 3001, // 本地开发调试也使用不同端口
  65. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
  66. RABBITMQ_EXCHANGE: "event-exchange", // 交换机名称
  67. RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务队列
  68. RABBITMQ_OMS_QUEUE: "oms-event-queue", // 数据清洗整理到mongodb和clickhouse队列
  69. },
  70. },
  71. {
  72. name: "log-service", // 日志服务进程
  73. script: "dist/services/log-service.js", // 指向编译后的日志服务文件
  74. instances: 1, // 通常只需要一个日志写入进程,但也可以是多个并行写入到不同文件或同一文件
  75. watch: false,
  76. max_memory_restart: "500M", // 根据日志量调整内存限制
  77. env_development: {
  78. NODE_ENV: "development", // 开发环境
  79. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // 使用 localhost 访问宿主机上映射的 Docker 容器
  80. RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务订阅的队列 (已统一名称)
  81. LOG_DIR: "/home/guoziyun/logs", // <-- 推荐为开发环境提供一个宿主机路径,或者根据实际情况调整
  82. },
  83. env_production: {
  84. NODE_ENV: "production",
  85. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // 使用 localhost 访问宿主机上映射的 Docker 容器
  86. RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务订阅的队列 (已统一名称)
  87. LOG_DIR: "/home/jccy/logs", // 日志文件存储路径 (宿主机路径)
  88. },
  89. },
  90. {
  91. name: "ingestor-service", // 数据摄取器进程
  92. script: "dist/services/ingestor-service.js", // 指向编译后的摄取器服务文件
  93. instances: 1, // 可以根据处理能力调整实例数量
  94. watch: false,
  95. max_memory_restart: "1G", // 根据数据量和处理逻辑调整内存限制
  96. env_production: {
  97. NODE_ENV: "production",
  98. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // 使用 localhost 访问宿主机上映射的 Docker 容器
  99. RABBITMQ_OMS_QUEUE: "oms-event-queue", // 摄取器订阅的队列
  100. MONGO_URI: "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin", // 使用 localhost 访问宿主机上映射的 Docker 容器
  101. CLICKHOUSE_HOST: "http://localhost:8123", // 使用 localhost 访问宿主机上映射的 Docker 容器
  102. CLICKHOUSE_DATABASE: "omsdb", // ClickHouse数据库名
  103. CLICKHOUSE_USER: "ckuser", // ClickHouse用户
  104. CLICKHOUSE_PASSWORD: "ckpassword", // ClickHouse密码
  105. },
  106. // env_development 块可以在需要时添加
  107. },
  108. {
  109. name: "cron-jobs", // 定时任务进程
  110. script: "dist/services/cron-jobs/index.js", // 指向编译后的摄取器服务文件
  111. instances: 1, // 可以根据处理能力调整实例数量
  112. watch: false,
  113. max_memory_restart: "500M", // 根据数据量和处理逻辑调整内存限制
  114. env_production: {
  115. // 建议统一为 env_production
  116. NODE_ENV: "production",
  117. MONGO_URI: "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin", // 使用 localhost 访问宿主机上映射的 Docker 容器
  118. REMOTE_SYNC_MONGO_URI: "mongodb://coloring:coloring123.@hk.jccytech.cn:7881?authSource=admin",
  119. INIT_SEQ: 7368116,
  120. CLICKHOUSE_HOST: "http://localhost:8123", // 使用 localhost 访问宿主机上映射的 Docker 容器
  121. CLICKHOUSE_DATABASE: "omsdb", // ClickHouse数据库名
  122. CLICKHOUSE_USER: "ckuser", // ClickHouse用户
  123. CLICKHOUSE_PASSWORD: "ckpassword", // ClickHouse密码
  124. },
  125. // env_development 块可以在需要时添加
  126. },
  127. {
  128. name: "oms-message-worker", // 监听消息推送活动,生成消息记录
  129. script: "dist/services/messageWorker.js",
  130. instances: 1,
  131. exec_mode: "fork",
  132. autorestart: true,
  133. watch: false,
  134. env_production: {
  135. NODE_ENV: "production",
  136. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
  137. },
  138. env_development: {
  139. NODE_ENV: "development",
  140. RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
  141. },
  142. },
  143. ],
  144. };