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

相关推荐
鶴哥只手遮天8 小时前
Spring Boot 4.1.1 深度源码解析-第 02 章 · 构建体系深潜:Gradle 约定插件、自动配置的编译期校验与依赖治理
java·后端·开源
鶴哥只手遮天8 小时前
Spring Boot 4.1.1 深度源码解析-第 04 章 · `SpringApplication` 全景:`run()` 的十二步状态机
java·后端·开源
鱼宵8 小时前
支付网关收官:Spring Boot 里,策略、模板方法、观察者怎么一起干活
spring boot·后端·面试
鶴哥只手遮天8 小时前
Spring Boot 4.1.1 深度源码解析-第 01 章 · Spring Boot 4 的坐标系:版本矩阵、模块拓扑与源码阅读方法论
java·后端·开源
云和数据.ChenGuang8 小时前
Golang AI 工程师路线图:从入门到实战
开发语言·人工智能·后端·golang
高频因子挖掘机8 小时前
分钟线跨午休后时间轴不连续,是数据错了还是 A 股交易时段本来如此?
后端·github·api
sejinan9 小时前
新版!IPTV直播源列表 V1.7 正式发布:接口大厅与会员定制生态解读
开发语言·php
雪宫街道9 小时前
SpringBoot - POI实现Excel 导入与导出
spring boot·后端·excel
打工仔折腾 AI9 小时前
让时序预测真正参与决策:TimechoAI 工程化落地与管线设计实践
人工智能·后端·python·算法·机器学习·性能优化
CarIise9 小时前
Spring MVC入门与执行流程
后端