Gearmand和PECL extension for Gearman版本不兼容的问题

今天跟人一起排查一个问题:

同一套worker代码,在旧服务器上执行正常,但是到了新的服务器上:worker起动后,运行正常,没有返回错误,但是server看不到注册的函数


最开始以为是网络不通或网络什么问题,但查了一圈,最后在gearmand的log中,发现了下面的错误:

FATAL [ 0] gearman_packet_unpack_header:invalid command value


结果是:

新服务器上的php gearman扩展是1.0.2版本,而gearmand server的版本是0.28,所以导致server无处理客户端的协议

php的gearman扩展是1.0.2,至少也要gearmand 0.33版本才能兼容


很低级的坑人错误,一开始也没怀疑两个worker服务器上的php扩展版本不同

你可能感兴趣的:(gearman)