Wali 部署指南:单机模式 vs 分布式模式
返回博客列表

Wali 部署指南:单机模式 vs 分布式模式

详细对比 Wali 数据中台的两种部署模式,帮助你根据业务规模选择最合适的部署方案。

李工
9 分钟阅读

选择合适的部署模式是 Wali 数据中台成功实施的关键。本文将详细介绍单机模式和分布式模式的特点、适用场景和配置方法。

部署模式对比

快速对比表

特性 单机模式 分布式模式
硬件要求 1台服务器 3台以上服务器
数据规模 < 1TB 无限制
并发能力 1000 QPS 10000+ QPS
高可用
部署复杂度 ⭐⭐⭐
运维成本 中高
适用场景 中小型项目 大型企业应用

单机模式详解

适用场景

单机模式适合以下场景:

  • 🏢 中小型企业的数据整合需求
  • 🚀 快速验证和原型开发
  • 💰 预算有限的项目
  • 📊 数据量在 TB 级别以内
  • 👥 并发用户数在 100 以内

系统要求

最低配置

CPU: 4核
内存: 8GB
磁盘: 100GB SSD
操作系统: Linux (CentOS 7+, Ubuntu 18.04+)

推荐配置

CPU: 8核
内存: 16GB
磁盘: 500GB SSD
操作系统: Linux (CentOS 7+, Ubuntu 18.04+)
网络: 千兆网卡

安装步骤

1. 环境准备

# 更新系统
sudo yum update -y

# 安装依赖
sudo yum install -y java-11-openjdk wget

# 创建安装目录
sudo mkdir -p /opt/wali
cd /opt/wali

2. 下载安装包

# 下载最新版本
wget https://wali.run/download/wali-standalone-latest.tar.gz

# 解压
tar -xzf wali-standalone-latest.tar.gz

