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

相关推荐
SuperherRo5 分钟前
WEB攻防-文件包含&LFI&RFI&伪协议编码算法&无文件利用&黑白盒
php·文件包含·伪协议·lfi·无文件·黑白盒·rfi
Piper蛋窝4 小时前
深入 Go 语言垃圾回收:从原理到内建类型 Slice、Map 的陷阱以及为何需要 strings.Builder
后端·go
六毛的毛6 小时前
Springboot开发常见注解一览
java·spring boot·后端
AntBlack6 小时前
拖了五个月 ,不当韭菜体验版算是正式发布了
前端·后端·python
31535669136 小时前
一个简单的脚本,让pdf开启夜间模式
前端·后端
uzong6 小时前
curl案例讲解
后端
一只叫煤球的猫7 小时前
真实事故复盘:Redis分布式锁居然失效了?公司十年老程序员踩的坑
java·redis·后端
大鸡腿同学8 小时前
身弱武修法:玄之又玄,奇妙之门
后端
轻语呢喃10 小时前
JavaScript :字符串模板——优雅编程的基石
前端·javascript·后端
用户Taobaoapi201410 小时前
Taobao agent USA丨美国淘宝代购1688代采集运系统搭建指南
数据挖掘·php