news 2026/9/11 6:16:27

Conductor 生产环境部署指南:架构拆解、Docker 部署与高可用配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Conductor 生产环境部署指南:架构拆解、Docker 部署与高可用配置

Conductor 生产环境部署指南:架构拆解、Docker 部署与高可用配置

【免费下载链接】conductorConductor is an event driven agentic workflow engine providing durable and highly resilient execution engine for applications and AI Agents项目地址: https://gitcode.com/GitHub_Trending/co/conductor

Conductor 是开源、可自托管的编排引擎,生产部署意味着在自有基础设施上运行服务端,并为工作流引擎搭配数据库、队列、索引与分布式锁等后端组件。本篇以 docs/devguide/running/deploy.md 为骨架,结合仓库内真实的 Docker Compose 文件、服务端配置文件与ConductorProperties源码,完整讲解部署架构、Docker 运行方式、数据库/队列/索引/锁的配置方法、横向扩展、监控与常见故障排查,读完即可落地一套可投入生产的多实例 Conductor 集群。

部署架构总览

一个完整的 Conductor 部署由以下组件构成:

各组件职责如下:

组件职责
API Server暴露面向工作流与任务操作的 REST 和 gRPC 端点。
Decider核心状态机。评估工作流状态并调度下一批待执行任务。
Sweeper后台进程,轮询运行中的工作流并触发 decider 进行求值;长耗时工作流能否持续推进,依赖 sweeper 的正常运行
System Task Workers在服务端 JVM 内执行内置任务类型(HTTP、Event、Wait、Inline、JSON_JQ 等)。
Event Processor监听配置的事件总线,根据到达的事件触发工作流或完成任务。
Database持久化工作流定义、执行状态、任务状态与 poll 数据。
Queue管理任务调度:待执行任务、延迟任务以及 sweeper 自身的工作队列。
Index支撑 UI 与搜索 API 中的工作流/任务检索。
Lock分布式锁,防止多个服务端实例对同一工作流并发求值。生产环境必须启用

其中 Sweeper、System Task Workers、Event Processor 都内嵌在 Conductor server 进程中运行,这是后续配置线程数、进行容量规划的前提。

使用 Docker 快速运行

单机一体镜像(standalone)

想先跑起来看效果,可以用官方提供的 standalone 镜像。它内置服务端、UI 和 SQLite 持久化,无需任何外部依赖

docker run -p 8080:8080 conductoross/conductor:latest

启动后访问以下地址:

URL说明
http://localhost:8080Conductor UI
http://localhost:8080/swagger-ui/index.htmlREST API 文档
http://localhost:8080/api/API 基础地址

生产环境应固定发布标签(如conductoross/conductor:3.4.0)而不是latest,以便在可控时机完成升级。

Docker Compose 组合后端

仓库自带了多套将服务端与生产后端配对编排的 compose 文件(位于 docker/ 目录):

git clone https://github.com/conductor-oss/conductor cd conductor docker compose -f docker/docker-compose.yaml up

这会在本机拉起 Conductor + Redis(同时充当数据库与队列)+ Elasticsearch(索引),服务端与 UI 监听8080端口。从源码构建镜像时,Compose 会使用 docker/server/Dockerfile,该文件基于azul/zulu-openjdk-debian:21构建 server JAR,再用debian:stable-slim作为运行时镜像并内置 nginx 托管 UI 静态资源。

仓库提供的预编排组合:

Compose 文件数据库队列索引
docker-compose.yamlRedisRedisElasticsearch 7
docker-compose-es8.yamlRedisRedisElasticsearch 8
docker-compose-postgres.yamlPostgreSQLPostgreSQLPostgreSQL
docker-compose-postgres-es7.yamlPostgreSQLPostgreSQLElasticsearch 7
docker-compose-mysql.yamlMySQLRedisElasticsearch 7
docker-compose-cassandra-es7.yamlCassandraRedisElasticsearch 7
docker-compose-redis-os2.yamlRedisRedisOpenSearch 2
docker-compose-redis-os3.yamlRedisRedisOpenSearch 3
# 示例:全部使用 PostgreSQL docker compose -f docker/docker-compose-postgres.yaml up # 示例:Redis + Elasticsearch 8 docker compose -f docker/docker-compose-es8.yaml up # 示例:Redis + OpenSearch 3 docker compose -f docker/docker-compose-redis-os3.yaml up

