Workerman4 使用 GatewayWorker,gateway 进程与 businessWorker 分工原理

大雪小哥_9455

大雪小哥_9455

2026-10-06

903人浏览

原创

workerman 4 中 gatewayworker 的 gateway 与 businessworker 是通过 register 协调通信的对等节点,非主从关系:gateway 专注长连接管理与数据透传,不执行业务逻辑;businessworker 专注业务处理,不感知客户端网络状态;register 仅负责地址注册与广播,实现两者解耦部署与独立扩展。

workerman4 使用 gatewayworker,gateway 进程与 businessworker 分工原理

Workerman 4 中使用 GatewayWorker 时,gateway 进程和businessWorker 进程是严格分工、彼此解耦的两个角色,不是主从关系,而是通过 register 进程协调通信的对等节点。

gateway 进程只做网络层的事

它面向客户端,专注维持海量长连接(WebSocket/TCP),不执行任何业务逻辑:

  • 接收客户端发来的原始数据包,不做解析也不处理业务含义
  • 将收到的数据原样转发给 businessWorker,附带 $client_id 和 $gateway_client_id 标识
  • 负责心跳保活、超时踢出、连接断开通知等连接生命周期管理
  • 把 businessWorker 返回的消息,按 $client_id 准确投递给对应客户端
  • 自身不加载业务代码,不查数据库、不调 API、不序列化 JSON

businessWorker 进程只跑业务逻辑

它面向 gateway,完全不知道客户端真实网络状态,只认 gateway 发来的结构化消息:

Openclaw Gateway Guardian
Openclaw Gateway Guardian

OpenClaw网关守护 - 自动监控、保护与重启OpenClaw网关服务,防止网关停止、崩溃或消失。

下载
  • 默认执行 Events.php 中的 onConnect、onMessage、onClose
  • 收到消息后做登录校验、群组管理、消息存库、权限判断等具体操作
  • 调用 Gateway::sendToClient()、Gateway::sendToGroup() 等接口下发响应,但这些调用实际由 gateway 进程完成
  • 所有 PHP 执行都在它内部发生,CPU 和内存消耗集中在此
  • 若某次处理耗时过长(如数据库慢查询),只会阻塞当前 businessWorker 进程,不影响 gateway 接收新连接

两者靠 register 进程建立通信链路

register 不参与数据流转,仅作地址注册与广播中枢:

  • gateway 启动后,向 register 报告自己的内网地址(如 192.168.1.10:2000)
  • businessWorker 启动后,向 register 请求所有 gateway 地址列表
  • register 将当前全部 gateway 地址一次性发给 businessWorker,后者主动与其建立长连接
  • 后续 gateway 上下线时,register 广播更新后的地址列表,businessWorker 动态增删连接
  • 因此 gateway 和 businessWorker 可部署在不同机器,只要能连通 register 即可

这种分工带来的实际好处

分离之后,系统具备清晰的横向扩展能力:

  • 高并发连接场景:增加 gateway 进程数,提升接入能力,不增加 CPU 压力
  • 复杂业务处理场景:增加 businessWorker 进程数,提升计算吞吐,不占用连接资源
  • 故障隔离:gateway 崩溃不影响业务逻辑执行上下文;businessWorker 崩溃不会导致客户端掉线
  • 资源优化:可将 gateway 部署在带宽充足、CPU 较弱的机器上;businessWorker 部署在 CPU 密集型服务器上

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

2026.05.20

166

15

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

2026.05.20

202

12

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

2026.05.20

187

13

Hyperf协程并发编程实操指南
Hyperf协程并发编程实操指南

本专题深度解析 Hyperf 协程底层机制,解决协程环境下全局变量污染、Context 上下文丢失等核心痛点,提供规范化的 PHP 高并发编程实战代码建议。

2026.05.19

180

15

深入理解Hyperf AOP切面与注解使用
深入理解Hyperf AOP切面与注解使用

详尽介绍 Hyperf 依赖注入容器与 AOP 面向切面编程的使用技巧,包含自定义注解开发流程及注解不生效的排查方案,助力开发者掌握框架核心架构。

2026.05.19

444

16

Hyperf 数据库操作与连接池优化方案
Hyperf 数据库操作与连接池优化方案

针对 Hyperf Eloquent 模型在大数据量下的表现进行深度优化,讲解连接池断线重连、超时设置及事务处理等生产环境常见技术疑难。

2026.05.19

204

15

基于 Hyperf 的微服务架构集成实战
基于 Hyperf 的微服务架构集成实战

本专题涵盖 Hyperf 微服务全栈解决方案,包括服务注册与发现、配置中心集成、JsonRPC 调用以及分布式限流熔断的落地实践。

2026.05.19

256

18

Hyperf 高并发缓存与分布式系统应用
Hyperf 高并发缓存与分布式系统应用

讲解在协程模式下如何高效操作 Redis,实现高性能分布式锁、处理缓存击穿/雪崩问题,并提供基于 Hyperf 的分布式事务处理思路。

2026.05.19

448

15

Hyperf 项目部署运维与性能调优手册
Hyperf 项目部署运维与性能调优手册

聚焦 Hyperf 在生产环境的落地,包含 Docker 高效打包、Swoole 配置优化、常见的内存溢出(OOM)问题排查方法以及热更新方案。

2026.05.19

405

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman中文手册
Webman中文手册

共0课时 | 0人学习

Workerman官方手册
Workerman官方手册

共0课时 | 0人学习

ThinkPHP5.1完全开发手册
ThinkPHP5.1完全开发手册

共0课时 | 0人学习