我使用了mongodb的复制集,报错remote connect close
Yii2中我更改下了配置如下:
'mongodb_erp' => [
'class' => 'yii\mongodb\Connection',
'dsn' => 'mongodb://192.168.220.105:27017/erp,192.168.220.106:27017/erp?replicaSet=rs0&readPreference=secondaryPreferred', # primaryPreferred | secondaryPreferred
'options' => [
'socketTimeoutMS' => 300000, # 设置超时时间
'connectTimeoutMS'=> 600000, # 设置连接超时时间
],
],
将读改成副本读优先,对于读的优先级的设置解释如下:
/**
const string RP_PRIMARY = "primary" ; # 始终用主读
const string RP_PRIMARY_PREFERRED = "primaryPreferred" ; # 主读优先
const string RP_SECONDARY = "secondary" ; # 始终用副本读
const string RP_SECONDARY_PREFERRED = "secondaryPreferred" ;# 副本读优先
const string RP_NEAREST = "nearest" ; # 主和副本随机读
*/
另外,长连接可能存在失效问题,在连接mongodb的时候,需要循环一下:
Yii2 随机发生 php mongo报错:’Failed to connect to: XXXXX: Remote server has closed the connection’的解决方法