若使用 Elasticsearch 8,需设置conductor.indexing.type=elasticsearch8,并选用 config-redis-es8.properties 或等效的自定义配置。以 docker-compose.yaml 为例,服务端通过环境变量CONFIG_PROP=config-redis.properties加载配置,并依赖 ES 与 Redis 的 healthcheck 通过后才启动;docker-compose-postgres.yaml 则使用postgres:16镜像并以POSTGRES_USER=conductor/POSTGRES_PASSWORD=conductor初始化数据库。

自定义配置注入

镜像在CONFIG_PROP环境变量指向某个 properties 文件时,会从/app/config读取该文件。挂载自己的文件并设置变量即可:

docker run -p 8080:8080 \ -e CONFIG_PROP=config.properties \ -v /path/to/my-config.properties:/app/config/config.properties \ conductoross/conductor:latest

注意:不设置CONFIG_PROP时,服务端会忽略挂载的文件,直接以内置的 SQLite 默认配置启动。这一点在 startup.sh 中有明确逻辑——未设置CONFIG_PROP时直接java -jar conductor-server.jar运行,设置后则以-DCONDUCTOR_CONFIG_FILE=/app/config/$CONFIG_PROP加载配置。

JVM 参数通过JAVA_OPTS环境变量传入,例如-e JAVA_OPTS="-Xms2g -Xmx4g"

停止服务

# Ctrl+C 停止,然后: docker compose down

生产配置详解

Conductor 的所有配置均通过 Spring Boot properties(application.properties)或环境变量完成,也可以以 Docker volume 挂载。配置项在源码中都有对应的属性定义与默认值,核心集中在 ConductorProperties.java,下文各默认值均与源码一致。

数据库

数据库负责持久化工作流定义、执行状态、任务状态与事件处理器定义:

conductor.db.type=postgres

支持的数据库后端:

后端属性值适用场景备注
PostgreSQLpostgres生产首选。ACID 事务,同时可充当索引后端。需要spring.datasource.*配置。
MySQLmysql团队已在使用 MySQL 时的备选。需要spring.datasource.*配置;队列需另配 Redis。
Redisredis_standalone快速、简单,适合中等规模。需要conductor.redis.*配置;也支持redis_clusterredis_sentinel
Cassandracassandra高写入吞吐、多区域部署。需要conductor.cassandra.*配置。
SQLitesqlite仅限本地开发。单文件、零配置。默认值,不可用于生产。
PostgreSQL
conductor.db.type=postgres conductor.external-payload-storage.type=postgres spring.datasource.url=jdbc:postgresql://db-host:5432/conductor spring.datasource.username=conductor spring.datasource.password=<password> # 可选调优 conductor.postgres.deadlockRetryMax=3 conductor.postgres.taskDefCacheRefreshInterval=60s conductor.postgres.asyncMaxPoolSize=12 conductor.postgres.asyncWorkerQueueSize=100
MySQL
conductor.db.type=mysql spring.datasource.url=jdbc:mysql://db-host:3306/conductor spring.datasource.username=conductor spring.datasource.password=<password> # 可选调优 conductor.mysql.deadlockRetryMax=3 conductor.mysql.taskDefCacheRefreshInterval=60s
Redis
conductor.db.type=redis_standalone # 格式:host:port:rack(多主机用分号分隔) conductor.redis.hosts=redis-host:6379:us-east-1c conductor.redis.workflowNamespacePrefix=conductor conductor.redis.queueNamespacePrefix=conductor_queues conductor.redis.taskDefCacheRefreshInterval=1s # 连接池 conductor.redis.maxIdleConnections=8 conductor.redis.minIdleConnections=5 # SSL conductor.redis.ssl=false # 认证(密码取自第一条 host 条目:host:port:rack:password) # 或直接设置 conductor.redis.username 和 conductor.redis.password

仓库自带的 config-redis.properties 展示了这一组合的实际写法,并额外启用了management.health.redis.enabled=true让 Redis 健康状态参与/actuator/health判定。

