Clase: Mongo::Cluster::Topology::Base
- Hereda:
-
Objeto
- Objeto
- Mongo::Clúster::Topología::Base
- Ampliado por:
- Reenviable
- Incluye:
- Registrable, supervisión::Publicable
- Definido en:
- lib/mongo/cluster/topology/base.rb
Overview
Define el comportamiento común a todas las topologías.
Subclases conocidas directas
Balanceado de carga, ReplicaSetSinPrimario, particionado, Único, Desconocido
Resumen constante
Constantes incluidas desde Loggable
Resumen de atributos de la instancia colapsar
-
#compatibility_error ⇒ Excepción
Solo lectura
Compatibility_error Si la topología es incompatible con el controlador, se generará una excepción con información sobre la incompatibilidad.
-
#logical_session_timeout ⇒ Integer?
Solo lectura
El valor de tiempo de espera de la sesión lógica en minutos.
-
#monitoring ⇒ monitoring
Solo lectura
Supervisando la supervisión.
-
#options ⇒ Hash
Solo lectura
Opciones Las opciones.
-
#server_descriptions ⇒ Hash
Solo lectura
Server_descriptions El mapa de cadenas de direcciones a descripciones de servidores, una para cada servidor en el clúster.
Resumen del método de instancia colapsar
-
#direcciones ⇒ arreglo<String>
Direcciones Direcciones del servidor.
-
#¿compatible? ⇒ true|false
Compatibilidad Si la topología es compatible con el controlador.
-
#data_bearing_servers? ⇒ verdadero | falso
privado
Have_data_bearing_servers Si la topología tiene algún servidor que contenga datos, para el cálculo del tiempo de espera de la sesión lógica.
-
#initialize(options, supervisión, clúster) ⇒ Base
constructor
privado
Inicializa la topología con las opciones.
-
#max_election_id ⇒ BSON::ObjectId
El electionId más grande jamás reportado por una primaria.
-
#max_set_version ⇒ Integer
El conjunto setVersion más grande jamás reportado por un primario.
- #new_max_election_id(descripción) ⇒ Objeto privado
- #new_max_set_version(descripción) ⇒ objeto privado
-
#replica_set_name ⇒ String
Obtenga el nombre del set de réplicas configurado para esta topología.
-
#server_hosts_match_any?(patrones) ⇒ true | false
privado
Compara cada dirección de servidor con la lista de patrones.
Métodos incluidos de Monitoring::Publishable
#publish_cmap_event, #publish_event, #publish_sdam_event
Métodos incluidos desde Registrable
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
Detalles del Constructor
#inicializar(opciones, supervisión, clúster) ⇒ Base
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.
Inicializa la topología con las opciones.
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 54 def inicializar(, Monitoring, clúster) = (, clúster) @options = @monitoring = Monitoring @cluster = clúster # La lista de descripciones del servidor simplemente se fija en el momento de # creación de topología. Si la descripción del servidor cambia más tarde, un # se debe crear una nueva instancia de topología. @server_descriptions = {} clúster.servers_list.cada hacer |Server| @server_descriptions[Server.dirección.to_s] = Server.Descripción end si is_a?(loadBalanced) @compatible = true else begin server_descriptions.cada hacer |_address_str, desc| desc.Funcionalidades.check_driver_support! a menos que desc.¿desconocido? end rescate Error::UnsupportedFeatures => e @compatible = false @compatibility_error = e else @compatible = true end end @have_data_bearing_servers = false @logical_session_timeout = server_descriptions.inyectar(nulo) hacer |min, (_address_str, desc)| # LST solo se lee de servidores con datos si desc.¿portador de datos? @have_data_bearing_servers = true break a menos que tiempo de espera = desc.logical_session_timeout [ tiempo de espera, min || tiempo de espera ].min else min end end return a menos que mongo::Lint.¿habilitado? freeze end |
Detalles de atributo de instancias
#compatibility_error ⇒ Exception (solo lectura)
Devuelve compatibility_error si la topología es incompatible con el controlador, una excepción con información sobre la incompatibilidad. Si la topología es compatible con el driver, nil.
148 149 150 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 148 def compatibilidad_error @compatibility_error end |
#logical_session_timeout ⇒ Integer? (solo lectura)
El valor está en minutos, a diferencia de la mayoría de las demás veces en el driver, que se devuelven en segundos.
El valor de tiempo de espera de la sesión lógica en minutos.
158 159 160 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 158 def logical_session_timeout @logical_session_timeout end |
#monitoring ⇒ monitoring (readonly)
Las devoluciones supervisan la supervisión.
115 116 117 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 115 def Monitoring @monitoring end |
#opciones ⇒ Hash (solo lectura)
Devuelve opciones Las opciones.
102 103 104 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 102 def @options end |
#server_descriptions ⇒ Hash (solo lectura)
Devuelve server_descriptions El mapa de cadenas de direcciones a descripciones del servidor, una para cada servidor en el clúster.
133 134 135 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 133 def server_descriptions @server_descriptions end |
Detalles del método de instancia
#direcciones ⇒ arreglo<String>
Devuelve direcciones Direcciones del servidor.
110 111 112 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 110 def direcciones clúster.direcciones.map(&plantar) end |
#compatible? ⇒ true|false
Devuelve si la topología es compatible con el controlador.
139 140 141 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 139 def ¿compatible? @compatible end |
#data_bearing_servers? ⇒ true | false
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.
Devuelve have_data_bearing_servers si la topología cuenta con servidores portadores de datos, a efectos del cálculo de tiempo de espera de sesión lógica.
165 166 167 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 165 def ¿servidores portadores de datos? @have_data_bearing_servers end |
#max_election_id ⇒ BSON::ObjectId
El electionId más grande jamás reportado por una primaria. Puede ser nulo.
175 176 177 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 175 def id_max_election [:max_election_id] end |
#max_set_version ⇒ Integer
El conjunto setVersion más grande jamás reportado por un primario. Puede ser nulo.
185 186 187 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 185 def max_set_version [: max_set_version] end |
#new_max_election_id(description) ⇒ Object
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.
190 191 192 193 194 195 196 197 198 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 190 def nuevo_max_election_id(Descripción) si Descripción.election_id && (id_max_election.nil? || Descripción.election_id > id_max_election) Descripción.election_id else id_max_election end end |
#new_max_set_version(description) ⇒ Objeto
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.
201 202 203 204 205 206 207 208 209 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 201 def nueva_versión_máxima_establecida(Descripción) si Descripción.set_version && (max_set_version.nil? || Descripción.set_version > max_set_version) Descripción.set_version else max_set_version end end |
#replica_set_name ⇒ String
Obtenga el nombre del set de réplicas configurado para esta topología.
125 126 127 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 125 def nombre_conjunto_replicación [nombre_del_conjunto_de_replicas] end |
#server_hosts_match_any?(patrones) ⇒ true | false
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.
Compara cada dirección de servidor con la lista de patrones.
220 221 222 223 224 225 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 220 def ¿server_hosts_match_any?(patrón) server_descriptions.any? hacer |addr_spec, _desc| addr, puerto = addr_spec.división(':') patrón.any? { |Patrón| addr.end_with?(Patrón) } end end |