webman/workerman的协程基建套件及分享

前言 这段时间本身比较忙,也很少在关注技术相关的点,上个月空了刚好有时间看看群里,结果发现大家在讨论协程以及webman/workerman的劣势-阻塞退化问题,本来说是稍稍提两下实现方向,结果一来二去直接弄了一个插件出来,经过反反复复修改,最后发布了webman-coroutine插件 现状 workerman/webman的阻塞退化问题 workerman是标准的master/worker多进程模型,master...

chaz6chez 发表与 2024-10-08 2163 浏览 28 评论
进程、线程、协程等分享

前言 目前我是一名Golang/Python开发工程师,之前是主要使用PHP进行开发的传统web后端工程师,后面因为工作原因开始接触并使用Python和Golang来做一些开发工作,涉及到数据分析数仓建设相关及部分游戏相关的开发;也因为工作原因接触到了很多其他语言的特性或者是其他语言团体推崇的技术方向方案。 我非常喜欢PHP,生活中工作中几乎是能用PHP解决的都尽可能使用PHP,同时也很推崇PHP-cli的开发模式,...

chaz6chez 发表与 2023-12-26 3266 浏览 12 评论
高速共享缓存插件分享

前言 今年接触了一个策略类手游相关的项目,后端本身计划是使用skynet进行开发的,后来结合项目的时间紧急程度和客户端开发组讨论后决定使用PHP进行快速开发,后期再使用其他语言框架进行拆分业务;综合考虑最后选用了webman作为主要开发框架。 整体项目分为配置服务、http-api服务、websocket服务三大部分,其中配置管理主要是兼容客户端生成的配置数据进行导入导出转换加载,底层使用MySQL进行储存,多服务间...

chaz6chez 发表与 2023-11-19 2746 浏览 11 评论
为webman增加长轮询响应的支持

增加一个LongPollingResponse类,继承support\Response namespace support; use Respect\Validation\Rules\Time; use Workerman\Timer; /** * Class LongPollingResponse * @package support */ class LongPollingResponse ext...

chaz6chez 发表与 2023-08-19 1132 浏览 0 评论
无聊撸了一个多进程助手组件【workbunny/process】

workbunny/process 我在做非常轻量的任务调度服务的时候刚好顺带撸了一下PHP多进程相关的内容,总共写了不到300行代码,能够帮助理解workerman是如何进行多进程处理的; 已经做了一些测试用例,把基本上常规的操作都覆盖了,随后还会补充更多的测试做覆盖; 另外说一下,这玩意儿其实可以用在workerman/webman里,当然这种操作比较骚(不建议,毕竟这是进程不是线程); 可以进行进程的嵌套for...

chaz6chez 发表与 2022-06-20 2064 浏览 1 评论
event-loop的一些心得体会

🐇 最新更新于2020-06-02 前言 最早接触reactor模型的时候,应该是在参与一个叫zanphp项目的时候,他是一个类似swoole的php拓展项目,当然它们之间的故事我就不多说了,也有一些冲突和迷茫;在那个时间段的PHP发展还是很蓬勃向上的,那时候的滴滴、有赞、百度都有很多很多PHP项目,那时候的原生PHP有许多许多的瓶颈,所以国内那时候涌现了很多使用C来为PHP加速的开发者。 随着PHP慢慢发展,P...

chaz6chez 发表与 2022-05-28 5563 浏览 7 评论
趣谈程序演变的过程

前言 我是一名后端开发工程师,目前从事后端开发有8年的经验,主要以PHP开发为主,期间有1年时间使用C语言进行PHP拓展的开发工作, 工作主要围绕辅助线程及有栈协程调度器;还有2年主要使用Golang做一些基础服务。 这篇文章我会用一些通俗的话来描述一些我所了解的程序的一些点,如 异步、同步、阻塞、非阻塞等;当然,我的经验不算丰富也可能有些理解错误的地方, 也希望能够指正我描述有错误的部分。 程序出生了 程序最开始就...

chaz6chez 发表与 2022-05-19 4654 浏览 10 评论
Nacos在我司的应用及SOA初尝

前言 我目前所在的部门主要是负责公司的数据相关的内容,可以理解为数据统计,做的工作其实也比较复杂,除了做一些数据统计分析业务之外,需要做一些基础服务的开发;我部门因为内部开发语言并不统一,在这种情况下,项目被动的分成了A\B\C\D等子项目,并没有将项目合并到一个项目中开发,在这种过程中,被动的接受了SOA这样的结构。 A项目是一个任务的调度分配服务,可以理解为一个大型的脚本/定时执行器,有点类似与现在比较流行的se...

chaz6chez 发表与 2022-05-13 7218 浏览 16 评论
关于workerman/webman项目的建议

webman刚出来的时候我阅读过webman的代码,也阅读过其他框架的代码,然后我自己撸了一个框架casualman,最早单纯只是为了玩,后面我把他运用在了公司部分项目的生产环境,已经稳定运行了半年以上了。 在这个过程中,结合我自己的一些个人习惯和我看到的其他框架的一些好的地方,我发现webman的代码在一些地方可以被建议: 入口文件start.php比较凌乱臃肿 其实本着可以用就没问题的思路,我觉得代码写成什么样,...

chaz6chez 发表与 2022-01-04 2533 浏览 1 评论
分享一个多功能的验证器,可以对数据进行转换、验证、过滤

这个项目由来很久了,大概至少有6年的历史,最早我工作的时候接触的一个项目叫struct,他可以把数组映射到对象属性上进行数据类型内容等判断或者过滤,也可以进行转换,也可以自行注册handle进行过滤、判断;后来我把这个项目重构了一下,适用在常驻内存的环境下,同时,这个项目也是我用在生产环境中的一个项目; 这个项目有点像残疾的注解,不过我觉得用起来还挺好的,所以推荐给大家 测试覆盖率应该超过了80%,常用的几种方案都是...

chaz6chez 发表与 2022-01-03 2214 浏览 5 评论
关于workerman/rabbitmq项目的建议

我在使用该项目过程中,曾出现过timer无限制递增的情况,也出现过服务端主动踢出连接无法消费等问题,遂自己重写了一个amqp客户端; 后来我回过头观察分析workerman/rabbitmq源码的时候,发现了一些可以被建议的地方: 源码在如下位置会反复创建定时器 Client.php 160 - 170 行位置已经创建了一个持续的定时器 })->then(function () { ...

chaz6chez 发表与 2021-12-30 2284 浏览 1 评论

chaz6chez

4634
积分
0
获赞数
0
粉丝数
2018-11-16 加入
×
🔝