跳转到内容

Process Host

Process Host 使用工作窃取调度器管理 Lua 进程执行。

每个 host 独立调度进程。负载不会在 host 之间自动分配。
Kind描述
process.host带调度器的进程执行 host
- name: main_host
kind: process.host
host:
workers: 8
queue_size: 1024
local_queue_size: 256
lifecycle:
auto_start: true
字段类型默认值描述
workersintNumCPUWorker goroutine 数量
queue_sizeint1024全局队列容量
local_queue_sizeint256每个 worker 的本地队列大小

调度器使用工作窃取机制:每个 worker 有一个本地双端队列,空闲的 worker 从全局队列或其他 worker 窃取任务。这会自动平衡负载。

  • Workers 并发执行进程
  • 全局队列 在所有 worker 繁忙时保存待处理的进程
  • 本地队列 通过将工作保持在 worker 附近来减少竞争

Process Host 执行以下类型的 entry:

Kind描述
process.lua基于源码的 Lua 进程
process.lua.bc预编译的 Lua 字节码
process.wasmWebAssembly 进程(实验性)

进程独立运行,拥有自己的上下文,通过消息通信,并受监督以实现容错。