队列

队列后端负责任务调度:追踪哪些任务处于 pending、delayed 或 ready 状态,sweeper 与系统任务 worker 都依赖它:

conductor.queue.type=postgres

支持的队列后端:

后端属性值适用场景
PostgreSQLpostgres数据库也用 PostgreSQL 时,栈最简单。
Redisredis_standalone数据库是 Redis 或 MySQL 时使用,低延迟。
SQLitesqlite仅限本地开发。

提示:让队列后端与数据库匹配。PostgreSQL 数据库 + PostgreSQL 队列是生产中最简单的组合——少一个外部依赖;若数据库用 MySQL,则用 Redis 充当队列。

索引

索引后端支撑 UI 及/api/workflow/search/api/tasks/search接口的工作流与任务搜索:

conductor.indexing.enabled=true conductor.indexing.type=postgres

支持的索引后端:

后端属性值适用场景备注
PostgreSQLpostgres数据库同为 PostgreSQL 时最简单的组合。需设置conductor.elasticsearch.version=0禁用 ES 客户端。
Elasticsearch 7elasticsearch大规模下搜索性能最佳,支持全文检索。设置conductor.elasticsearch.version=7
Elasticsearch 8elasticsearch8配合 ES8 persistence 模块使用。设置conductor.elasticsearch.version=8
OpenSearch 2opensearch2开源的 ES 替代方案。兼容 ES 7 查询语法。
OpenSearch 3opensearch3最新版 OpenSearch。
SQLitesqlite仅限本地开发。
禁用不适用设置conductor.indexing.enabled=false,UI 搜索将不可用。
PostgreSQL 索引
conductor.indexing.enabled=true conductor.indexing.type=postgres # 禁用 Elasticsearch 客户端 conductor.elasticsearch.version=0
Elasticsearch 7
conductor.indexing.enabled=true conductor.elasticsearch.url=http://es-host:9200 conductor.elasticsearch.version=7 conductor.elasticsearch.indexName=conductor conductor.elasticsearch.clusterHealthColor=yellow # 性能调优 conductor.elasticsearch.indexBatchSize=1 conductor.elasticsearch.asyncMaxPoolSize=12 conductor.elasticsearch.asyncWorkerQueueSize=100 conductor.elasticsearch.asyncBufferFlushTimeout=10s conductor.elasticsearch.indexShardCount=5 conductor.elasticsearch.indexReplicasCount=1 # 认证(如开启了安全) conductor.elasticsearch.username=elastic conductor.elasticsearch.password=<password>
Elasticsearch 8
conductor.indexing.enabled=true conductor.indexing.type=elasticsearch8 conductor.elasticsearch.url=http://es-host:9200 conductor.elasticsearch.version=8 conductor.elasticsearch.indexName=conductor conductor.elasticsearch.clusterHealthColor=yellow
OpenSearch
conductor.indexing.enabled=true conductor.indexing.type=opensearch2 # 或 opensearch3 conductor.opensearch.url=http://os-host:9200 conductor.opensearch.indexPrefix=conductor conductor.opensearch.clusterHealthColor=yellow conductor.opensearch.indexReplicasCount=0
异步索引

高吞吐场景下建议开启异步索引,将索引写入路径与工作流执行路径解耦:

conductor.app.asyncIndexingEnabled=true conductor.app.asyncUpdateShortRunningWorkflowDuration=30s conductor.app.asyncUpdateDelay=60s

源码中asyncIndexingEnabled默认值为false(ConductorProperties.java),需要显式开启。

索引内容开关

控制具体索引哪些内容:

conductor.app.taskIndexingEnabled=true conductor.app.taskExecLogIndexingEnabled=true conductor.app.eventMessageIndexingEnabled=true conductor.app.eventExecutionIndexingEnabled=true

分布式锁

生产必配。多个服务端实例并发评估同一工作流时,分布式锁可防止竞态条件。生产环境务必启用基于 Redis 或 Zookeeper 的分布式锁。

conductor.workflow-execution-lock.type=redis conductor.app.workflowExecutionLockEnabled=true

