Clase: Mongo::Servidor::Descripción

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/servidor/descripción.rb,
lib/mongo/servidor/descripción/funcionalidades.rb,
lib/mongo/servidor/descripción/load_balancer.rb

Overview

Representa una descripción del servidor, rellena con el resultado del comando hello.

Nota: Los servidores desconocidos no tienen versiones de wire, pero por razones heredadas, devolvemos 0 para min_wire_version y max_wire_version de cualquier servidor que no las tenga. Actualmente el controlador a veces construye comandos cuando se desconoce el servidor, por lo que las referencias a min_wire_version y max_wire_version no deben ser nulas. Cuando se cambie el comportamiento del controlador (<ahref=\"1805 \">jira.mongodb.org/browse/RUBY-), esto puede que ya no sea necesario.

Desde:

  • 2.0.0

Definido bajo Namespace

Clases: Características, LoadBalancer

Colapso delresumen constante

árbitro =
Obsoleto.

Constante para leer la información del árbitro de la configuración.

Desde:

  • 2.0.0

'soloÁrbitro'.freeze
árbitro =

Constante para leer información de árbitros desde la configuración.

Desde:

  • 2.0.0

'árbitro'.freeze
OCULTO =

Constante para leer información oculta desde la configuración.

Desde:

  • 2.0.0

'hidden'.freeze
host =

Constante para leer la información de hosts de la configuración.

Desde:

  • 2.0.0

'anfitriones '.freeze
MENSAJE =
Obsoleto.

Constante de la clave para el valor del mensaje.

Desde:

  • 2.0.0

'msg'.freeze
MONGOS_MESSAGE =
Obsoleto.

Constante para el mensaje que indica un clúster particionado.

Desde:

  • 2.0.0

'isdbgrid'.freeze
CONJUNTO_DE_RÉPLICAS =
Obsoleto.

Constante para determinar servidores fantasma.

Desde:

  • 2.0.0

'isreplicaset'.freeze
MAX_BSON_OBJECT_SIZE =

Constante para leer la información del tamaño máximo de bson desde la configuración.

Desde:

  • 2.0.0

'maxBsonObjectSize'.freeze
MAX_MESSAGE_BYTES =

Constante para leer la información del tamaño máximo del mensaje desde la configuración.

Desde:

  • 2.0.0

'maxMessageSizeBytes'.freeze
MAX_WIRE_VERSION =

Constante para la versión máxima del cableado.

Desde:

  • 2.0.0

'maxWireVersion'.freeze
MIN_WIRE_VERSION =

Constante para la versión de cable mínimo.

Desde:

  • 2.0.0

'minWireVersion'.freeze
MAX_WRITE_BATCH_SIZE =

Constante para leer el tamaño máximo del lote de guardado agrupado.

Desde:

  • 2.0.0

'maxWriteBatchSize'.freeze
LAST_WRITE =

Constante para el subdocumento lastWrite.

Desde:

  • 2.4.0

'última escritura '.freeze
LAST_WRITE_DATE =

Constante para el campo lastWriteDate en el subdocumento lastWrite.

Desde:

  • 2.4.0

'lastWriteDate'.freeze
ME =

Constante para leer el campo me.

Desde:

  • 2.1.0

'me'.freeze
TAMAÑO MÁXIMO DE LOTE DE ESCRITURA PREDETERMINADO =

Tamaño máximo de agrupar de guardar por defecto.

Desde:

  • 2.0.0

1000.freeze
LEGACY_WIRE_VERSION =
Obsoleto.

Se eliminará en 3.0.

La versión del protocolo de conexión heredado.

Desde:

  • 2.0.0

0.freeze
PASIVO =

Constante para leer información pasiva de la configuración.

Desde:

  • 2.0.0

'pasivo'.freeze
PASIVOS =

Constante para leer la lista de servidores pasivos.

Desde:

  • 2.0.0

'pasivos'.freeze
primario/a =
Obsoleto.

Constante para leer la información primaria de la configuración.

Desde:

  • 2.0.0

'ismaster'.freeze
PRIMARY_HOST =

Constante para leer el campo de host primario desde la configuración.

Desde:

  • 2.5.0

'primario '.freeze
secundario =
Obsoleto.

Constante para leer información secundaria desde la configuración.

Desde:

  • 2.0.0

'secundario'.freeze
SET_NAME =

Constante para leer la información del nombre del conjunto de réplicas desde la configuración.

Desde:

  • 2.0.0

'setName'.freeze
etiqueta =

Constante para leer la información de las etiquetas desde la configuración.

Desde:

  • 2.0.0

'tags'.freeze
ID_ELECCIÓN =

Constante para leer la información de electionId de la configuración.

Desde:

  • 2.1.0

'electionId'.freeze
SET_VERSION =

Constante para leer la información de setVersion desde la configuración.

Desde:

  • 2.2.2

'setVersion'.freeze
LOCAL_TIME =

Constante para leer la información de localTime desde la configuración.

Desde:

  • 2.1.0

' hora local '.freeze
TIEMPO_DE_OPERACION =

Constante para leer la información de operationTime desde la configuración.

Desde:

  • 2.5.0

'tiempoOperación '.freeze
LOGICAL_SESSION_TIMEOUT_MINUTES =

Constante para leer la información logicalSessionTimeoutMinutes desde config.

Desde:

  • 2.5.0

'logicalSessionTimeoutMinutes'.freeze
CONNECTION_ID =

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.

Constante para leer la información de connectionId desde la configuración.

Desde:

  • 2.0.0

'Id de conexión'.freeze
EXCLUDE_FOR_COMPARISON =

Campos para excluir al comparar dos descripciones.

Desde:

  • 2.0.6

[ LOCAL_TIME,
  ÚLTIMA ESCRITURA,
  OPERATION_TIME,
  Operación::CLUSTER_TIME,
  CONEXIÓN_ID,
].freeze

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Detalles del constructor

#inicializar(address, config = {}, average_round_trip_time: nil, minimum_round_trip_time: 0, load_balancer: false, force_load_balancer: false) ⇒ Descripción

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Cree una instancia de la nueva descripción del servidor a partir del resultado del comando hello o fabrique una descripción de marcador de posición para servidores desconocidos y LoadBalancer.

Ejemplos:

Inicia la nueva descripción.

Description.new(address, { 'isWritablePrimary' => true }, 0.5)

Parámetros:

  • dirección ( DIRECCIÓN) -

    La dirección del servidor.

  • config (Hash) (por defecto: {})

    El resultado del comando hello.

  • average_round_trip_time (Flotante) (predeterminado: nulo)

    El promedio móvil de tiempo (segundos) que tardó en completarse el comando hello.

  • tiempo mínimo de ida y vuelta (Flotante) (por defecto: 0)

    El tiempo mínimo de ida y vuelta de los últimos diez comandos de saludo.

  • equilibrador de carga (true | false) (por defecto: false)

    Si el servidor se trata como un equilibrador de carga.

  • equilibrador de carga de fuerza (true | false) (por defecto: false)

    Indica si el servidor se fuerza a ser un balanceador de carga.

Desde:

  • 2.0.0



220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
# Archivo 'lib/mongo/server/description.rb', línea 220

def inicializar(dirección, config = {}, tiempo promedio de ida y vuelta: nulo,
  minimum_round_trip_time: 0, equilibrador de carga: false,
  force_load_balancer: false
)
  @address = dirección
  @config = config
  @load_balancer = !!equilibrador de carga
  @force_load_balancer = !!equilibrador de carga de fuerza
  @características = Características.Nuevo(wire_versions, me || @address.to_s)
  @tiempo_promedio_de_viaje_de_ida_y_vuelta = average_round_trip_time
  @minimum_round_trip_time = tiempo mínimo de ida y vuelta
  @last_update_time = Tiempo.ahora.freeze
  @last_update_monotime = Utils.monotonic_time

  si equilibrador de carga
    # Cuando la opción URI loadBalanced=true está configurada, el driver rechazará
    # para funcionar si el servidor con el que se comunica no establece serviceId
    # en la respuesta ismaster/hello.
    #
    # En este momento no podemos ejecutar una configuración adecuada de balanceador de carga en evergreen
    #
    # Por lo tanto, cuando se utiliza la opción Ruby connect=:load_balanced
    # de la opción URI loadBalanced=true, si serviceId no está configurado en
    # respuesta ismaster/hello, el controlador fabrica un serviceId y
    # procede a tratar un servidor que no se informa como
    # detrás de un balanceador de carga como un servidor que se encuentra detrás de un balanceador de carga.
    #
    # 5.0+ servidores deben proporcionar topologyVersion.processId que
    # es específico para la instancia particular del proceso. Podemos usar eso
    # campo como proxy para serviceId.
    #
    # Si topologyVersion no se proporciona por alguna razón, nosotros
    # fabricar un serviceId localmente.
    #
    # En cualquier caso, un serviceId proporcionado por un servidor real detrás
    # se supone que un balanceador de carga es un BSON::ObjectId. El fabricado
    # Los identificadores de servicio son cadenas para distinguirlos de los reales.
    # En particular processId también es un BSON::ObjectId, pero será
    # asignado a una cadena para mayor claridad de que se trata de una identificación de servicio falsa.
    #
    # TODO: Eliminar esto cuando https://jira.mongodb.org/browse/RUBY-2881 haya terminado.
    si ok? && !service_id
      a menos que equilibrador de carga de fuerza
        propagar Error::Id. de servicio faltante, "El servidor en #{address.seed} no proporcionó un ID de servicio en la respuesta de handshake"
      end

      fake_service_id = si id_del_proceso = topology_version && topology_version['processId']
        "proceso:#{process_id}"
      else
        "fake:#{rand(2**32-1)+1}"
      end
      @config = @config.fusionar('serviceId' => fake_service_id)
    end
  end

  si Mongo::Lint.¿habilitado?
    Variables de instancia de caché pregeneradas
    host
    Árbitros
    pasivos
    topology_version

    freeze
  end
end

Detalles de los atributos de instancia

#addressDirección (solo lectura)

Devuelve la dirección La dirección del servidor.

Devuelve:

  • ( DIRECCIÓN) -

    dirección La dirección del servidor.

Desde:

  • 2.0.0



287
288
289
# Archivo 'lib/mongo/server/description.rb', línea 287

def dirección
  @address
end

#average_round_trip_timeFloat (solo lectura)

Devuelve el tiempo promedio móvil que tardó en completarse la llamada hello.

Devuelve:

  • (Float)

    El tiempo promedio móvil que tardó la llamada de saludo en completarse.

Desde:

  • 2.0.0



305
306
307
# Archivo 'lib/mongo/server/description.rb', línea 305

def average_round_trip_time
  @tiempo_promedio_de_viaje_de_ida_y_vuelta
end

#configHash (solo lectura)

Devuelve el resultado real del comando hello.

Devuelve:

  • (encriptada)

    El resultado real del comando hello.

Desde:

  • 2.0.0



290
291
292
# Archivo 'lib/mongo/server/description.rb', línea 290

def config
  @config
end

#last_update_monotimeFlotante (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Tiempo de creación de esta descripción del servidor según el reloj monótono.

Devuelve:

  • (Float)

    Tiempo monótono de creación de descripción del servidor.

Véase también:

  • para más detalles

Desde:

  • 2.0.0



848
849
850
# Archivo 'lib/mongo/server/description.rb', línea 848

def last_update_monotime
  @last_update_monotime
end

#last_update_timeTime (solo lectura)

Nota:

Este tiempo no indica cuándo una verificación de servidor fue exitosa

Hora en que se creó esta descripción del servidor.

completado, porque marcar un servidor como desconocido actualiza su descripción y last_update_time. Usa Server#last_scan para saber cuándo fue la última vez que el Monitor comprobó correctamente el servidor.

Devuelve:

  • (Time)

    Tiempo de creación de la descripción del servidor.

Desde:

  • 2.7.0



839
840
841
# Archivo 'lib/mongo/server/description.rb', línea 839

def last_update_time
  @last_update_time
end

#minimum_round_trip_timeFloat (solo lectura)

Devuelve el tiempo mínimo que tardaron en completarse las diez últimas llamadas hello.

Devuelve:

  • (Float)

    El tiempo mínimo que tardaron en completarse las diez últimas llamadas de saludo.

Desde:

  • 2.0.0



309
310
311
# Archivo 'lib/mongo/server/description.rb', línea 309

def tiempo mínimo de ida y vuelta
  @minimum_round_trip_time
end

Detalles del método de instancia

#==(otro) ⇒ verdadero, falso También conocido como: eql?

Comprobar la igualdad de dos descripciones.

Ejemplos:

Comprobar igualdad de descripción.

description == other

Parámetros:

  • Otros (objeto)

    La otra descripción.

Devuelve:

  • (verdadero,falso)

    Si los objetos son iguales.

Desde:

  • 2.0.6



872
873
874
875
876
877
878
879
# Archivo 'lib/mongo/server/description.rb', línea 872

def ==(Otros)
  return false si sí mismo.clase != Otros.clase
  return false si ¿desconocido? || Otros.¿desconocido?

  (config.claves + Otros.config.claves).único.¿todos? hacer |k|
    config[k] == Otros.config[k] || EXCLUDE_FOR_COMPARISON.incluir?(k)
  end
end

#árbitro?true, false

Devuelve si este servidor es un árbitro, según la especificación SDAM.

Ejemplos:

¿El servidor es un árbitro?

description.arbiter?

Devuelve:

  • (verdadero,falso)

    Si el servidor es un árbitro.

Desde:

  • 2.0.0



319
320
321
322
323
# Archivo 'lib/mongo/server/description.rb', línea 319

def árbitro?
  ok? &&
  config['soloÁrbitro'] == true &&
  !!config['setName']
end

#árbitrosArray<String>

Obtenga una lista de todos los árbitros en el set de réplicas.

Ejemplos:

Obtener los árbitros en el set de réplicas.

description.arbiters

Devuelve:

  • (arreglo<String>)

    Los árbitros en el set.

Desde:

  • 2.0.0



333
334
335
# Archivo 'lib/mongo/server/description.rb', línea 333

def Árbitros
  @arbiters ||= (config[Árbitros] || []).map { |s| s.minúscula }
end

#data_bearing?true, false

Si esta descripción proviene de un servidor que almacena datos (autónomo, mongos, primario o secundario).

Devuelve:

  • (verdadero,falso)

    Si la descripción proviene de un servidor que contiene datos.

Desde:

  • 2.7.0



794
795
796
# Archivo 'lib/mongo/server/description.rb', línea 794

def ¿portador de datos?
  mongos? || primario/a? || secundario? || autónomo?
end

#election_idBSON::ObjectId

Obtenga el ID de elección de la configuración.

Ejemplos:

Obtener el electionId.

description.election_id

Devuelve:

  • (BSON::ObjectId)

    El ID de elección.

Desde:

  • 2.1.0



481
482
483
# Archivo 'lib/mongo/server/description.rb', línea 481

def id_elección
  config[ID_ELECCIONES]
end

#featuresfuncionalidad

Devuelve características Las características del servidor.

Devuelve:

  • (funcionalidad)

    Características Las características del servidor.

Desde:

  • 2.0.0



300
301
302
# Archivo 'lib/mongo/server/description.rb', línea 300

def Funcionalidades
  @características
end

#¿fantasma?verdadero, falso

Si este servidor es un fantasma, según la especificación SDAM.

Ejemplos:

¿Es el servidor un fantasma?

description.ghost?

Devuelve:

  • (verdadero,falso)

    Si el servidor es un fantasma.

Desde:

  • 2.0.0



345
346
347
348
# Archivo 'lib/mongo/server/description.rb', línea 345

def ghost?
  ok? &&
  config['isreplicaset'] == true
end

#oculto?true, false

Devolverá true si el servidor está oculto.

Ejemplos:

¿El servidor está oculto?

description.hidden?

Devuelve:

  • (verdadero,falso)

    Si el servidor está oculto.

Desde:

  • 2.0.0



358
359
360
# Archivo 'lib/mongo/server/description.rb', línea 358

def hidden?
  ok? && !!config[Oculto]
end

#hostsMatriz<String>

Obtenga una lista de todos los servidores en el set de réplicas.

Ejemplos:

Obtener los servidores en el set de réplicas.

description.hosts

Devuelve:

  • (arreglo<String>)

    Los servidores en el conjunto.

Desde:

  • 2.0.0



370
371
372
# Archivo 'lib/mongo/server/description.rb', línea 370

def host
  @anfitriones ||= (config[HOSTS] || []).map { |s| s.minúscula }
end

#inspectString

Inspecciona la descripción del servidor.

Ejemplos:

Inspeccionar la descripción del servidor

description.inspect

Devuelve:

  • (string)

    La inspección.

Desde:

  • 2.0.0



382
383
384
# Archivo 'lib/mongo/server/description.rb', línea 382

def inspeccionar
  "#<Mongo::Server:Description:0x#{object_id} config=#{config} tiempo_de_ida_y_vuelta_promedio=#{tiempo_de_ida_y_vuelta_promedio}>"
end

#is_server?(servidor) ⇒ verdadero, falso

Obsoleto.

¿Esta descripción es del servidor dado?

Ejemplos:

Comprueba si la descripción es de un servidor determinado.

description.is_server?(server)

Devuelve:

  • (verdadero,falso)

    Si la descripción es del servidor.

Desde:

  • 2.0.6



756
757
758
# Archivo 'lib/mongo/server/description.rb', línea 756

def is_server?(Server)
  dirección == Server.dirección
end

#fecha_de_última_escrituraHora

Obtenga el lastWriteDate del subdocumento lastWrite en la configuración.

Ejemplos:

Obtenga el valor de lastWriteDate.

description.last_write_date

Devuelve:

  • (Time)

    La última fecha de guardado.

Desde:

  • 2.4.0



546
547
548
# Archivo 'lib/mongo/server/description.rb', línea 546

def last_write_date
  config[ÚLTIMA ESCRITURA][FECHA DE ÚLTIMA ESCRITURA] si config[ÚLTIMA ESCRITURA]
end

#lists_servidor?(servidor) ⇒ true, false

Obsoleto.

¿Se incluye un servidor en la lista de servidores de esta descripción?

Ejemplos:

Verifique si un servidor está en la lista de servidores de la descripción.

description.lists_server?(server)

Devuelve:

  • (verdadero,falso)

    Si un servidor está en la lista de servidores de la descripción.

Desde:

  • 2.0.6



770
771
772
# Archivo 'lib/mongo/server/description.rb', línea 770

def lists_server?(Server)
  servidores.incluir?(Server.dirección.to_s)
end

#equilibrador_de_carga?true | false

Devuelve si este servidor es un balanceador de carga.

Devuelve:

  • (true | false)

    Si este servidor es un balanceador de carga.

Desde:

  • 2.0.0



295
296
297
# Archivo 'lib/mongo/server/description.rb', línea 295

def load_balancer?
  @load_balancer
end

#logical_session_timeoutInteger?

Obtener logicalSessionTimeoutMinutes desde la configuración.

Ejemplos:

Obtenga el valor de logicalSessionTimeoutMinutes en minutos.

description.logical_session_timeout

Devuelve:

  • (Integer, nil)

    El tiempo de espera lógico de la sesión en minutos.

Desde:

  • 2.5.0



558
559
560
# Archivo 'lib/mongo/server/description.rb', línea 558

def logical_session_timeout
  config[LOGICAL_SESSION_TIMEOUT_MINUTES] si config[LOGICAL_SESSION_TIMEOUT_MINUTES]
end

#max_bson_object_sizeInteger

Obtén el tamaño máximo de objeto BSON para esta versión del servidor.

Ejemplos:

Obtenga el tamaño máximo del objeto BSON.

description.max_bson_object_size

Devuelve:

  • (Número entero)

    El tamaño máximo de objeto en bytes.

Desde:

  • 2.0.0



394
395
396
# Archivo 'lib/mongo/server/description.rb', línea 394

def max_bson_object_size
  config[MAX_BSON_OBJECT_SIZE]
end

#max_message_sizeInteger

Obtenga el tamaño máximo de mensaje para esta versión del servidor.

Ejemplos:

Obtenga el tamaño máximo del mensaje.

description.max_message_size

Devuelve:

  • (Número entero)

    El tamaño máximo del mensaje en bytes.

Desde:

  • 2.0.0



406
407
408
# Archivo 'lib/mongo/server/description.rb', línea 406

def max_message_size
  config[MÁXIMO_BYTES_DE_MENSAJE]
end

#max_wire_versionInteger

Obtenga la versión de línea máxima. Por defecto es cero.

Ejemplos:

Obtén la versión máxima del cable.

description.max_wire_version

Devuelve:

  • (Número entero)

    Se admite la versión de cable máximo.

Desde:

  • 2.0.0



430
431
432
# Archivo 'lib/mongo/server/description.rb', línea 430

def max_wire_version
  config[MAX_WIRE_VERSION] || 0
end

#max_write_batch_sizeEntero

Obten el tamaño máximo de agrupación para guardados.

Ejemplos:

Obtener el tamaño máximo de lote.

description.max_write_batch_size

Devuelve:

  • (Número entero)

    El tamaño máximo del lote.

Desde:

  • 2.0.0



418
419
420
# Archivo 'lib/mongo/server/description.rb', línea 418

def tamaño máximo del lote de escritura
  config[MAX_WRITE_BATCH_SIZE] || DEFAULT_MAX_WRITE_BATCH_SIZE
end

#meString

Nota:

El valor en el campo 'me' puede diferir de la dirección de la descripción del servidor. Esto puede ocurrir, por ejemplo, en configuraciones de horizonte dividido. La especificación SDAM solo requiere remover los servidores cuyo campo 'me' no coincide con su dirección en algunas situaciones (por ejemplo, cuando el servidor en cuestión es nodo de un RS pero no es primario).

Obtiene el valor del campo me.

Devuelve:

  • (string)

    El campo yo.

Desde:

  • 2.1.0



457
458
459
# Archivo 'lib/mongo/server/description.rb', línea 457

def me
  config[ME]
end

#me_mismatch?true, false

Comprueba si hay una discrepancia entre el host de la dirección y el campo me.

Ejemplos:

Compruebe si hay una discrepancia.

description.me_mismatch?

Devuelve:

  • (verdadero,falso)

    Si hay una discordancia entre el campo "me" y el host de la dirección.

Desde:

  • 2.0.6



806
807
808
# Archivo 'lib/mongo/server/description.rb', línea 806

def me_mismatch?
  !!(dirección.to_s.minúscula != me.minúscula si me)
end

#min_wire_versionInteger

Obtén la versión mínima del cable. Por defecto es cero.

Ejemplos:

Obtén la versión mínima de cable.

description.min_wire_version

Devuelve:

  • (Número entero)

    Se admite la versión min wire.

Desde:

  • 2.0.0



442
443
444
# Archivo 'lib/mongo/server/description.rb', línea 442

def min_wire_version
  config[MIN_WIRE_VERSION] || 0
end

#mongocryptd?true, false

Si esta descripción es de un servidor mongocryptd.

Devuelve:

  • (verdadero,falso)

    Si esta descripción es de un servidor mongocryptd.

Desde:

  • 2.0.0



814
815
816
# Archivo 'lib/mongo/server/description.rb', línea 814

def mongocryptd?
  ok? && config['iscryptd'] == true
end

#mongos?verdadero, falso

Retorna si este servidor es un mongos, según la especificación SDAM.

Ejemplos:

¿El servidor es un mongos?

description.mongos?

Devuelve:

  • (verdadero,falso)

    Si el servidor es un mongos.

Desde:

  • 2.0.0



570
571
572
# Archivo 'lib/mongo/server/description.rb', línea 570

def mongos?
  ok? && config['msg'] == 'isdbgrid'
end

#ok?Boolean

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:

  • (booleano)

Desde:

  • 2.0.0



731
732
733
# Archivo 'lib/mongo/server/description.rb', línea 731

def ok?
  config[Operación::Resultado::Vale] == 1
end

#op_timeBSON::Timestamp

opTime en el subdocumento lastWrite de la respuesta hello.

Devuelve:

  • (BSON::Timestamp)

    La marca de tiempo.

Desde:

  • 2.7.0



823
824
825
826
827
# Archivo 'lib/mongo/server/description.rb', línea 823

def op_time
  si config['última escritura '] && config['última escritura ']['optime']
    config['última escritura ']['optime']['ts']
  end
end

#otro?verdadero, falso

Devuelve si el servidor es de otro tipo, según la especificación SDAM.

Ejemplos:

¿Es la descripción de tipo otro?

description.other?

Devuelve:

  • (verdadero,falso)

    Si la descripción es otra.

Desde:

  • 2.0.0



582
583
584
585
586
587
588
589
590
591
# Archivo 'lib/mongo/server/description.rb', línea 582

def ¿otro?
  # La especificación SDAM es un poco confusa sobre lo que significa "otro",
  # pero se le denomina "RSOther", lo que significa que no es un nodo de RS
  # no puede ser "otro".
  ok? &&
  !!config['setName'] && (
    config['hidden'] == true ||
    !primario/a? && !secundario? && !árbitro?
  )
end

#pasivo?verdadero, falso

Devolverá verdadero si el servidor está en modo pasivo.

Ejemplos:

¿Está el servidor en modo pasivo?

description.passive?

Devuelve:

  • (verdadero,falso)

    Si el servidor está en modo pasivo.

Desde:

  • 2.0.0



601
602
603
# Archivo 'lib/mongo/server/description.rb', línea 601

def ¿pasivo?
  ok? && !!config[PASIVO]
end

#pasivosarreglo<String>

Obtén una lista de los servidores pasivos en el clúster.

Ejemplos:

Obtener los pasivos.

description.passives

Devuelve:

  • (arreglo<String>)

    La lista de pasivos.

Desde:

  • 2.0.0



613
614
615
# Archivo 'lib/mongo/server/description.rb', línea 613

def pasivos
  @passives ||= (config[PASIVOS] || []).map { |s| s.minúscula }
end

#primario/a?true, false

Devuelve si este servidor es principal, según la especificación SDAM.

Ejemplos:

¿Es este el servidor primario?

description.primary?

Devuelve:

  • (verdadero,falso)

    Si el servidor es principal.

Desde:

  • 2.0.0



637
638
639
640
641
# Archivo 'lib/mongo/server/description.rb', línea 637

def primario/a?
  ok? &&
    (config['ismaster'] == true || config['isWritablePrimary'] == true ) &&
  !!config['setName']
end

#primary_hostString | nil

Obtenga la dirección del host principal.

Ejemplos:

Consigue la dirección del primario.

description.primary_host

Devuelve:

  • (String | nil)

    La dirección de la primaria.

Desde:

  • 2.6.0



625
626
627
# Archivo 'lib/mongo/server/description.rb', línea 625

def primary_host
  config[PRIMARY_HOST] && config[PRIMARY_HOST].minúscula
end

#miembro_del_conjunto_de_réplicas?verdadero, falso

¿Esta descripción corresponde a un miembro de un set de réplicas?.

Ejemplos:

Verifica si la descripción es de un miembro de un set de réplicas.

description.replica_set_member?

Devuelve:

  • (verdadero,falso)

    Si la descripción es de un miembro de un set de réplicas.

Desde:

  • 2.0.6



783
784
785
# Archivo 'lib/mongo/server/description.rb', línea 783

def ¿miembro del conjunto de réplicas?
  ok? && !(autónomo? || mongos?)
end

#replica_set_nameString?

Obtenga el nombre del set de réplicas al que pertenece el servidor, devuelve nil si no hay ninguno.

Ejemplos:

Obtén el nombre del set de réplicas.

description.replica_set_name

Devuelve:

  • (string, nulo)

    El nombre del set de réplicas.

Desde:

  • 2.0.0



652
653
654
# Archivo 'lib/mongo/server/description.rb', línea 652

def nombre_del_conjunto_de_réplicas
  config[SET_NAME]
end

#¿Secundario?verdadero, falso

Retorna si este servidor es secundario, según la especificación SDAM.

Ejemplos:

¿El servidor es secundario?

description.secondary?

Devuelve:

  • (verdadero,falso)

    Si el servidor es secundario.

Desde:

  • 2.0.0



676
677
678
679
680
# Archivo 'lib/mongo/server/description.rb', línea 676

def secundario?
  ok? &&
  config['secundario'] == true &&
  !!config['setName']
end

#server_connection_idobjeto

Desde:

  • 2.0.0



851
852
853
# Archivo 'lib/mongo/server/description.rb', línea 851

def server_connection_id
  config['Id de conexión']
end

#server_typeSymbol

Devuelve el tipo de servidor como un símbolo.

Ejemplos:

Obtén el tipo de servidor.

description.server_type

Devuelve:

Desde:

  • 2.4.0



690
691
692
693
694
695
696
697
698
699
700
# Archivo 'lib/mongo/server/description.rb', línea 690

def server_type
  return balanceador_de_carga si load_balancer?
  return árbitro si árbitro?
  return :ghost si ghost?
  return :fragmentado si mongos?
  return :primario si primario/a?
  return secundario si secundario?
  return :autónomo si autónomo?
  return :otro si ¿otro?
  :desconocido
end

#server_version_gte?(version) ⇒ Boolean

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:

  • (booleano)

Desde:

  • 2.0.0



883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
# Archivo 'lib/mongo/server/description.rb', línea 883

def server_version_gte?(Versión)
  requerido_wv = caso Versión
    Cuando '7.0'
      21
    Cuando '6.0'
      17
    Cuando '5.2'
      15
    Cuando '5.1'
      14
    Cuando '5.0'
      12
    Cuando '4.4'
      9
    Cuando '4.2'
      8
    Cuando '4.0'
      7
    Cuando '3.6'
      6
    Cuando '3.4'
      5
    Cuando '3.2'
      4
    Cuando '3.0'
      3
    Cuando '2.6'
      2
    else
      propagar ArgumentError, "Versiónrequerida falsa #{version }"
    end

  si load_balancer?
    # Si estamos hablando con un balanceador de carga, no hay monitoreo
    # y no sabemos qué servidor está detrás del balanceador de carga.
    # Supongamos que todo es compatible.
    # TODO remover esto cuando se implemente RUBY-2220.
    return true
  end

  requerido_wv >= min_wire_version && requerido_wv <= max_wire_version
end

#servidoresarreglo<String>

Consigue una lista de todos los servidores conocidos por el clúster.

Ejemplos:

Obtén todos los servidores.

description.servers

Devuelve:

  • (arreglo<String>)

    La lista de todos los servidores.

Desde:

  • 2.0.0



664
665
666
# Archivo 'lib/mongo/server/description.rb', línea 664

def servidores
  host + Árbitros + pasivos
end

#service_idnil | objeto

Devuelve el ID del servicio, si lo hay.

Devuelve:

  • (nil | Objeto)

    El identificador del servicio, si lo hay.

Desde:

  • 2.0.0



858
859
860
# Archivo 'lib/mongo/server/description.rb', línea 858

def service_id
  config['serviceId']
end

#set_versionInteger

Obtenga setVersion de la configuración.

Ejemplos:

Obtén setVersion.

description.set_version

Devuelve:

  • (Número entero)

    La versión establecida.

Desde:

  • 2.2.2



493
494
495
# Archivo 'lib/mongo/server/description.rb', línea 493

def set_version
  config[SET_VERSION]
end

#autónomo?true, false

Devuelve si este servidor es autónomo, según la especificación SDAM.

Ejemplos:

¿El servidor es autónomo?

description.standalone?

Devuelve:

  • (verdadero,falso)

    Si el servidor es autónomo.

Desde:

  • 2.0.0



710
711
712
713
714
715
# Archivo 'lib/mongo/server/description.rb', línea 710

def autónomo?
  ok? &&
  config['msg'] != 'isdbgrid' &&
  config['setName'].nil? &&
  config['isreplicaset'] != true
end

#tagsHash

Obtén las etiquetas configuradas para el servidor.

Ejemplos:

Obtenga las etiquetas.

description.tags

Devuelve:

  • (encriptada)

    Las etiquetas del servidor.

Desde:

  • 2.0.0



469
470
471
# Archivo 'lib/mongo/server/description.rb', línea 469

def Etiquetas
  config[etiqueta] || {}
end

#topology_versionTopologyVersion | nil

Devuelve la versión de la topología.

Devuelve:

Desde:

  • 2.0.0



498
499
500
501
502
503
504
# Archivo 'lib/mongo/server/description.rb', línea 498

def topology_version
  a menos que ¿definido?(@topology_version)
    @topology_version = config['topologyVersion'] &&
      TopologyVersion.Nuevo(config['topologyVersion'])
  end
  @topology_version
end

#topology_version_gt?(other_desc) ⇒ 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 si la versión de topología en esta descripción es potencialmente más nueva o igual que la versión de topología en otra descripción.

Parámetros:

  • other_desc (Servidor::Descripción)

    La otra descripción del servidor.

Devuelve:

  • (true | false)

    Si la versión de la topología en esta descripción es posiblemente más reciente o igual.

Desde:

  • 2.0.0



514
515
516
517
518
519
520
# Archivo 'lib/mongo/server/description.rb', línea 514

def topology_version_gt?(other_desc)
  si topology_version.nil? || other_desc.topology_version.nil?
    true
  else
    topology_version.gt?(other_desc.topology_version)
  end
end

#topología_versión_gte?(otra_desc) ⇒ 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.

Devuelve si la versión de topología en esta descripción es posiblemente más reciente que la versión de topología en otra descripción.

Parámetros:

  • other_desc (Servidor::Descripción)

    La otra descripción del servidor.

Devuelve:

  • (true | false)

    Si la versión de topología en esta descripción es potencialmente más reciente.

Desde:

  • 2.0.0



530
531
532
533
534
535
536
# Archivo 'lib/mongo/server/description.rb', línea 530

def topology_version_gte?(other_desc)
  si topology_version.nil? || other_desc.topology_version.nil?
    true
  else
    topology_version.gte?(other_desc.topology_version)
  end
end

#¿desconocido?true, false

Devuelve si este servidor es desconocido, según la especificación SDAM.

Ejemplos:

¿Es desconocida la descripción del servidor?

description.unknown?

Devuelve:

  • (verdadero,falso)

    Si se desconoce la descripción del servidor.

Desde:

  • 2.0.0



725
726
727
728
# Archivo 'lib/mongo/server/description.rb', línea 725

def ¿desconocido?
  return false si load_balancer?
  config.¿vacío? || config.claves == %w(topologyVersion) || !ok?
end

#wire_versionsrango

Obtén el rango de versiones de wire admitidas para el servidor.

Ejemplos:

Obtenga el rango de versiones de alambre.

description.wire_versions

Devuelve:

  • (Rango) -

    El rango de la versión de transmisión.

Desde:

  • 2.0.0



743
744
745
# Archivo 'lib/mongo/server/description.rb', línea 743

def wire_versions
  min_wire_version..max_wire_version
end