Quellcode durchsuchen

调整生产环境

guoziyun vor 10 Monaten
Ursprung
Commit
e0a4a5f48b

+ 2 - 1
oms/.env

@@ -1,6 +1,7 @@
 PORT=3000
 EVENT_PORT=3001
-MONGO_URI=mongodb://oms:oms123.@localhost/omsdb?authSource=admin
+MONGO_URI=mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin
+REMOTE_SYNC_MONGO_URI=mongodb://coloring:coloring123.@hk.jccytech.cn:7881?authSource=admin
 REDIS_URI=redis://localhost:6379
 RABBITMQ_URI=amqp://coloring:coloring123.@localhost
 RABBITMQ_EXCHANGE=event-exchange

+ 1 - 1
oms/README.md

@@ -23,7 +23,7 @@ docker-compose up -d --force-recreate oms # 以后台模式运行并强制重建
 
 ## 如何查看 mongodb 数据:
 
-mongosh mongodb://oms:oms123.@localhost:27017/omsdb?authSource=admin
+mongosh mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin
 
 ## 如何查看 clickhouse 数据:
 

+ 47 - 24
oms/ecosystem.config.js

@@ -12,13 +12,17 @@ module.exports = {
         // 生产环境特定环境变量
         NODE_ENV: "production",
         PORT: 3000,
-        MONGO_URI: "mongodb://oms:oms123.@localhost/omsdb?authSource=admin", // MongoDB 宿主机端口 27717
-        REDIS_URI: "redis://localhost:6379", // Redis 宿主机端口 6379
-        RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // RabbitMQ 宿主机端口 5672
+        // MongoDB 连接:使用 localhost 访问宿主机上映射的 Docker 容器
+        MONGO_URI: "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin",
+        // Redis 连接:使用 localhost 访问宿主机上映射的 Docker 容器
+        REDIS_URI: "redis://localhost:6379",
+        // RabbitMQ 连接:使用 localhost 访问宿主机上映射的 Docker 容器
+        RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
         RABBITMQ_EXCHANGE: "event-exchange",
-        RABBITMQ_LOG_QUQUE: "log-event-queue",
+        RABBITMQ_LOG_QUEUE: "log-event-queue",
         RABBITMQ_OMS_QUEUE: "oms-event-queue",
-        CLICKHOUSE_HOST: "http://localhost:8123", // ClickHouse 宿主机端口 8123
+        // ClickHouse 连接:使用 localhost 访问宿主机上映射的 Docker 容器
+        CLICKHOUSE_HOST: "http://localhost:8123",
         CLICKHOUSE_DATABASE: "omsdb",
         CLICKHOUSE_USER: "ckuser",
         CLICKHOUSE_PASSWORD: "ckpassword",
@@ -27,11 +31,11 @@ module.exports = {
       env_development: {
         NODE_ENV: "development",
         PORT: 3000,
-        MONGO_URI: "mongodb://oms:oms123.@localhost/omsdb?authSource=admin",
+        MONGO_URI: "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin",
         REDIS_URI: "redis://localhost:6379",
         RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
         RABBITMQ_EXCHANGE: "event-exchange",
-        RABBITMQ_LOG_QUQUE: "log-event-queue",
+        RABBITMQ_LOG_QUEUE: "log-event-queue",
         RABBITMQ_OMS_QUEUE: "oms-event-queue",
         CLICKHOUSE_HOST: "http://localhost:8123",
         CLICKHOUSE_DATABASE: "omsdb",
@@ -40,7 +44,7 @@ module.exports = {
       },
     },
     {
-      name: "event-api-service", // <-- 新增的埋点 API 进程
+      name: "event-api-service", // 埋点 API 进程
       script: "dist/services/event-api-service.js", // 指向编译后的埋点服务文件
       instances: "max", // 可以根据 CPU 核心数启动多个实例
       exec_mode: "cluster", // 以集群模式运行,利用多核 CPU
@@ -49,15 +53,15 @@ module.exports = {
       max_memory_restart: "500M", // 根据实际情况调整内存限制
       env_production: {
         NODE_ENV: "production",
-        EVENT_PORT: 3001, // <-- 埋点 API 进程使用不同的端口
-        RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // RabbitMQ连接
+        EVENT_PORT: 3001, // 埋点 API 进程使用不同的端口
+        RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // 使用 localhost 访问宿主机上映射的 Docker 容器
         RABBITMQ_EXCHANGE: "event-exchange", // 交换机名称
         RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务队列
         RABBITMQ_OMS_QUEUE: "oms-event-queue", // 数据清洗整理到mongodb和clickhouse队列
       },
       env_development: {
         NODE_ENV: "development",
-        EVENT_PORT: 3001, // <-- 本地开发调试也使用不同端口
+        EVENT_PORT: 3001, // 本地开发调试也使用不同端口
         RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672",
         RABBITMQ_EXCHANGE: "event-exchange", // 交换机名称
         RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务队列
@@ -65,40 +69,59 @@ module.exports = {
       },
     },
     {
-      name: "log-service", // <-- 新增的日志服务进程
+      name: "log-service", // 日志服务进程
       script: "dist/services/log-service.js", // 指向编译后的日志服务文件
       instances: 1, // 通常只需要一个日志写入进程,但也可以是多个并行写入到不同文件或同一文件
       watch: false,
       max_memory_restart: "500M", // 根据日志量调整内存限制
       env_development: {
-        NODE_ENV: "production",
-        RABBITMQ_URL: "amqp://coloring:coloring123.@rabbitmq:5672", // RabbitMQ连接
-        RABBITMQ_LOG_QUEUE: "log_event_queue", // 日志服务订阅的队列
-        LOG_DIR: "/app/logs/coloring", // <-- 日志文件存储路径 (容器内部)
+        NODE_ENV: "development", // 开发环境
+        RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // 使用 localhost 访问宿主机上映射的 Docker 容器
+        RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务订阅的队列 (已统一名称)
+        LOG_DIR: "/var/log/oms-dev", // <-- 推荐为开发环境提供一个宿主机路径,或者根据实际情况调整
       },
       env_production: {
         NODE_ENV: "production",
-        RABBITMQ_URL: "amqp://coloring:coloring123.@rabbitmq:5672", // RabbitMQ连接
-        RABBITMQ_LOG_QUEUE: "log_event_queue", // 日志服务订阅的队列
-        LOG_DIR: "/mnt/volume_sfo2_04/logs", // <-- 日志文件存储路径 (容器内部)
+        RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // 使用 localhost 访问宿主机上映射的 Docker 容器
+        RABBITMQ_LOG_QUEUE: "log-event-queue", // 日志服务订阅的队列 (已统一名称)
+        LOG_DIR: "/home/jccy/logs", // 日志文件存储路径 (宿主机路径)
       },
     },
     {
-      name: "ingestor-service", // <-- 新增的数据摄取器进程
+      name: "ingestor-service", // 数据摄取器进程
       script: "dist/services/ingestor-service.js", // 指向编译后的摄取器服务文件
       instances: 1, // 可以根据处理能力调整实例数量
       watch: false,
       max_memory_restart: "1G", // 根据数据量和处理逻辑调整内存限制
-      env: {
+      env_production: {
         NODE_ENV: "production",
-        RABBITMQ_URL: "amqp://coloring:coloring123.@rabbitmq:5672", // RabbitMQ连接
+        RABBITMQ_URL: "amqp://coloring:coloring123.@localhost:5672", // 使用 localhost 访问宿主机上映射的 Docker 容器
         RABBITMQ_OMS_QUEUE: "oms-event-queue", // 摄取器订阅的队列
-        MONGO_URI: "mongodb://mongodb:27017/omsdb", // MongoDB连接
-        CLICKHOUSE_HOST: "http://clickhouse:8123", // ClickHouse连接
+        MONGO_URI: "mongodb://oms:oms123.@localhost:27717/omsdb", // 使用 localhost 访问宿主机上映射的 Docker 容器
+        CLICKHOUSE_HOST: "http://localhost:8123", // 使用 localhost 访问宿主机上映射的 Docker 容器
+        CLICKHOUSE_DATABASE: "omsdb", // ClickHouse数据库名
+        CLICKHOUSE_USER: "ckuser", // ClickHouse用户
+        CLICKHOUSE_PASSWORD: "ckpassword", // ClickHouse密码
+      },
+      // env_development 块可以在需要时添加
+    },
+    {
+      name: "cron-jobs", // 定时任务进程
+      script: "dist/services/cron-jobs/index.js", // 指向编译后的摄取器服务文件
+      instances: 1, // 可以根据处理能力调整实例数量
+      watch: false,
+      max_memory_restart: "500M", // 根据数据量和处理逻辑调整内存限制
+      env_production: {
+        // 建议统一为 env_production
+        NODE_ENV: "production",
+        MONGO_URI: "mongodb://oms:oms123.@localhost:27717/omsdb", // 使用 localhost 访问宿主机上映射的 Docker 容器
+        REMOTE_SYNC_MONGO_URI: "mongodb://coloring:coloring123.@hk.jccytech.cn:7881?authSource=admin",
+        CLICKHOUSE_HOST: "http://localhost:8123", // 使用 localhost 访问宿主机上映射的 Docker 容器
         CLICKHOUSE_DATABASE: "omsdb", // ClickHouse数据库名
         CLICKHOUSE_USER: "ckuser", // ClickHouse用户
         CLICKHOUSE_PASSWORD: "ckpassword", // ClickHouse密码
       },
+      // env_development 块可以在需要时添加
     },
   ],
 };

+ 1 - 1
oms/services/cron-jobs/index.ts

@@ -12,7 +12,7 @@ interface CronJobModule {
 const settings: [string, string, CronJobModule][] = [
   // 假设这些文件将存在于 oms/services/cron-jobs/ 目录下
   ["done-rate", "10 0 * * *", require("./done-rate") as CronJobModule], // 每天凌晨0点10分, 统计作品完成率
-  ["sync", "*/1 * * * *", require("./sync/sync-service") as CronJobModule], // 每10分钟跑一次同步
+  ["sync", "*/10 * * * *", require("./sync/sync-service") as CronJobModule], // 每10分钟跑一次同步
 ];
 
 /**

+ 1 - 1
oms/services/cron-jobs/sync/sync-conn.js

@@ -1,6 +1,6 @@
 const mongoose = require("mongoose");
 
-const MONGO_URI = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost/omsdb?authSource=admin";
+const MONGO_URI = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin";
 const syncConn = mongoose.createConnection(MONGO_URI);
 
 module.exports = syncConn;

+ 1 - 1
oms/services/cron-jobs/sync/sync-service.js

@@ -8,7 +8,7 @@ const localdb = "omsdb"; // 本地的数据库
  * sync from remote
  */
 async function run() {
-  const MONGO_URI = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost/omsdb?authSource=admin";
+  const MONGO_URI = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin";
   const REMOTE_SYNC_MONGO_URI = process.env.REMOTE_SYNC_MONGO_URI || "mongodb://coloring:coloring123.@hk.jccytech.cn:7881?authSource=admin";
   const localClient = await new MongoClient(MONGO_URI).connect();
   const remoteClient = await new MongoClient(REMOTE_SYNC_MONGO_URI).connect();

+ 1 - 1
oms/services/event-api-service.ts

@@ -16,7 +16,7 @@ const port = process.env.EVENT_PORT ? parseInt(process.env.EVENT_PORT, 10) : 300
 // RabbitMQ Configuration
 const RABBITMQ_URL = process.env.RABBITMQ_URL || "amqp://coloring:coloring123.@localhost:5672";
 const RABBITMQ_EXCHANGE_NAME = process.env.RABBITMQ_EXCHANGE || "event_exchange"; // <-- 从环境变量读取交换机名称
-const RABBITMQ_LOG_QUEUE = process.env.RABBITMQ_LOG_QUEUE || "log_event_queue"; // <-- 从环境变量读取日志队列名称
+const RABBITMQ_LOG_QUEUE = process.env.RABBITMQ_LOG_QUEUE || "log-event-queue"; // <-- 从环境变量读取日志队列名称
 const RABBITMQ_OMS_QUEUE = process.env.RABBITMQ_OMS_QUEUE || "oms_event_queue"; // <-- 从环境变量读取摄取器队列名称
 
 let amqpConnection: amqp.ChannelModel;

+ 1 - 1
oms/services/log-service.ts

@@ -11,7 +11,7 @@ import * as path from "path"; // 导入 path 模块
 
 // --- Environment Variables ---
 const RABBITMQ_URL = process.env.RABBITMQ_URL || "amqp://coloring:coloring123.@localhost:5672";
-const RABBITMQ_LOG_QUEUE = process.env.RABBITMQ_LOG_QUEUE || "log_event_queue"; // 日志服务订阅的队列
+const RABBITMQ_LOG_QUEUE = process.env.RABBITMQ_LOG_QUEUE || "log-event-queue"; // 日志服务订阅的队列
 const LOG_DIR = process.env.LOG_DIR || path.join(__dirname, "..", "..", "logs", "coloring"); // 日志文件存储路径
 
 let amqpConnection: ChannelModel | undefined; // 使用 undefined 初始化,因为连接是异步的

+ 1 - 1
oms/src/app.ts

@@ -11,7 +11,7 @@ import { ClickhouseService } from "./services/clickhouseService"; // 👈 导入
 
 const app = express();
 const port = process.env.PORT || 3000;
-const mongoUri = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost/omsdb?authSource=admin";
+const mongoUri = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin";
 const redisUri = process.env.REDIS_URI || "redis://redis:6379";
 const clickhouseHost = process.env.CLICKHOUSE_HOST || "http://localhost:8123"; // 👈 ClickHouse 主机
 const clickhouseDatabase = process.env.CLICKHOUSE_DATABASE || "omsdb"; // 👈 ClickHouse 数据库名

+ 1 - 1
oms/src/scripts/ingestHistoricalData.ts

@@ -23,7 +23,7 @@ dayjs.extend(duration);
 dayjs.extend(isSameOrBefore); // Extend dayjs with the isSameOrBefore plugin
 
 // --- Persistent Configuration (can still come from .env) ---
-const OMS_MONGO_URI = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost/omsdb?authSource=admin";
+const OMS_MONGO_URI = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost:27717/omsdb?authSource=admin";
 const CLICKHOUSE_HOST = process.env.CLICKHOUSE_HOST || "http://localhost:8123";
 const CLICKHOUSE_DATABASE = process.env.CLICKHOUSE_DATABASE || "omsdb"; // Aligned with docker-compose.yml
 const CLICKHOUSE_USER = process.env.CLICKHOUSE_USER || "ckuser";

+ 1 - 1
oms/src/scripts/ingestHistoricalDataFromClog.ts

@@ -22,7 +22,7 @@ const CLOGS_MONGO_URI =
   process.env.CLOGS_MONGO_URI || "mongodb://localhost:27017/clogs";
 const CLOGS_DATABASE_NAME = process.env.CLOGS_DATABASE_NAME || "clogs"; // Database containing daily collections
 
-const OMS_MONGO_URI = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost:27017/omsdb";
+const OMS_MONGO_URI = process.env.MONGO_URI || "mongodb://oms:oms123.@localhost:27717/omsdb";
 const CLICKHOUSE_HOST = process.env.CLICKHOUSE_HOST || "http://localhost:8123";
 const CLICKHOUSE_DATABASE = process.env.CLICKHOUSE_DATABASE || "omsdb";
 const CLICKHOUSE_USER = process.env.CLICKHOUSE_USER || "ckuser";