Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在副本集中,为什么主实例的连接数与mongodb中的次实例的连接数几乎相同?_Mongodb - Fatal编程技术网

在副本集中,为什么主实例的连接数与mongodb中的次实例的连接数几乎相同?

在副本集中,为什么主实例的连接数与mongodb中的次实例的连接数几乎相同?,mongodb,Mongodb,我有一个副本集,有1个主实例、2个辅助实例和1个仲裁器实例,其中主实例和辅助实例的连接数几乎相同。为什么连接在主服务器中较高,而它应该只有1,这是因为我们没有指向主服务器进行写操作的应用服务器。请让我们知道 默认情况下,应用程序将其读取操作定向到主应用程序 副本集中的成员。因为写入操作是向 单个主节点,从主节点读取返回最新版本的 文件 但在某些情况下,副本集中的两个节点可能会暂时认为它们是主节点,但最多其中一个节点将能够完成具有{w:majority}写关注点的写操作。能够完成{w:maist}

我有一个副本集,有1个主实例、2个辅助实例和1个仲裁器实例,其中主实例和辅助实例的连接数几乎相同。为什么连接在主服务器中较高,而它应该只有1,这是因为我们没有指向主服务器进行写操作的应用服务器。请让我们知道

默认情况下,应用程序将其读取操作定向到主应用程序 副本集中的成员。因为写入操作是向 单个主节点,从主节点读取返回最新版本的 文件

但在某些情况下,副本集中的两个节点可能会暂时认为它们是主节点,但最多其中一个节点将能够完成具有{w:majority}写关注点的写操作。能够完成{w:maist}写入的节点是当前主节点,而另一个节点是尚未识别其降级的前主节点,通常是由于网络分区。发生这种情况时,连接到前一个主服务器的客户端可能会观察到陈旧数据,尽管已请求读取首选项主服务器

对于不需要完全最新数据的应用程序,可以通过将部分或全部读取分发到副本集的辅助成员来提高读取吞吐量或减少延迟

因此,读取首选项描述MongoDB客户端如何将读取操作路由到副本集的成员

在mongoDB中,有5种读取首选项模式

  • primary
    默认模式。从当前复制副本读取的所有操作 设置主
  • primaryPreferred
    在大多数情况下,操作读取 从主服务器读取操作,但如果不可用,则从 次要成员
  • secondary
    从 副本集的辅助成员
  • secondary首选
    在大多数情况下 情况、从辅助成员读取的操作,但如果没有 辅助成员可用,操作从主成员读取
  • 最近的
    操作从具有 最小网络延迟,与成员类型无关
  • 如何使用-

    db.collection.find()

    更多@

    还可以对Mongo连接对象调用setReadPref()方法,以控制客户端如何将所有查询路由到副本集的成员

    ex-
    db.getMongo().setReadPref('primaryPreferred')

    更多@

    默认情况下,应用程序将其读取操作定向到主应用程序 副本集中的成员。因为写入操作是向 单个主节点,从主节点读取返回最新版本的 文件

    但在某些情况下,副本集中的两个节点可能会暂时认为它们是主节点,但最多其中一个节点将能够完成具有{w:majority}写关注点的写操作。能够完成{w:maist}写入的节点是当前主节点,而另一个节点是尚未识别其降级的前主节点,通常是由于网络分区。发生这种情况时,连接到前一个主服务器的客户端可能会观察到陈旧数据,尽管已请求读取首选项主服务器

    对于不需要完全最新数据的应用程序,可以通过将部分或全部读取分发到副本集的辅助成员来提高读取吞吐量或减少延迟

    因此,读取首选项描述MongoDB客户端如何将读取操作路由到副本集的成员

    在mongoDB中,有5种读取首选项模式

  • primary
    默认模式。从当前复制副本读取的所有操作 设置主
  • primaryPreferred
    在大多数情况下,操作读取 从主服务器读取操作,但如果不可用,则从 次要成员
  • secondary
    从 副本集的辅助成员
  • secondary首选
    在大多数情况下 情况、从辅助成员读取的操作,但如果没有 辅助成员可用,操作从主成员读取
  • 最近的
    操作从具有 最小网络延迟,与成员类型无关
  • 如何使用-

    db.collection.find()

    更多@

    还可以对Mongo连接对象调用setReadPref()方法,以控制客户端如何将所有查询路由到副本集的成员

    ex-
    db.getMongo().setReadPref('primaryPreferred')


    还有,"你的问题是什么?"?这一部分有点不清楚“为什么连接在主服务器中较高,而它应该只有1,因为我们没有指向主服务器进行写操作的app server。”@Martin,我们在副本集中将读取操作设置为次实例,我们在代码级别进行了设置,但我想知道为什么连接到主设备的数量也在不断增加,而读取操作只在辅助设备上发生(辅助设备上的连接也在增加),而主设备上的写入操作却很少。你的问题是什么?这一部分有点不清楚“为什么连接在主服务器中较高,而它应该只有1,因为我们没有指向主服务器进行写操作的app server。”@Martin,我们在副本集中将读取操作设置为次实例,我们在代码级别进行了设置,但我想知道为什么主节点的连接数也在不断增加,而读取操作只在辅助节点上发生(辅助节点的连接也在增加),而主节点上的写入操作却很少。我知道,我们可以在副本集中将读取操作设置为辅助节点,我们在代码级别上做到了这一点