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? ⇒ verdadero|falso
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 servidores portadores de datos, a los efectos del cálculo del tiempo de espera de la sesión lógica.
-
#inicializar(opciones, monitoreo, cluster) ⇒ Base
constructor
privado
Inicializa la topología con las opciones.
-
#max_election_id ⇒ BSON::ObjectId
La elección más grande jamás reportada en 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 en Monitoring::Publishable
#publicar_evento_cmap, #publicar_evento, #publicar_evento_sdam
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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Inicializa la topología con las opciones.
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 100 101 102 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 56 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 = {} (servidores = 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| a menos que desc.¿desconocido? desc.Funcionalidades.check_driver_support! end end rescate Error::UnsupportedFeatures => e @compatible = false @compatibility_error = e else @compatible = true end end @tener_servidores_de_soporte_de_datos = 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? @tener_servidores_de_soporte_de_datos = true break a menos que tiempo de espera = desc.logical_session_timeout [tiempo de espera, (min || tiempo de espera)].min else min end end si Mongo::Lint.¿habilitado? freeze end end |
Detalles de los atributos de instancia
#error_de_compatibilidad ⇒ Excepción (solo lectura)
Devuelve un error de compatibilidad. Si la topología es incompatible con el controlador, se genera una excepción con información sobre la incompatibilidad. Si la topología es compatible con el controlador, se devuelve nulo.
151 152 153 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 151 def error de compatibilidad @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.
161 162 163 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 161 def logical_session_timeout @logical_session_timeout end |
#monitoring ⇒ monitoring (readonly)
Las devoluciones supervisan la supervisión.
118 119 120 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 118 def Monitoring @monitoring end |
#opciones ⇒ Hash (solo lectura)
Devuelve opciones Las opciones.
105 106 107 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 105 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.
136 137 138 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 136 def server_descriptions @server_descriptions end |
Detalles del método de instancia
#direcciones ⇒ arreglo<String>
Devuelve direcciones Direcciones del servidor.
113 114 115 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 113 def direcciones clúster.direcciones.map(Yplantar) end |
#¿compatible? ⇒ verdadero|falso
Devuelve si la topología es compatible con el controlador.
142 143 144 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 142 def ¿compatible? @compatible end |
#data_bearing_servers? ⇒ true | false
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve have_data_bearing_servers Si la topología tiene servidores que contienen datos, a los efectos del cálculo del tiempo de espera de la sesión lógica.
168 169 170 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 168 def ¿servidores_de_datos? @tener_servidores_de_soporte_de_datos end |
#max_election_id ⇒ BSON::ObjectId
La elección más grande jamás reportada por una primaria. Podría ser nula.
178 179 180 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 178 def id_máximo_de_elección [:max_election_id] end |
#max_set_version ⇒ Integer
La mayor versión del conjunto reportada por un primario. Podría ser nula.
188 189 190 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 188 def max_set_version [: max_set_version] end |
#new_max_election_id(description) ⇒ Object
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
193 194 195 196 197 198 199 200 201 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 193 def nuevo_max_election_id(Descripción) si Descripción.id_elección && (id_máximo_de_elección.nil? || Descripción.id_elección > id_máximo_de_elección) Descripción.id_elección else id_máximo_de_elección end end |
#new_max_set_version(descripción) ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
204 205 206 207 208 209 210 211 212 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 204 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.
128 129 130 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 128 def nombre_del_conjunto_de_réplicas [:nombre_del_conjunto_de_réplicas] end |
#server_hosts_match_any?(patrones) ⇒ true | false
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Compara cada dirección de servidor con la lista de patrones.
223 224 225 226 227 228 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 223 def ¿server_hosts_match_any?(patrón) server_descriptions.any? hacer |especificación de dirección, _desc| addr, _puerto = especificación de dirección.división(/:/) patrón.any? { |Patrón| addr.¿Fin_con?(Patrón) } end end |