支持的锁提供方:

提供方属性值适用场景
Redisredis推荐。栈中已有 Redis 时直接使用。
Zookeeperzookeeper已有 Zookeeper(如 Kafka 部署)时使用。
Locallocal_only仅限单实例开发。多实例不安全。
Redis 锁
conductor.workflow-execution-lock.type=redis conductor.app.workflowExecutionLockEnabled=true conductor.app.lockLeaseTime=60000 # 锁最多持有 60s conductor.app.lockTimeToTry=500 # 获取锁最多等待 500ms conductor.redis-lock.serverType=SINGLE # SINGLE、CLUSTER 或 SENTINEL conductor.redis-lock.serverAddress=redis://redis-host:6379 # conductor.redis-lock.serverPassword=<password> # conductor.redis-lock.serverMasterName=master # Sentinel 模式使用 # conductor.redis-lock.namespace=conductor # key 前缀 conductor.redis-lock.ignoreLockingExceptions=false

Sentinel 多端点:使用SENTINEL类型时,可加分号分隔的多个 sentinel 地址以提升高可用:

conductor.redis-lock.serverType=SENTINEL conductor.redis-lock.serverAddress=redis://sentinel-0:26379;redis://sentinel-1:26379 conductor.redis-lock.serverMasterName=mymaster

即使某个 sentinel 节点宕机,锁客户端仍能发现 master。

Zookeeper 锁
conductor.workflow-execution-lock.type=zookeeper conductor.app.workflowExecutionLockEnabled=true conductor.app.lockLeaseTime=60000 conductor.app.lockTimeToTry=500 conductor.zookeeper-lock.connectionString=zk1:2181,zk2:2181,zk3:2181 # conductor.zookeeper-lock.sessionTimeoutMs=60000 # conductor.zookeeper-lock.connectionTimeoutMs=15000 # conductor.zookeeper-lock.namespace=conductor

需要说明的是,源码中workflowExecutionLockEnabled的默认值实际上是true(ConductorProperties.java),lockLeaseTime默认 60000ms、lockTimeToTry默认 500ms(同文件 L80、L85),与文档中的推荐值一致——在生产多实例部署中请务必确认锁提供方(conductor.workflow-execution-lock.type)已正确配置。

Sweeper 调优

sweeper 是监控运行中工作流的后台进程:它轮询需要求值的工作流队列并触发 decider。没有 sweeper,长耗时工作流将无法推进。sweeper 内嵌在 Conductor server 中自动运行,可按工作流量调整线程数:

# sweeper 线程数(默认:availableProcessors * 2) conductor.app.sweeperThreadCount=8 # 轮询 sweep 队列的等待时间(默认:2000ms) conductor.app.sweeperWorkflowPollTimeout=2000 # 每次 sweep 轮询的批大小(默认:2) conductor.app.sweeper.sweepBatchSize=2 # 队列 pop 超时时间 ms(默认:100) conductor.app.sweeper.queuePopTimeout=100

Sweeper 容量建议:sweeperThreadCount = 2 * CPU 核数起步。若工作流长时间停留在 RUNNING,则调大;若空闲时 CPU 占用过高,则调小。

系统任务 Worker

系统任务 worker 在 Conductor server JVM 内部执行内置任务类型(HTTP、Event、Wait、Inline、JSON_JQ_TRANSFORM 等),轮询内部队列执行已调度的系统任务:

# 系统任务 worker 线程数(默认:availableProcessors * 2) conductor.app.systemTaskWorkerThreadCount=20 # 单次最多轮询的任务数(默认:与线程数相同) conductor.app.systemTaskMaxPollCount=20 # 轮询间隔(默认:50ms) conductor.app.systemTaskWorkerPollInterval=50ms # 回调间隔——多久重新检查一次异步系统任务(默认:30s) conductor.app.systemTaskWorkerCallbackDuration=30s # 队列 pop 超时时间(默认:100ms) conductor.app.systemTaskQueuePopTimeout=100ms

以上默认值均可在 ConductorProperties.java 中查到源码佐证(systemTaskWorkerThreadCount默认availableProcessors * 2systemTaskMaxPollCount默认等于线程数,systemTaskWorkerCallbackDuration默认 30s,systemTaskWorkerPollInterval默认 50ms)。

