Módulo: Mongo::Cluster::Topologia
- Estendido por:
- topologia
- Incluído em:
- topologia
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/cluster/topology.rb,
build/ruby-driver-v2.19/lib/mongo/cluster/topology.rb,
build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb,
build/ruby-driver-v2.19/lib/mongo/cluster/topology/single.rb,
build/ruby-driver-v2.19/lib/mongo/cluster/topology/sharded.rb,
build/ruby-driver-v2.19/lib/mongo/cluster/topology/unknown.rb,
build/ruby-driver-v2.19/lib/mongo/cluster/topology/load_balanced.rb,
build/ruby-driver-v2.19/lib/mongo/cluster/topology/no_replica_set_options.rb,
build/ruby-driver-v2.19/lib/mongo/cluster/topology/replica_set_no_primary.rb,
build/ruby-driver-v2.19/lib/mongo/cluster/topology/replica_set_with_primary.rb
Visão geral
Define o comportamento para obter servidores.
As topologias estão associadas aos seus clusters — por exemplo, uma topologia ReplicaSet contém o nome do conjunto de réplicas. Um objeto de topologia , portanto, não pode ser usado com vários objetos de cluster.
Ao mesmo tempo, os objetos de topologia não sabe nada sobre servidores específicos em um cluster, apesar do que seu construtor possa sugerir. O que significa, em particular, que os eventos de alteração de topologia exigem que o aplicativo mantenha as referências do cluster por conta própria se quiser rastrear as alterações do servidor em um conjunto de réplicas.
Definido sob namespace
Módulos: NoReplicaSetOptions Classes: Base, LoadBalanced, ReplicaSetNoPrimary, ReplicaSetWithPrimary, Sharded, Único, Desconhecido
Colapsode resumo constante
- OPÇÕES =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
As várias topologias para seleção do servidor.
{ direto: Single, load_balanced: loadBalanced, replica_set: ReplicaSetNoPrimary, fragmentado: Fragmentado, }.congelar
Recolhimento do Resumo do método de instância
-
#inicial(cluster, monitoramento, opções) ➤ ReplicaSet, ...
privado
Obtenha a topologia inicial do cluster para as opções fornecidas.
Detalhes do método de instância
#inicial(cluster, monitoramento, opções) ➤ ReplicaSet, ...
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.
Obtenha a topologia inicial do cluster para as opções fornecidas.
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'build/ruby-driver-v2.19/lib/mongo/cluster/topology.rb', linha 90 def inicial(cluster, Monitoramento, ) Conecte = [:connect]&.to_sym cls = se [:direct_connection] se Conecte && Conecte != :direct aumentar ArgumentError, "Opções de topologia conflitantes: direct_connection=true e connect=#{connect}" end se [:load_balanced] aumentar ArgumentError, "Opções de topologia conflitantes: direct_connection=true e load_balanced=true" end Single elsif [:direct_connection] == false && Conecte && Conecte == :direct aumentar ArgumentError, "Opções de topologia conflitantes: direct_connection=false e connect=#{connect}" elsif Conecte && Conecte != :load_balanced se [:load_balanced] aumentar ArgumentError, "Opções de topologia conflitantes: connect=#{[:connect].inspeccione} e load_balanced=true" end Opções.buscar([:connect].to_sym) elsif .chave?(:replica_set) || .chave?(:replica_set_name) se [:load_balanced] aumentar ArgumentError, "Opções de topologia conflitantes: replica_set/replica_set_name e load_balanced=true" end ReplicaSetNoPrimary elsif [:load_balanced] || Conecte == :load_balanced loadBalanced mais Desconhecido end # As opções aqui são opções de cliente/cluster/servidor. # Em particular, a chave de nome do conjunto de réplicas é diferente para # topologia. # Se replica_set_name for fornecido (como pode ser internamente pelo driver), # use essa chave. # Caso contrário (por exemplo opções passadas do cliente), # move replica_set para replica_set_name. se (cls <= ReplicaSetNoPrimary || cls == Single) && ![:replica_set_name] = .dup [:replica_set_name] = .excluir(:replica_set) end cls.Novo(, Monitoramento, cluster) end |