bwin娱乐官网pm2 cluster启动node,同一请求接收多次。

2016/12 18 13:12
此文章不得转载,如有需要请联系网站管理员。

一度的温暖,一百度的爱情,来自于bwin娱乐官网平台下载的点点滴滴

有个困惑。
小弟用pm2的cluster模式启动node 作为webserver。因为服务器是24核的,所以有24个进程。

以下是截取的一些http请求日志。明显看到同一个请求被log了3次。

[2014-08-18 11:06:04.579] [INFO] stockHero – 122.195.242.228 – – “POST /api/v1/user/order/140442/cancel HTTP/1.1” 200 2 “”
[2014-08-18 11:06:04.581] [INFO] stockHero – 122.195.242.228 – – “POST /api/v1/user/order/140442/cancel HTTP/1.1” 200 2 “”
[2014-08-18 11:06:04.581] [INFO] stockHero – 111.175.188.197 – – “POST /api/v1/user/order/143183/cancel HTTP/1.1” 200 2 “”
[2014-08-18 11:06:04.582] [INFO] stockHero – 122.195.242.228 – – “POST /api/v1/user/order/140442/cancel HTTP/1.1” 200 2 “”


[2014-08-18 11:06:04.726] [INFO] stockHero – 223.104.6.11 – – “POST /api/v1/stock/sh600667/buy HTTP/1.1” 200 470 “”
[2014-08-18 11:06:04.731] [INFO] stockHero – 223.104.6.11 – – “POST /api/v1/stock/sh600667/buy HTTP/1.1” 200 470 “”

这个接口执行的是一个mysql事务(事务逻辑是在nodejs里面写的)。按道理是只能执行一次,先到先得。但这个确可以执行多次,所以导致数据逻辑出错。
我自己这边无论如何模拟,也不能重现这个问题。所以感到很疑惑。

这是我自己尝试同时发送3个请求的结果。明显其他两个是rollback的。尝试过锁表进行测试,然后再unlock,结果也是一样。

而这种情况是偶尔发生的。大概千分一的机会吧。所以一直定位不出问题所在。哪位大牛愿意指点下呢,十分感谢!

pm2版本和node版本提供下,被log多次应该和启动多进程没有关系。pm2的集群只支持V.11及以上版本。以下不支持。

有类似的问题出现,一次请求在4个进程的情况下就会查询4次数据库,响应4次,导致服务器挂了,这是什么原因?

同问,使用schedule模块时,几个进程会重复执行几次

怎么解决的 ?

(看完/读完)这篇文章有何感想! 来看看bwin娱乐官网平台下载是怎么评论的吧!

--转载请注明: bwin娱乐官网_bwin娱乐官网平台_bwin娱乐官网平台下载 » bwin娱乐官网pm2 cluster启动node,同一请求接收多次。

发表评论

(必填)