在好几月前,我们小组就因为Connection reset by pear的问题纠结了好几个星期,最后不了了之,但是知道现在也没出现。
但是在最近,有新的小组使用了我们的模块,通过Thrift连接调用,就出现了这个问题。
我分析发现,极有可能是因为连接数过多,导致Thrift服务处理,然后Thrift就拒绝了后续的连接进入。
因为我们的Thrift服务是单连接,不允许并发。但是别人在使用的时候,操作过多,导致并发数量太多而无法及时处理,所以堆积了不少连接。然后在某些应用进行连接的时候就出现了Connection reset by pear。还有不少了解就处于排队等待的状态。
但是现在还没有出来一个有效的解决方案,如果把Thrift修改为多连接,允许并发的情况,那么上锁就是一件很困难的事情,因为有其他小组尝试过Thrift多连接上锁,但是上锁无效,没办法锁到要锁的东西。所以我们放弃了这个方案。