借Gearman简要说明系统可用性问题

上篇提到PHP通过Gearman扩展调用worker时造成的PHP进程死锁问题(同步模式),今天简单总结下与该问题以及Gearman原理相关的一些东西。

正好最近在学车,就用生活中驾考的实际例子来说明吧。


考试的基本流程是:学员先申请,看当前是否有考试名额,报名成功则到驾考中心参加考试,上车前先在驾考中心的候考厅排队,当轮到自己的时候上车进行考试。

与Gearman的原理相对应的如下图所示:


假设有6个考试名额(php-cgi进程)、3辆考试车辆(worker进程);

有2个学员前来报名参加考试(向PHP服务器发起了两个HTTP请求);

此时为理想的正常情况,资源充足,啥都别说了,直接上车吧,妥妥的~


————————————————— 休息一哈 —————————————————————


话说那俩人正在车上不慌不忙倒桩呢,突然又有3个学员以迅雷不及掩耳到铃儿响叮当之势前来报名参加考试:

厄……不错,名额还有,走着!

ABC三人来到驾考中心一看,还有一个车空闲,甲当即冲到了前面;

木办法啊,BC二人只好乖乖在侯考大厅排队等着

此时对于请求者来说相当于挂起状态,系统开始出现延迟等现象,需要及时考虑解决方案:

如果worker的逻辑耗时太离谱,那就得赶紧查找原因,减少耗时;

如果worker耗时正常,那说明处理能力不足,赶紧增加worker吧。


————————————————— 休息一哈 —————————————————————


都说中国人干嘛都爱扎堆,这不,见大家都去考试了,DEF也坐不住了:


可是名额就还剩1个,被D抢先了一步,D也到侯考大厅排队等上车了;

喏,EF只能一人吃了个502 Bad Gateway的闭门羹(注:图中504为笔误,下同);

此时如果还不解决worker瓶颈的问题,那么一段时间后请求会将前端client占用完,这时系统就不仅仅是访问缓慢了,一些用户已经开始出现502错误的页面。


————————————————— 另外的情况 —————————————————————


一般来说都是client数量多于worker,但如果worker富裕client紧张呢?


很明显,瓶颈直接卡在源头,worker再多也木有用。

果断增加client吧~


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值