(mongodb >=1.0.0)
MongoDB\Driver\ReadPreference::__construct — Создать новый ReadPreference
$mode
[, array $tagSets
= NULL
[, array $options
= array()
]] )Создает новый MongoDB\Driver\ReadPreference, который является неизменяемым объектом значения.
mode
Значение | Описание |
---|---|
MongoDB\Driver\ReadPreference::RP_PRIMARY or "primary" |
Все операции считывается из текущего первичного узла набора реплик. Это предпочтение чтения по умолчанию для MongoDB. |
MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED or "primaryPreferred" |
В большинстве ситуаций операции считываются из первичного узла, но если он недоступен, операции считываются из вторичных узлов. |
MongoDB\Driver\ReadPreference::RP_SECONDARY или "secondary" |
Все операции считываются из вторичных узлов набора реплик. |
MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED или "secondaryPreferred" |
В большинстве ситуаций операции считываются из вторичных членов, но если вторичные члены недоступны, операции считываются из первичного узла. |
MongoDB\Driver\ReadPreference::RP_NEAREST or "nearest" |
Операции считываются из члена набора репилк с наименьшей задержкой сети, независимо от типа члена. |
tagSets
Наборы тегов позволяют настраивать операции чтения для определенных членов набора реплик. Этот параметр должен быть массивом ассоциативных массивов, каждый из которых содержит ноль или несколько пар ключ-значение. При выборе сервера для операции чтения драйвер пытается выбрать узел, имеющий все теги в наборе (т.е. ассоциативный массив пар ключ-значение). Если выбор не удался, the driver will attempt subsequent sets. Пустой набор тегов (array()) будет соответствовать любому узлу и может использоваться как резервный.
Теги не совместимы с режимом
MongoDB\Driver\ReadPreference::RP_PRIMARY
, и,
как правило, применяется только при выборе вторичного члена набора для
операции чтения. Однако режим
MongoDB\Driver\ReadPreference::RP_NEAREST
в сочетании
с набором тегов, выбирает соответствующий член с наименьшей задержкой сети.
Этот член может быть первичным или вторичным.
options
Опция | Тип | Описание |
---|---|---|
maxStalenessSeconds | integer |
Определяет максимальное отставание репликации или "staleness", для чтения из вторичных узлов. Когда оцениваемая staleness вторичных узлов превышает это значение, драйвер прекращает использовать ее для операций чтения.
Если указано, максимальный staleness должен быть 32-битным числом без знака,
большим или равным
По умолчанию используется
Этот параметр несовместим с режимом
|
mode
бросает MongoDB\Driver\Exception\InvalidArgumentExceptiontagSets
предоставляется как первичное предпочтение чтения или имеет неправильный формат (т.е. не массив из нуля или более документов) бросает MongoDB\Driver\Exception\InvalidArgumentException.
Версия | Описание |
---|---|
1.3.0 |
Аргумент |
1.2.0 |
Добавлен третий аргумент |
Пример #1 Пример выполнения MongoDB\Driver\ReadPreference::__construct()
<?php
/* Prefer a secondary node but fall back to a primary. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED));
/* Prefer a node in the New York data center with lowest latency. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST, [['dc' => 'ny']]));
/* Require a secondary node whose replication lag is within two minutes of the primary */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['maxStalenessSeconds' => 120]));
?>
Результат выполнения данного примера:
object(MongoDB\Driver\ReadPreference)#1 (1) { ["mode"]=> string(18) "secondaryPreferred" } object(MongoDB\Driver\ReadPreference)#1 (2) { ["mode"]=> string(7) "nearest" ["tags"]=> array(1) { [0]=> object(stdClass)#2 (1) { ["dc"]=> string(2) "ny" } } } object(MongoDB\Driver\ReadPreference)#1 (2) { ["mode"]=> string(9) "secondary" ["maxStalenessSeconds"]=> int(120) }