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 不直接对外,防止被攻击。

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
damoluomu4 天前
挑 PHP CMS 之前,先学会看它的协议
php
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
大勇前进4 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu4 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile4 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白804 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端
二月龙4 天前
PHP 接口返回统一响应封装,让前后端对接更省心
后端