独立运行系统任务 Worker

大型部署中,可将系统任务 worker 拆分到专用实例上,与 API server 分离。通过execution namespace隔离由哪个实例处理系统任务:

# API 专属实例——设置一个没有 worker 监听的 namespace conductor.app.systemTaskWorkerExecutionNamespace=api-only conductor.app.systemTaskWorkerThreadCount=0 # 专用系统任务 worker 实例——保持 namespace 一致 conductor.app.systemTaskWorkerExecutionNamespace=worker-pool-1 conductor.app.systemTaskWorkerThreadCount=40 conductor.app.systemTaskMaxPollCount=40
隔离系统任务 Worker

需要按任务域隔离(将特定任务路由到特定 worker 组)时:

# 每个隔离组的线程数(默认:1) conductor.app.isolatedSystemTaskWorkerThreadCount=4
延后阈值

当系统任务被轮询多次仍未完成(例如 Join 等待分支)时,Conductor 会渐进式延迟重新求值,避免忙轮询:

# 超过该轮询次数后开始指数退避(默认:200) conductor.app.systemTaskPostponeThreshold=200

事件处理

事件处理器监听配置的事件总线,根据到达的事件触发工作流或完成任务:

# 事件处理线程数(默认:2) conductor.app.eventProcessorThreadCount=4 # 事件队列轮询 conductor.app.eventQueueSchedulerPollThreadCount=4 # 默认:CPU 核数 conductor.app.eventQueuePollInterval=100ms conductor.app.eventQueuePollCount=10 conductor.app.eventQueueLongPollTimeout=1000ms

关于 Kafka、NATS、AMQP、SQS 事件队列的具体配置,参见事件驱动食谱。Kafka 相关实现位于 kafka/ 与 kafka-event-queue/,NATS 位于 nats/。

Payload 大小限制

Conductor 强制 payload 大小上限,防止超大 payload 拖垮性能。超过阈值时,数据会自动存入外部 payload 存储(S3、PostgreSQL 或 Azure Blob):

# 工作流输入/输出——超过则移入外部存储(默认:5120 KB) conductor.app.workflowInputPayloadSizeThreshold=5120KB conductor.app.workflowOutputPayloadSizeThreshold=5120KB # 工作流输入/输出——硬性上限,超过则工作流失败(默认:10240 KB) conductor.app.maxWorkflowInputPayloadSizeThreshold=10240KB conductor.app.maxWorkflowOutputPayloadSizeThreshold=10240KB # 任务输入/输出——超过则移入外部存储(默认:3072 KB) conductor.app.taskInputPayloadSizeThreshold=3072KB conductor.app.taskOutputPayloadSizeThreshold=3072KB # 任务输入/输出——硬性上限,超过则任务失败(默认:10240 KB) conductor.app.maxTaskInputPayloadSizeThreshold=10240KB conductor.app.maxTaskOutputPayloadSizeThreshold=10240KB # 工作流变量——硬性上限(默认:256 KB) conductor.app.maxWorkflowVariablesPayloadSizeThreshold=256KB

外部 payload 存储配置参见外部 Payload 存储。仓库中 S3、GCS、Azure Blob 等存储实现分别位于 awss3-storage/、gcs-storage/、azureblob-storage/。

监控与可观测性

Conductor 暴露 Prometheus 兼容指标:

conductor.metrics-prometheus.enabled=true management.endpoints.web.exposure.include=health,info,prometheus management.metrics.web.server.request.autotime.percentiles=0.50,0.75,0.90,0.95,0.99 management.endpoint.health.show-details=always

其中management.endpoints.web.exposure.include一行与服务端默认一致,因此即使不做自定义配置,healthinfoprometheus三个端点也已暴露。Prometheus 直接抓取http://<conductor-host>:8080/actuator/prometheus即可。可用指标清单见服务端指标与客户端指标。

健康检查

存活与就绪探针指向http://<conductor-host>:8080/actuator/health。若想专门验证 API 层,请求GET /api/metadata/workflow,健康服务端返回200注意:不存在/api/health端点。镜像内置的 HEALTHCHECK 亦使用curl -I -XGET http://localhost:8080/health(见 Dockerfile)。

