主要几项配置如下
'hostname' => '10.10.10.196,10.10.10.198,10.10.10.199',
'deploy' => 1,
'rw_separate' => true,
当rw_separate为true时,写操作时每次都自动连接10.10.10.196这个服务器;
而replicaSet方式集群特点是,当10.10.10.196主机宕机时,集群会自动选举其他从服务器做为主服务器;可是这样一来写操作就没法执行了,因为thinkPHP5提供的连接方式,没办法自己实现主服务器的切换;
当rw_separate为false时,完全没有主次服务器之分,读和写操作都是这几台服务器随机切换;这样一来,做写操作时如果连接的是从服务器,就会导致报错:not master
我用的是thinkPHP5.0.2 + think-mongo,希望官方能给出解决方案,并在后续版本中解决此问题;
最佳答案
