# GatewayServer **Repository Path**: soni_cloud/gateway-server ## Basic Information - **Project Name**: GatewayServer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-09 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CommonData 基础设施容器服务 独立的基础设施容器服务,包含项目所需的所有中间件和数据库服务。可独立部署到其他机器运行。 ## 服务列表 | 服务 | 端口 | 用途 | |------|------|------| | PostgreSQL | 5432 | 关系型数据库 | | Redis | 6379 | 缓存/会话存储 | | Kafka | 9092 | 消息队列 (SASL_SSL 加密访问) | | ClickHouse | 8123/9000 | 列式分析数据库 | | etcd | 2379 | 分布式键值存储 | | APISIX | 9080/9180 | API 网关 | ## 目录结构 ``` commonData/ ├── config/ # 服务配置文件 │ ├── apisix/ │ │ └── apisix.yaml │ ├── clickhouse/ │ │ └── custom_config.xml │ ├── kafka/ │ │ ├── generate-certs.sh # SASL_SSL 自签名证书生成脚本 │ │ └── certs/ # 生成的证书 (gitignore) │ └── postgres/ │ └── custom.conf ├── data/ # 数据持久化目录 (gitignore) ├── .env # 开发环境配置 (gitignore) ├── .env.example # 环境变量模板 ├── .env.production # 生产环境配置模板 ├── docker-compose.yml # 容器编排配置 └── Makefile # 快捷命令 ``` ## 快速开始 ### 1. 环境准备 确保已安装 Docker 和 Docker Compose。 ```bash # 复制环境变量文件 cp .env.example .env # 根据需要修改配置 vim .env ``` ### 2. 生成 Kafka 证书(首次部署必做) Kafka 已开启 SASL_SSL 加密访问,首次启动前必须先生成自签名证书,否则 broker 会因读不到证书而崩溃重启。 ```bash make kafka-certs # 或手动执行 bash ./config/kafka/generate-certs.sh ``` 生成物在 `config/kafka/certs/`: - `ca-cert.pem` —— 拷给客户端当 `tls.ca_file` - `kafka.keystore.jks` / `kafka.truststore.jks` —— 自动挂载进 broker 容器 > 注意:证书 SAN 含 `KAFKA_ADVERTISED_HOST`。若更换部署 IP,需用新的 > `KAFKA_ADVERTISED_HOST` 重跑此命令,并保持与 `.env` 一致。 ### 3. 启动服务 ```bash # 开发环境 make dev # 或 docker compose up -d # 生产环境 make prod # 或 docker compose --env-file .env.production up -d ``` ### 4. 查看状态 ```bash make status # 或 docker compose ps ``` ### 5. 查看日志 ```bash # 所有服务日志 make logs # 单个服务日志 make logs-svc SVC=postgres ``` ### 6. 停止服务 ```bash make stop ``` ## 环境隔离 ### 开发环境 - 使用 `.env` 配置文件 - 数据存储在 `./data/` 目录 - 服务监听 localhost 端口 ### 生产环境 - 使用 `.env.production` 配置文件 - 数据存储在 `/data/commondata/` 目录 - 密码使用环境变量引用,不直接写入配置 - 需要设置以下环境变量: - `POSTGRES_PROD_PASSWORD` - `REDIS_PROD_PASSWORD` - `CLICKHOUSE_PROD_PASSWORD` - `KAFKA_PROD_HOST` - `KAFKA_PROD_PASSWORD` # Kafka SASL 密码 - `KAFKA_PROD_CERT_PASSWORD` # 证书 keystore/truststore 密码 - `APISIX_PROD_ADMIN_KEY` ## 迁移部署 将整个 `commonData` 目录复制到目标机器: ```bash # 在目标机器上 scp -r commonData/ user@target:/path/to/ # 登录目标机器 ssh user@target # 配置环境变量 cd /path/to/commonData cp .env.example .env vim .env # 修改为实际配置(KAFKA_ADVERTISED_HOST 设为目标机器 IP) # 生成 Kafka 证书(首次必做,SAN 会写入 KAFKA_ADVERTISED_HOST) make kafka-certs # 启动服务 make dev ``` ## 常用命令 ```bash # 查看所有可用命令 make help # 启动单个服务 make start-svc SVC=redis # 停止单个服务 make stop-svc SVC=kafka # 重启服务 make restart # 备份数据 make backup # 清理所有数据 (危险!) make clean ``` ## 服务连接信息 ### 开发环境默认连接 ``` # PostgreSQL Host: localhost:5432 User: postgres Password: postgres_dev_2024 Database: conter_dev # Redis Host: localhost:6379 Password: redis_dev_2024 # Kafka (SASL_SSL 加密访问) Bootstrap Servers: 192.168.10.79:9092 # = KAFKA_ADVERTISED_HOST:KAFKA_BROKER_PORT Security Protocol: SASL_SSL SASL Mechanism: PLAIN SASL Username: commondata # = KAFKA_SASL_USER SASL Password: kafka_dev_2024 # = KAFKA_SASL_PASSWORD TLS CA: config/kafka/certs/ca-cert.pem # 客户端 tls.ca_file(拷贝到客户端机器) # ClickHouse HTTP: http://localhost:8123 Native: localhost:9000 User: default Password: clickhouse_dev_2024 # etcd Endpoints: http://localhost:2379 # APISIX Proxy: http://localhost:9080 Admin: http://localhost:9180 Admin Key: edd1c9f034335f136f87ad84b625c8f1 ``` ## 注意事项 1. **数据持久化**: 数据存储在 `data/` 目录,请定期备份 2. **安全配置**: 生产环境务必修改默认密码 3. **资源限制**: 根据实际机器配置调整各服务的内存限制 4. **网络配置**: 服务间通过 `commondata_net` 网络通信,容器名可作为主机名