Classificação: Mongo::Cluster::Topologia::Base

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Loggable, Monitoramento::publicável
Definido em:
build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb

Visão geral

Define o comportamento comum a todas as topologias.

Desde:

  • 2.7.0

Subclasses conhecidas diretas

LoadBalanced, ReplicaSetNoPrimary, Sharded, Único, Desconhecido

Resumo constante

Constantes incluídas do Loggable

Loggable::Prefix

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Métodos incluídos do monitoramento::publicável

#publish_cmap_event, #publish_event, #publish_sdam_event

Métodos incluídos no Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger

Detalhes do construtor

#initialize(opções, monitoramento, cluster) ➤ Base

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize a topologia com as opções.

Parâmetros:

  • opções (Hash)

    As opções.

  • Monitoramento (Monitoramento)

    O monitoramento.

  • cluster (Cluster)

    O cluster.

Hash de opções (opções):

  • :replica_set (Símbolo)

    Nome do conjunto de réplicas ao qual se conectar. Pode ser deixado em branco (nil ou a string vazia são aceitos) para descobrir o nome do cluster. Se os endereços pertencerem a conjuntos de réplicas diferentes, não haverá garantia de qual conjunto de réplicas será selecionado – em particular, o driver poderá escolher o nome do conjunto de réplicas de um secundário se retornar sua resposta antes de um primário pertencente a um conjunto de réplicas diferente. Esta opção só pode ser especificada ao instanciar uma topologia de conjunto de réplicas.

  • :max_election_id (BSON::ObjectId)

    ID máximo de eleição de acordo com a especificação do SDAM. Esta opção só pode ser especificada ao instanciar uma topologia de conjunto de réplicas.

  • :max_set_version (Inteiro)

    Versão máxima do conjunto de acordo com a especificação SDAM. Esta opção só pode ser especificada ao instanciar uma topologia de conjunto de réplicas.

Desde:

  • 2.7.0



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
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 56

def inicializar(opções, Monitoramento, cluster)
  opções = validate_options(opções, cluster)

  @opções = opções
  @monitoring = Monitoramento
  @cluster = cluster
  # A lista de descrições de servidores é simplesmente corrigida no momento do
  # criação de topologia. Se a descrição do servidor for alterada posteriormente, um
  # nova instância de topologia deve ser criada.
  @server_descriptions = {}
  (Servidores = cluster.server_list).cada fazer |Servidor|
    @server_descriptions[Servidor.endereço.to_s] = Servidor.Descrição
  end

  se is_a?(loadBalanced)
    @compatible = true
  mais
    começar
      server_descriptions.cada fazer |endereço_str, desc|
        a menos que desc.desconhecido?
          desc.características.check_driver_support!
        end
      end
    salvar Erro::Recursos Não Suportados => e
      @compatible = false
      @compatibility_error = e
    mais
      @compatible = true
    end
  end

  @keydata_Bearing_servers = false
  @logical_session_timeout = server_descriptions.injetar(nada) fazer |min, (endereço_str, desc)|
    # O LST só é lido a partir de servidores portadores de dados
    se desc.data_Bearing?
      @keydata_Bearing_servers = true
      intervalo a menos que timeout = desc.logical_session_timeout
      [timeout, (min || timeout)].min
    mais
      min
    end
  end

  se mongo::Lint.habilitado?
    congelar
  end
end

Detalhes do atributo da instância

#compatibility_errorExceção (somente leitura)

Retorna compatibility_error Se a topologia for incompatível com o driver, será gerada uma exceção com informações sobre a incompatibilidade. Se a topologia for compatível com o driver, nada.

Retorna:

  • (Exceção)

    compatibility_error Se a topologia for incompatível com o driver, uma exceção com informações sobre a incompatibilidade. Se a topologia for compatível com o driver, nada.

Desde:

  • 2.7.0



151
152
153
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 151

def compatibility_error
  @compatibility_error
end

#logical_session_timeoutInteger? (somente leitura)

