Módulo: Mongo::Cluster::Topología
- Ampliado por:
- Topología
- Incluido en:
- Topología
- Definido en:
- lib/mongo/cluster/topology.rb,
lib/mongo/cluster/topology.rb,
lib/mongo/cluster/topology/base.rb,
lib/mongo/cluster/topology/single.rb,
lib/mongo/cluster/topology/sharded.rb,
lib/mongo/cluster/topology/unknown.rb,
lib/mongo/cluster/topology/load_balanced.rb,
lib/mongo/cluster/topology/no_replica_set_options.rb,
lib/mongo/cluster/topology/replica_set_no_primary.rb,
lib/mongo/cluster/topology/replica_set_with_primary.rb
Overview
Define el comportamiento para obtener servidores.
Las topologías se asocian con sus clústeres; por ejemplo, una topología ReplicaSet contiene el nombre del conjunto de réplicas. Por lo tanto, un objeto de topología no puede utilizarse con varios objetos de clúster.
Al mismo tiempo, los objetos de topología desconocen los servidores específicos de un clúster, a pesar de lo que su constructor pueda sugerir. Esto significa, en particular, que los eventos de cambio de topología requieren que la aplicación mantenga referencias del clúster por sí misma si desea rastrear los cambios en los servidores dentro de un conjunto de réplicas.
Definido en el espacio de nombres
Modules: NoReplicaSetOptions Clases: Base, LoadBalanced, ReplicaSetNoPrimary, ReplicaSetWithPrimary, Fragmentado, Único, Desconocido
Colapso delresumen constante
- OPCIONES =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Las distintas topologías para la selección de servidores.
{ directo: Single, carga_equilibrada: Balance de carga, conjunto_de_réplicas: Conjunto de réplicas no primario, fragmentado: Fragmentado, }.freeze
Colapso del resumen del método de instancia
-
#inicial(clúster, monitoreo, opciones) ⇒ ReplicaSet,...
privada
Obtenga la topología del clúster inicial para las opciones proporcionadas.
Detalles del método de instancia
#inicial(clúster, monitoreo, opciones) ⇒ ReplicaSet,...
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Obtenga la topología del clúster inicial para las opciones proporcionadas.
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# Archivo 'lib/mongo/cluster/topology.rb', línea 90 def inicial(clúster, vigilancia, ) Conectar = [:conectar]&.a_sym cls = Si [:conexión directa] Si Conectar && Conectar != :directo propagar ArgumentError, "Opciones de topología en conflicto: direct_connection=true y connect=#{connect}" end Si [:balanceo de carga] propagar ArgumentError, "Opcionesde topología en conflicto: direct_connection=true yload_balanced=true" end Single elsif [:conexión directa] == false && Conectar && Conectar == :directo propagar ArgumentError, "Opcionesde topología en conflicto: direct_connection=false y connect=#{connect }" elsif Conectar && Conectar != :balanceo de carga Si [:balanceo de carga] propagar ArgumentError, "Opcionesde topología en conflicto: connect=#{[:connect ].inspect} y load_balanced=true" end opciones.Fetch([:conectar].a_sym) elsif .key?(:conjunto de réplicas) || .key?(:nombre_del_conjunto_de_réplicas) Si [:balanceo de carga] propagar ArgumentError, "Opcionesde topología en conflicto: replica_set/replica_set_name yload_balanced=true" end Conjunto de réplicas no primario elsif [:balanceo de carga] || Conectar == :balanceo de carga Balance de carga else Desconocido end # Las opciones aquí son opciones de cliente/clúster/servidor. # En particular, la clave del nombre del set de réplicas es diferente para # topology. # Si se proporciona replica_set_name (como podría hacerse internamente por el controlador), # use esa clave. # De lo contrario (por ejemplo, opciones transmitidas desde el cliente), # mover réplica_conjunto a nombre_conjunto_réplica. Si (cls < = Conjunto de réplicas no primario || cls == Single) && ![:nombre_del_conjunto_de_réplicas] = .dup [:nombre_del_conjunto_de_réplicas] = .borrar(:conjunto de réplicas) end cls.Nuevo(, vigilancia, clúster) end |