Módulo: Mongo::Clúster::Topología
- Ampliado por:
- topología
- Incluido en:
- topología
- Definido en:
- lib/mongo/clúster/topología.rb,
lib/mongo/clúster/topología.rb,
lib/mongo/clúster/topología/base.rb,
lib/mongo/clúster/topología/single.rb,
lib/mongo/clúster/topología/particionado.rb,
lib/mongo/clúster/topología/unknown.rb,
lib/mongo/clúster/topología/load_balanced.rb,
lib/mongo/clúster/topología/no_replica_set_options.rb,
lib/mongo/clúster/topología/replica_set_no_primary.rb,
lib/mongo/clúster/topología/replica_set_with_primary.rb
Overview
Define el comportamiento para obtener servidores.
Las topologías están asociadas con sus clústeres; por ejemplo, una topología de ReplicaSet contiene el nombre del set 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 no saben nada sobre servidores específicos en un clúster, a pesar de lo que su constructor pueda sugerir. Lo que significa, en particular, que los eventos de cambio de topología requieren que la aplicación mantenga referencias de clúster por sí misma si desea rastrear cambios de servidor dentro de un set de réplicas.
Definido bajo Namespace
Modules: NoReplicaSetOptions clase: Base, Con balanceo de carga, ReplicaSetNoPrimary, ReplicaSetWithPrimary, particionado, Single, Desconocido
Resumen de constantes colapsar
- OPCIONES =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
Las diversas topologías para la selección de servidores.
{ directo: Single, balanceo_de_carga: loadBalanced, replica_set: ReplicaSetSinPrincipal, particionado: particionado, }.freeze
Resumen del método de instancia colapsar
-
#initial(clúster, supervisión, options) ⇒ ReplicaSet, ...
privado
Obtén la topología del clúster inicial para las opciones proporcionadas.
Detalles del método de instancia
#initial(clúster, supervisión, options) ⇒ ReplicaSet, ...
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Obtén la topología del clúster inicial para las opciones proporcionadas.
89 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 130 131 132 133 |
# Archivo 'lib/mongo/clúster/topología.rb', línea 89 def inicial(clúster, Monitoring, ) Conectar = [Conectar]&.to_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, 'Opciones de topología en conflicto: direct_connection=true y load_balanced=true' end Single elsif [conexión_directa] == false && Conectar && Conectar == :directo propagar ArgumentError, "Opciones de topología en conflicto: direct_connection=false y connect=#{connect}" elsif Conectar && Conectar != :balanceo de carga si [:balanceo de carga] propagar ArgumentError, "Opciones topológicas en conflicto: connect=#{[:connect].inspect} y load_balanced=true" end opciones.obtener([Conectar].to_sym) elsif .key?(Conjunto de réplicas) || .key?(nombre_del_conjunto_de_replicas) si [:balanceo de carga] propagar ArgumentError, 'Opciones de topología en conflicto: replica_set/replica_set_name y load_balanced=true' end ReplicaSetSinPrincipal elsif [:balanceo de carga] || Conectar == :balanceo de carga loadBalanced else Desconocido end # Las opciones aquí son opciones de cliente, clúster o 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 hacerlo el driver internamente), # use esa clave. # De lo contrario (por ejemplo, opciones transmitidas del cliente), # mover replica_set a replica_set_name. si (cls <= ReplicaSetSinPrincipal || cls == Single) && ![nombre_del_conjunto_de_replicas] = .dup [nombre_del_conjunto_de_replicas] = .borrar(Conjunto de réplicas) end cls.Nuevo(, Monitoring, clúster) end |