librelist archives

« back to archive

对mongrel2的机制的误解

对mongrel2的机制的误解

From:
feng
Date:
2012-11-19 @ 15:22
上一封邮件提到的mongrel2的conn_id串的问题和解决方案似乎是可行的,今天关于mongrel2的修改基本上也证实了这一点,但是结合今天对代码的理解,这种解决方案很可能是对mongrel2的lazy机制的误解。
mongrel2采用了一种机制,当连接建立时,注册连接,当连接断开时,注销连接,仅当后端(bamboo)使用了已注销的连接时,才通知后端,该连接已经断开了。

1.id的问题:conn_id是一个32位的整数,这点是很清楚的,所以是不可能重的。
2.register实体是665350.所以,在665350的范围内是不会有任何的问题的。


结合上次观察到的,conn_id到了6万多就回到1这一点,有理由认为是在此时,mongrel2崩溃并重启,导致了数据库中的conn_id和mongrel中的id错位,从而导致消息串了