本文介绍HAProxy 3.4.3的线程与调度机制。默认单进程多线程,每线程独立事件循环,连接固定由单线程服务。stick-table在线程间共享,但nbproc进程间不共享。thread-group和cpu-map用于优化CPU局部性。在poller线程中阻塞会导致该线程所有连接超时。与Nginx多进程和Envoy Main/Worker模型对比,HAProxy用共享内存换取粘性一致性,但需注意锁竞争和阻塞风险。
HAProxy的stick-table机制同时支持会话粘滞和跟踪计数,其记忆能力由键类型、大小、过期时间和存储列共同定义。表满和过期是显式失败模式,分别导致限流变松和粘滞丢失。nbthread共享表,而nbproc不共享,多进程下全局限流语义会破裂。Peers与reload继承用于对齐多节点决策状态,与FD交接不同。存储列与键空间对齐决定跨代理标记是否生效,热路径写共享表有性能成本。
完成下面两步后,将自动完成登录并继续当前操作。