推荐的生产配置模板

PostgreSQL 全栈(最简单)

一个数据库搞定一切——组件最少:

# 数据库 conductor.db.type=postgres conductor.queue.type=postgres conductor.external-payload-storage.type=postgres spring.datasource.url=jdbc:postgresql://db-host:5432/conductor spring.datasource.username=conductor spring.datasource.password=<password> # 索引(用 PostgreSQL,无需 Elasticsearch) conductor.indexing.enabled=true conductor.indexing.type=postgres conductor.elasticsearch.version=0 # 锁(用 Redis——轻量快速) conductor.workflow-execution-lock.type=redis conductor.app.workflowExecutionLockEnabled=true conductor.redis-lock.serverAddress=redis://redis-host:6379 # Sweeper conductor.app.sweeperThreadCount=8 # 系统任务 worker conductor.app.systemTaskWorkerThreadCount=20 conductor.app.systemTaskMaxPollCount=20 # 指标 conductor.metrics-prometheus.enabled=true management.endpoints.web.exposure.include=health,info,prometheus

该模板与仓库自带的 config-postgres.properties 基本一致,可在其中找到对应的生产化写法(含conductor.file-storage.enabled=trueconductor.file-storage.type=conductor的文件存储开关)。

Redis + Elasticsearch 全栈(高吞吐)

搜索性能最好,队列操作延迟最低:

# 数据库 + 队列 conductor.db.type=redis_standalone conductor.queue.type=redis_standalone conductor.redis.hosts=redis-host:6379:us-east-1c conductor.redis.workflowNamespacePrefix=conductor conductor.redis.queueNamespacePrefix=conductor_queues # 索引 conductor.indexing.enabled=true conductor.elasticsearch.url=http://es-host:9200 conductor.elasticsearch.version=7 conductor.elasticsearch.indexName=conductor conductor.elasticsearch.clusterHealthColor=yellow conductor.app.asyncIndexingEnabled=true # 锁 conductor.workflow-execution-lock.type=redis conductor.app.workflowExecutionLockEnabled=true conductor.redis-lock.serverAddress=redis://redis-host:6379 # Sweeper conductor.app.sweeperThreadCount=16 # 系统任务 worker conductor.app.systemTaskWorkerThreadCount=40 conductor.app.systemTaskMaxPollCount=40 # 指标 conductor.metrics-prometheus.enabled=true management.endpoints.web.exposure.include=health,info,prometheus

该模板与 config-redis.properties 的配置风格一脉相承。

多实例部署与横向扩展

为实现高可用与横向扩展,可在负载均衡器后面运行多个 Conductor server 实例。所有实例共享同一套数据库、队列、索引与锁后端——这也是工作流引擎支撑海量并发执行的架构前提。

必要条件:

  • 必须启用分布式锁rediszookeeper)。否则多个实例并发求值同一工作流会引发竞态。
  • 所有实例必须指向同一套数据库、队列与索引后端。
  • 负载均衡建议使用 round-robin 或 least-connections 策略。

可选:拆分 API 与 Worker 实例:

┌──────────────────┐ ┌──────────────────┐ │ API Instance 1 │ │ API Instance 2 │ ← 处理 REST/gRPC,系统任务线程低 │ (systemTask=0) │ │ (systemTask=0) │ └────────┬─────────┘ └────────┬─────────┘ │ │ ┌────┴────────────────────────┴────┐ │ Load Balancer │ └────┬────────────────────────┬────┘ │ │ ┌────────┴──────────┐ ┌───────┴───────────┐ │ Worker Instance │ │ Worker Instance │ ← 系统任务线程高,承载 sweeper │ (systemTask=40) │ │ (systemTask=40) │ └───────────────────┘ └───────────────────┘

该拆分正是上文"独立运行系统任务 Worker"小节中 execution namespace 机制的集群级应用:API 实例设置systemTaskWorkerExecutionNamespace=api-onlysystemTaskWorkerThreadCount=0,worker 实例设置匹配的 namespace 并放大线程数。

