搭建 Temporal 工作流集群

适用场景

需要持久化、可重试的长时间工作流,例如订单履约、支付对账、数据管道和人工审批。Temporal 把工作流状态存到数据库,Worker 故障后可以继续执行。

前置条件

步骤

  1. 准备数据库:
kubectl create namespace temporal
kubectl -n temporal create secret generic temporal-db \
  --from-literal=password='***'
  1. 安装 Temporal:
helm repo add temporal https://go.temporal.io/helm-charts
helm install temporal temporal/temporal \
  --namespace temporal \
  --set server.replicaCount=2 \
  --set postgresql.enabled=false \
  --set server.config.persistence.default.sql.host=postgres \
  --set server.config.persistence.default.sql.database=temporal \
  --set server.config.persistence.default.sql.user=temporal \
  --set server.config.persistence.default.sql.password='***'
kubectl -n temporal get pods
  1. 创建 namespace:
temporal operator namespace create --namespace orders \
  --retention 7d
temporal operator namespace list
  1. 部署 Worker(应用侧):
temporal worker start --namespace orders --task-queue orders
  1. 访问 Web UI:
kubectl -n temporal port-forward svc/temporal-web 8080:8080
  1. 配置归档(可选):
temporal operator cluster upsert --history-archival-enabled true

验证

回滚

常见坑

相关命令