Classificação: Mongo::Cluster::Topologia::Base
- Herda:
-
Objeto
- Objeto
- Mongo::Cluster::Topologia::Base
- 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.
Subclasses conhecidas diretas
LoadBalanced, ReplicaSetNoPrimary, Sharded, Único, Desconhecido
Resumo constante
Constantes incluídas do Loggable
Recolhimento do Resumo do atributo de instância
-
#compatibility_error ➤ Exceção
Somente leitura
Compatibility_error Se a topologia for incompatível com o driver, uma exceção com informações sobre a incompatibilidade.
-
#logical_session_timeout ⇒ Integer?
Somente leitura
O valor lógico de tempo limite da sessão em minutos.
-
#monitoring ⇒ monitoring
Somente leitura
Monitoramento do monitoramento.
-
#opções ➤ Hash
Somente leitura
Opções As opções.
-
#server_descriptions ➤ Hash
Somente leitura
Server_descriptions O mapa de strings de endereço para descrições de servidor, uma para cada servidor no cluster.
Recolhimento do Resumo do método de instância
-
# deendereços ➤ Array<String>
Endereços Endereços do servidor MongoDB.
-
#compatível? ➤ true|false
Compatible Se a topologia é compatível com o driver.
-
#data_Bearing_Servers? ➤ verdadeiro | false
privado
Have_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.
-
#initialize(opções, monitoramento, cluster) ➤ Base
construtor
privado
Inicialize a topologia com as opções.
-
#max_election_id ➤ BSON::ObjectId
A maior eleiçãoId já relatada por uma primária.
-
#max_set_version ⇒ Integer
A maior setVersion já relatada por um primário.
- #new_max_election_id(description) ➤ Objeto privado
- #new_max_set_version(description) ➤ Objeto privado
-
#replica_set_name ➤ string
Obtenha o nome do conjunto de réplica configurado para esta topologia.
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.
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(, Monitoramento, cluster) = (, cluster) @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_error ➤ Exceçã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.
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_timeout ⇒ Integer? (somente leitura)
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.
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 |
#monitoramento ➤ monitoramento (somente leitura)
Retorna monitorando o monitoramento.
118 119 120 |
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 118 def Monitoramento @monitoring end |
#opções ➤ Hash (somente leitura)
Retorna as opções As opções.
105 106 107 |
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 105 def @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.
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ços ➤ Array<String>
Retorna endereços de servidor.
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.
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.
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.
178 179 180 |
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 178 def max_election_id [:max_election_id] end |
#max_set_version ⇒ Integer
A maior setVersion já relatada por um primário. Pode ser nulo.
188 189 190 |
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 188 def max_set_version [: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.
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.
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.
128 129 130 |
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', linha 128 def replica_set_name [:replica_set_name] end |