Classificação: Mongo::Cluster::Topologia::Base
- Herda:
-
Objeto
- Objeto
- Mongo::Cluster::Topologia::Base
- Estendido por:
- Encaminhável
- Inclui:
- Loggable, Monitoramento::publicável
- Definido em:
- lib/mongo/cluster/ topologia/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.
-
#server_hosts_match_any?(patterns) ➤ true | false
privado
Compara cada endereço de servidor com a lista de padrões.
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.
54 55 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 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 54 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 = {} 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 |_address_str, desc| desc.características.check_driver_support! a menos que desc.desconhecido? 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, (_address_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 Método a menos que mongo::Lint.habilitado? congelar 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.
148 149 150 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 148 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.
158 159 160 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 158 def logical_session_timeout @logical_session_timeout end |
#monitoramento ➤ monitoramento (somente leitura)
Retorna monitorando o monitoramento.
115 116 117 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 115 def Monitoramento @monitoring end |
#opções ➤ Hash (somente leitura)
Retorna as opções As opções.
102 103 104 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 102 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.
133 134 135 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 133 def server_descriptions @server_descriptions end |
Detalhes do método de instância
# deendereços ➤ Array<String>
Retorna endereços de servidor.
110 111 112 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 110 def Endereços cluster.Endereços.map(&:seed) end |
#compatível? ➤ true|false
Retorna compatível se a topologia é compatível com o driver.
139 140 141 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 139 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.
165 166 167 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 165 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.
175 176 177 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 175 def max_election_id [:max_election_id] end |
#max_set_version ⇒ Integer
A maior setVersion já relatada por um primário. Pode ser nulo.
185 186 187 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 185 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.
190 191 192 193 194 195 196 197 198 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 190 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.
201 202 203 204 205 206 207 208 209 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 201 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.
125 126 127 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 125 def replica_set_name [:replica_set_name] end |
#server_hosts_match_any?(patterns) ➤ true | 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.
Compara cada endereço de servidor com a lista de padrões.
220 221 222 223 224 225 |
# File 'lib/mongo/cluster/ topologia/base.rb', linha 220 def server_hosts_match_any?(Padrões) server_descriptions.algum? fazer |addr_spec, _desc| addr, _port = addr_spec.dividir(':') Padrões.algum? { |padrão| addr.end_with?(padrão) } end end |