GatewayWorker 使用总结

公司有 Im 项目,用的技术栈是 GatewayWorker,查看了文档和源码,简单做下总结。

GatewayWorker 是什么?

GatewayWorker基于 Workerman 开发的一个项目框架,用于快速开发TCP长连接应用,例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等。

GatewayWorker 与 Workerman 的关系?

GatewayWorker 是基于 Workerman 开发的,Workerman 是一个 socket 类库。有了 Workerman 才有 GatewayWorker 和 Webman, Webman 是一个框架。

GatewayWorker 包含什么?

一个三个进程,Register、Gateway、BusinessWorker 3个进程是平级的,不是传统的 master worker 父子进程关系。

流程图,阅读了 GatewayWorker 源码画的。

Workerman 核心实现原理是什么?

基于 PHP 的 stream_socket_server 创建的支持 TCP UDP Text Websocket 协议的函数,使用扩展 pcntl 和 posix 做进程通信,信号量。pack() 函数将数据打包成二进制字符串。使用函数 serialize() 序列号对象。

GatewayWorker 封装了操作数据库的类库

底层实现是用了 PDO 预处理对象。

分布式部署

都用内网部署,安全,可以全部在一台服务器部署,本地开发就是这样,生产环境推荐每个进程都是部署在一台服务器。

Register 一个就可以,Gateway 和 BusinessWorker 可以多个,业务代码都写在 BusinessWorker,性能瓶颈也在 BusinessWorker,流量大时加多几台服务器运行 BusinessWorker 就可以。

Gateway 推荐用 Nginx 做为前置的负载均衡,Gateway 不直接对外,防止被攻击。

相关推荐
程序视点30 分钟前
望言OCR 2025终极评测:免费版VS专业版全方位对比(含免费下载)
前端·后端·github
rannn_1111 小时前
Java学习|黑马笔记|Day23】网络编程、反射、动态代理
java·笔记·后端·学习
一杯科技拿铁1 小时前
Go 的时间包:理解单调时间与挂钟时间
开发语言·后端·golang
独泪了无痕1 小时前
Hutool之CollStreamUtil:集合流操作的神器
后端
陈随易1 小时前
AI新技术VideoTutor,幼儿园操作难度,一句话生成讲解视频
前端·后端·程序员
弥金2 小时前
LangChain基础
人工智能·后端
码事漫谈2 小时前
AI行业热点抓取和排序系统实现案例
后端
方圆想当图灵2 小时前
关于 Nacos 在 war 包部署应用关闭部分资源未释放的原因分析
后端
Lemon程序馆2 小时前
今天聊聊 Mysql 的那些“锁”事!
后端·mysql