Observação:

O valor é em minutos, diferentemente da maioria dos outros tempos no driver que são retornados em segundos.

O valor lógico de tempo limite da sessão em minutos.

Retorna:

  • (Inteiro, zero)

    O tempo limite lógico da sessão.

Desde:

  • 2.7.0



161
162
163
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 161

def logical_session_timeout
  @logical_session_timeout
end

#monitoramentomonitoramento (somente leitura)

Retorna monitorando o monitoramento.

Retorna:

Desde:

  • 2.7.0



118
119
120
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 118

def Monitoramento
  @monitoring
end

#opçõesHash (somente leitura)

Retorna as opções As opções.

Retorna:

  • (Hash)

    opções As opções.

Desde:

  • 2.7.0



105
106
107
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 105

def opções
  @opções
end

#server_descriptions ➤ Hash (somente leitura)

Retorna server_descriptions O mapa de strings de endereço para descrições de servidor, uma para cada servidor no cluster.

Retorna:

  • (Hash)

    server_descriptions O mapa de strings de endereço para descrições de servidor, uma para cada servidor no cluster.

Desde:

  • 2.7.0



136
137
138
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 136

def server_descriptions
  @server_descriptions
end

Detalhes do método de instância

# deendereçosArray<String>

Retorna endereços de servidor.

Retorna:

  • (Array<String>)

    endereços Endereços do servidor MongoDB.

Desde:

  • 2.7.0



113
114
115
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 113

def Endereços
  cluster.Endereços.map(&:seed)
end

#compatível?true|false

Retorna compatível se a topologia é compatível com o driver.

Retorna:

  • (true|false)

    compatibility Se a topologia é compatível com o driver.

Desde:

  • 2.7.0



142
143
144
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 142

def compatível?
  @compatible
end

#data_Bearing_Servers?verdadeiro | false

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna has_data_Bearing_server se a topologia tem servidores de suporte de dados, para fins de cálculo de tempo limite lógico da sessão.

Retorna:

  • (verdadeiro | falso)

    has_data_Bearing_Servers Se a topologia tem servidores de suporte de dados, para fins de cálculo de tempo limite lógico da sessão.

Desde:

  • 2.7.0



168
169
170
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 168

def data_Bearing_Servers?
  @keydata_Bearing_servers
end

#max_election_id ➤ BSON::ObjectId

A maior eleiçãoId já relatada por uma primária. Pode ser nulo.

Retorna:

  • (BSON::ObjectId)

    O ID da eleição.

Desde:

  • 2.7.0



178
179
180
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 178

def max_election_id
  opções[:max_election_id]
end

#max_set_versionInteger

A maior setVersion já relatada por um primário. Pode ser nulo.

Retorna:

  • (Inteiro)

    A versão definida.

Desde:

  • 2.7.0



188
189
190
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 188

def max_set_version
  opções[:max_set_version]
end

#new_max_election_id(description) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Desde:

  • 2.7.0



193
194
195
196
197
198
199
200
201
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 193

def new_max_election_id(Descrição)
  se Descrição.election_id &&
      (max_election_id.nada? ||
          Descrição.election_id > max_election_id)
    Descrição.election_id
  mais
    max_election_id
  end
end

#new_max_set_version(description) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Desde:

  • 2.7.0



204
205
206
207
208
209
210
211
212
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 204

def new_max_set_version(Descrição)
  se Descrição.set_version &&
      (max_set_version.nada? ||
          Descrição.set_version > max_set_version)
    Descrição.set_version
  mais
    max_set_version
  end
end

#replica_set_name ➤ string

Obtenha o nome do conjunto de réplica configurado para esta topologia.

Exemplos:

Obtenha o nome do conjunto de réplicas .

topology.replica_set_name

Retorna:

  • (string)

    O nome do conjunto de réplicas configurado.

Desde:

  • 2.0.0



128
129
130
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 128

def replica_set_name
  opções[:replica_set_name]
end