故障排查速查表

问题修复
内存不足或性能缓慢检查 JVM 堆占用,按需调整-Xms/-Xmx。用jstat/actuator/health监控。
Elasticsearch 停留在 yellow 状态设置conductor.elasticsearch.clusterHealthColor=yellow,或增加 ES 节点达到 green。
工作流卡在 RUNNING确认 sweeper 在运行且sweeperThreadCount > 0;确认锁提供方可达。
系统任务不执行确认systemTaskWorkerThreadCount > 0且队列后端可达。
配置改动不生效properties 在构建镜像时被打入 Docker 镜像。请改用挂载 volume 而不是重新构建镜像。

最后一条尤其值得注意:由于配置在镜像构建阶段固化,生产环境调整配置时推荐通过CONFIG_PROP+ volume 挂载方式覆盖(见上文"自定义配置注入"),而不是反复重建镜像。

结语

从组件架构看,Conductor 的生产部署本质上是把"数据库 + 队列 + 索引 + 锁"四个后端正确组合并调优;从运行方式看,standalone 镜像适合体验、Compose 组合适合快速验证、自定义挂载适合生产收敛配置;从可靠性看,分布式锁与 sweeper 线程数是多实例下工作流推进的命门。配合本仓库 docker/ 下的 compose 与 properties 模板,以及 ConductorProperties.java 中的默认值清单,即可对照本文逐项落地一套可监控、可扩展、可排障的生产部署。

【免费下载链接】conductorConductor is an event driven agentic workflow engine providing durable and highly resilient execution engine for applications and AI Agents项目地址: https://gitcode.com/GitHub_Trending/co/conductor

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 6:16:16

Claude Code 常用指令全解析:终端 AI 编程助手高效工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 6:16:03

context-mode:让AI听懂上下文的轻量级工程开关

1. “context-mode”到底是什么&#xff1f;别被术语唬住&#xff0c;它本质是让AI真正“听懂上下文”的工程化开关最近在多个技术社区和开发群聊里&#xff0c;“context-mode”这个词突然高频出现&#xff0c;尤其和MCP、SQLite、FTS5、BM25这些词绑在一起。很多人第一反应是…

作者头像 李华
网站建设 2026/9/11 6:16:02

Qt事件系统解析:从原理到实战应用

1. Qt Creator事件系统概述 在Qt框架中&#xff0c;事件系统是整个GUI应用程序运行的核心机制。作为第三版《Qt Creator快速入门》的第6章内容&#xff0c;事件系统章节通常会深入讲解Qt如何处理用户输入、系统消息和各种交互操作。不同于简单的信号槽机制&#xff0c;事件系统…

作者头像 李华
网站建设 2026/9/11 6:15:53

Vibe Kanban Remote 云端服务本地开发与自托管部署完全指南

Vibe Kanban Remote 云端服务本地开发与自托管部署完全指南 【免费下载链接】vibe-kanban Get 10X more out of Claude Code, Codex or any coding agent 项目地址: https://gitcode.com/GitHub_Trending/vi/vibe-kanban 本篇指南围绕开源仓库 Vibe Kanban 的 remote cr…

作者头像 李华
网站建设 2026/9/11 6:15:36

ARM架构VIPT缓存原理与性能优化实践

1. 虚拟地址与物理地址的基本概念在计算机系统中&#xff0c;虚拟地址和物理地址是内存管理的两个核心概念。虚拟地址是程序看到的地址空间&#xff0c;而物理地址则是实际硬件内存中的位置。现代操作系统通过内存管理单元(MMU)实现两者的转换&#xff0c;这个过程被称为地址转…

作者头像 李华
网站建设 2026/9/11 6:14:54

MATLAB柔性梁振动控制实战与DeepSeek文档解析

1. 柔性梁振动控制的MATLAB实现与DeepSeek文档解析 柔性梁结构在机械臂、航天器太阳能帆板等工程领域广泛应用&#xff0c;但其固有的低阻尼特性容易导致持续振动。我在参与某卫星天线展开机构项目时&#xff0c;就遇到过梁结构因微重力环境引发的振动持续30分钟无法衰减的问题…

作者头像 李华