Clase: Mongo::Cluster::Topology::Base
- Hereda:
-
Objeto
- Objeto
- Mongo::Clúster::Topología::Base
- Ampliado por:
- Reenviable
- Incluye:
- Registrable, Monitoreo::Publicable
- Definido en:
- lib/mongo/cluster/topología/base.rb
Overview
Define el comportamiento común a todas las topologías.
Subclases conocidas directas
LoadBalanced, ReplicaSetNoPrimary, Fragmentado, Único, Desconocido
Resumen constante
Constantes incluidas desde Loggable
Colapso delresumen de atributos de instancia
-
#error_de_compatibilidad ⇒ Excepción
solo lectura
Error de compatibilidad Si la topología es incompatible con el controlador, se genera una excepción con información sobre la incompatibilidad.
-
#logical_session_timeout ⇒ Integer?
solo lectura
El valor del tiempo de espera de la sesión lógica en minutos.
-
#monitoring ⇒ monitoring
solo lectura
Monitoreo del monitoreo.
-
#options ⇒ Hash
solo lectura
Opciones Las opciones.
-
#descripciones_del_servidor ⇒ Hash
solo lectura
Server_descriptions El mapa de cadenas de direcciones a descripciones de servidores, una para cada servidor en el clúster.
Colapso del resumen del método de instancia
-
#direcciones ⇒ Array<String>
Direcciones Direcciones del servidor.
-
#¿compatible? ⇒ verdadero|falso
Compatible Si la topología es compatible con el controlador.
-
#servidores_de_datos? ⇒ verdadero | falso
privada
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
privada
Inicialice la topología con las opciones.
-
#id_máximo_de_elección ⇒ BSON::IdDeObjeto
La elección más grande jamás reportada en una primaria.
-
#max_set_version ⇒ Integer
El conjunto de versiones más grande jamás reportado por un primario.
- #new_max_election_id(descripción) ⇒ Objeto privada
- #new_max_set_version(descripción) ⇒ Objeto privada
-
#nombre_del_conjunto_de_réplicas ⇒ Cadena
Obtenga el nombre del conjunto de réplicas configurado para esta topología.
-
#server_hosts_match_any?(patrones) ⇒ verdadero | falso
privada
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 en Loggable
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
Detalles del constructor
#inicializar(opciones, monitoreo, cluster) ⇒ 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.
Inicialice 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(, vigilancia, clúster) = (, clúster) @opciones = @monitoring = vigilancia @cluster = clúster # La lista de descripciones de servidores simplemente se fija en el momento de # Creación de topología. Si la descripción del servidor cambia más adelante, # Se debe crear una nueva instancia de topología. @server_descriptions = {} (servidores = clúster.servers_list).cada hacer |Server| @server_descriptions[Server.dirección.a_s] = Server.Descripción end Si is_a?(Balance de carga) @compatible = true else begin descripciones del servidor.cada hacer |dirección_str, desc| a no ser que desc.¿desconocido? desc.características.¡Compruebe el soporte del controlador! end end rescate Error::UnsupportedFeatures => e @compatible = false @error_de_compatibilidad = e else @compatible = true end end @tener_servidores_de_soporte_de_datos = false @logical_session_timeout = descripciones del servidor.inyectar(nulo) hacer |min, (dirección_str, desc)| # LST solo se lee desde servidores que contienen datos Si desc.¿datos_de_portador? @tener_servidores_de_soporte_de_datos = true break a no ser que tiempo de espera = desc.tiempo de espera de sesión lógica [tiempo de espera, (min || tiempo de espera)].min else min end end Si Mongo::Lint.¿activado? 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 @error_de_compatibilidad end |
#logical_session_timeout ⇒ Integer? (solo lectura)
El valor está en minutos, a diferencia de la mayoría de los otros tiempos en el controlador que se devuelven en segundos.
El valor del 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 tiempo de espera de sesión lógica @logical_session_timeout end |
#monitoring ⇒ monitoring (readonly)
Devuelve el seguimiento del seguimiento.
118 119 120 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 118 def vigilancia @monitoring end |
#opciones ⇒ Hash (solo lectura)
Devuelve opciones Las opciones.
105 106 107 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 105 def @opciones 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 descripciones del servidor @server_descriptions end |
Detalles del método de instancia
#direcciones ⇒ Array<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(Y:semilla) end |
#¿compatible? ⇒ verdadero|falso
Devuelve compatible 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 [:id_máximo_de_elección] 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 versión_máxima_del_conjunto [:versión_máxima_del_conjunto] end |
#new_max_election_id(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.
193 194 195 196 197 198 199 200 201 |
# Archivo 'lib/mongo/cluster/topology/base.rb', línea 193 def nuevo_id_máximo_de_elección(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_del_conjunto(Descripción) Si Descripción.establecer_versión && (versión_máxima_del_conjunto.nil? || Descripción.establecer_versión > versión_máxima_del_conjunto) Descripción.establecer_versión else versión_máxima_del_conjunto end end |
#nombre_del_conjunto_de_réplicas ⇒ Cadena
Obtenga el nombre del conjunto 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) ⇒ verdadero | falso
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 ¿Los hosts del servidor coinciden con alguno?(patrones) descripciones del servidor.any? hacer |especificación de dirección, _desc| addr, _puerto = especificación de dirección.división(/:/) patrones.any? { |patrón| addr.¿Fin_con?(patrón) } end end |