Rails - MongoDB副本集问题

时间:2013-04-26 11:16:34

标签: ruby-on-rails-3 mongodb mongoid database-replication failover

我正在本地环境中对mongodb进行故障转移测试。我有两个mongo服务器(hostname1,hostname2)和一个仲裁服务器。

我的mongoid.yml文件中有以下配置

localhost:
  hosts:
  - - hostname1
    - 27017
  - - hostname2
    - 27017
  database: myApp_development
  read: :primary
  use_activesupport_time_zone: true

现在,当我启动rails应用程序时,一切正常,数据从主(hostname1)读取。然后我终止了主要(hostname1)的mongo进程,因此辅助(hostname2)成为主要进程并开始提供数据。

然后在一段时间后我启动了hostname1的mongo进程,然后它成为副本集中的辅助进程。 现在主要(hostname2)和辅助(hostname1)正常工作。

真正的问题从这里开始。

我终止了我的新主服务器(hostname2)的mongo进程,但是这次,辅助服务器(hostname1)没有成为主服务器,并且对rails应用程序的任何进一步请求都会引发以下错误

Cannot connect to a replica set using seeds hostname2

请帮忙。提前谢谢。

**更新:**

我在mongo repl_connection类中输入了一些记录器,并遇到了这个。

当我启动rails应用程序时,我在种子数组中有两个主机,即mongo驱动程序跟踪。但在第二次故障转移期间,只有发生故障的主机出现在此阵列中。

因此,我也想知道其中一个主机是如何以及何时从种子列表中删除的。

0 个答案:

没有答案