# 设置权限
chmod +x bin/*.sh

3. 配置文件

编辑 config/application.yml

server:
  port: 8080
  host: 0.0.0.0

database:
  type: embedded  # 使用内置数据库
  path: /opt/wali/data

storage:
  type: local
  path: /opt/wali/storage
  max_size: 500GB

logging:
  level: INFO
  path: /opt/wali/logs

4. 启动服务

# 启动
./bin/start.sh

# 查看日志
tail -f logs/wali.log

# 检查状态
./bin/status.sh

5. 验证安装

# 健康检查
curl http://localhost:8080/health

# 预期输出
{
  "status": "UP",
  "version": "1.0.0",
  "mode": "standalone"
}

性能优化

JVM 参数调优

编辑 bin/start.sh,添加 JVM 参数:

JAVA_OPTS="-Xms4g -Xmx8g \
  -XX:+UseG1GC \
  -XX:MaxGCPauseMillis=200 \
  -XX:+HeapDumpOnOutOfMemoryError \
  -XX:HeapDumpPath=/opt/wali/logs"

数据库优化

database:
  pool:
    min_size: 10
    max_size: 50
    timeout: 30000
  cache:
    enabled: true
    size: 1GB

分布式模式详解

架构设计

分布式模式采用主从架构:

┌─────────────────────────────────────────┐
│           负载均衡器 (Nginx)             │
└─────────────────────────────────────────┘
    ┌─────────┼─────────┐
    │         │         │
┌───▼───┐ ┌──▼────┐ ┌──▼────┐
│ Node1 │ │ Node2 │ │ Node3 │
│(Master)│ │(Slave)│ │(Slave)│
└───┬───┘ └───┬───┘ └───┬───┘
    │         │         │
    └─────────┼─────────┘
    ┌─────────▼─────────┐
    │   分布式存储集群    │
    │  (MinIO/Ceph)     │
    └───────────────────┘

适用场景

  • 🏢 大型企业级应用
  • 📈 数据量超过 TB 级别
  • 🔄 需要高可用保障
  • 👥 高并发访问需求
  • 🌍 多地域部署需求

集群规划

最小集群配置(3节点):

节点配置:
  CPU: 16核
  内存: 32GB
  磁盘: 1TB SSD
  网络: 万兆网卡

节点角色:
  - Master节点: 1个(负责协调和管理)
  - Slave节点: 2个(负责数据处理)

安装步骤

1. 准备集群环境

在所有节点上执行:

# 配置主机名
hostnamectl set-hostname wali-node1  # node2, node3

# 配置 hosts
cat >> /etc/hosts << EOF
192.168.1.10 wali-node1
192.168.1.11 wali-node2
192.168.1.12 wali-node3
EOF

# 时间同步
yum install -y chrony
systemctl enable chronyd
systemctl start chronyd

2. 安装 Master 节点

在 node1 上执行:

# 下载分布式版本
wget https://wali.run/download/wali-distributed-latest.tar.gz
tar -xzf wali-distributed-latest.tar.gz
cd wali

# 配置 Master
cat > config/cluster.yml << EOF
cluster:
  mode: distributed
  role: master
  nodes:
    - host: 192.168.1.10
      role: master
    - host: 192.168.1.11
      role: slave
    - host: 192.168.1.12
      role: slave

coordination:
  type: zookeeper
  servers:
    - 192.168.1.10:2181
    - 192.168.1.11:2181
    - 192.168.1.12:2181

storage:
  type: distributed
  backend: minio
  endpoints:
    - http://192.168.1.10:9000
    - http://192.168.1.11:9000
    - http://192.168.1.12:9000
EOF

# 启动 Master
./bin/start-master.sh

3. 安装 Slave 节点

在 node2 和 node3 上执行:

# 解压安装包
tar -xzf wali-distributed-latest.tar.gz
cd wali

# 配置 Slave
cat > config/cluster.yml << EOF
cluster:
  mode: distributed
  role: slave
  master: 192.168.1.10:8080

coordination:
  type: zookeeper
  servers:
    - 192.168.1.10:2181
    - 192.168.1.11:2181
    - 192.168.1.12:2181
EOF

# 启动 Slave
./bin/start-slave.sh

4. 验证集群状态

# 在 Master 节点查看集群状态
curl http://192.168.1.10:8080/cluster/status

# 预期输出
{
  "cluster_id": "wali-cluster-001",
  "status": "healthy",
  "nodes": [
    {
      "host": "192.168.1.10",
      "role": "master",
      "status": "online"
    },
    {
      "host": "192.168.1.11",
      "role": "slave",
      "status": "online"
    },
    {
      "host": "192.168.1.12",
      "role": "slave",
      "status": "online"
    }
  ]
}

负载均衡配置

使用 Nginx 配置负载均衡:

upstream wali_cluster {
    least_conn;
    server 192.168.1.10:8080 weight=3;
    server 192.168.1.11:8080 weight=2;
    server 192.168.1.12:8080 weight=2;
}

server {
    listen 80;
    server_name wali.example.com;

    location / {
        proxy_pass http://wali_cluster;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        
        # 健康检查
        proxy_next_upstream error timeout http_500 http_502 http_503;
        proxy_connect_timeout 5s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

迁移方案

从单机到分布式

当业务增长需要从单机迁移到分布式时:

步骤 1:数据备份

# 在单机模式下备份数据
./bin/backup.sh --output /backup/wali-backup-$(date +%Y%m%d).tar.gz

步骤 2:搭建分布式集群

按照上述分布式安装步骤搭建新集群。

步骤 3:数据迁移

# 在新集群的 Master 节点恢复数据
./bin/restore.sh --input /backup/wali-backup-20240201.tar.gz

步骤 4:切换流量

# 更新 DNS 或负载均衡配置
# 逐步切换流量到新集群

监控和运维

关键指标监控

监控指标:
  系统指标:
    - CPU 使用率
    - 内存使用率
    - 磁盘 I/O
    - 网络流量
  
  应用指标:
    - QPS (每秒查询数)
    - 响应时间 (P50, P95, P99)
    - 错误率
    - 数据同步延迟
  
  业务指标:
    - 数据源连接状态
    - 同步任务成功率
    - 数据质量分数

告警配置

alerts:
  - name: high_cpu_usage
    condition: cpu_usage > 80%
    duration: 5m
    action: notify
    
  - name: sync_task_failed
    condition: task_failure_rate > 10%
    duration: 1m
    action: notify_and_retry
    
  - name: node_offline
    condition: node_status == 'offline'
    duration: 1m
    action: notify_urgent

成本分析

单机模式成本

硬件成本:
  服务器: ¥15,000 (一次性)
  
运维成本:
  人力: ¥5,000/月 (兼职)
  
总成本:
  第一年: ¥75,000
  后续每年: ¥60,000

分布式模式成本

硬件成本:
  服务器 x3: ¥45,000 (一次性)
  负载均衡器: ¥10,000 (一次性)
  
运维成本:
  人力: ¥15,000/月 (专职)
  
总成本:
  第一年: ¥235,000
  后续每年: ¥180,000

选择建议

选择单机模式,如果:

  • ✅ 数据量 < 1TB
  • ✅ 并发用户 < 100
  • ✅ 可接受短暂停机
  • ✅ 预算有限

选择分布式模式,如果:

  • ✅ 数据量 > 1TB
  • ✅ 并发用户 > 100
  • ✅ 需要 99.9% 可用性
  • ✅ 有专业运维团队

总结

选择合适的部署模式需要综合考虑:

  1. 业务规模:当前和未来 1-2 年的数据量和用户数
  2. 可用性要求:能否接受计划内停机
  3. 预算约束:硬件和人力成本
  4. 技术能力:团队的运维能力

建议从单机模式开始,随着业务增长再迁移到分布式模式。Wali 提供了平滑的迁移路径,确保业务连续性。


需要部署帮助?联系我们的技术支持团队:support@wali.run