モジュール: Mongo::Cluster::Triggers
- 次による拡張機能。
- トポロジー
- 次のドキュメントに含まれます。
- トポロジー
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/cluster/toになります。rb 、
build/ruby-Driver-v 2.19 /lib/mongo/cluster/toになります。rb、
build/ruby-Driver-v 2.19 /lib/mongo/cluster/to logical/base.rb,
build/ruby-Driver-v 2.19 /lib/mongo/cluster/toquality/long.rb,
build/ruby-Driver-v 2 . 19 /lib/mongo/cluster/topquality/sharded.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/cluster/topquality/unknown.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/cluster/topquality/load_ balance.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/cluster/topquality/no_replica_set_options.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/cluster/topquality/replica_set_no_primary.rb、
build/ruby-Driver-v 2 . 19 /lib/mongo/cluster/topquality/replica_set_with_primary.rb
Overview
サーバーを取得するための動作を定義します。
トポロジーはクラスターに関連付けられています。たとえば、ReplicaSet トポロジーにはレプリカセット名が含まれます。 したがって、トポロジー オブジェクトは複数のクラスター オブジェクトでは使用できません。
同時に、トポロジー オブジェクトは、コンストラクターが提案するであっても、クラスター内の特定のサーバーについては何も認識していません。 つまり、特にレプリカセット内でサーバーの変更を追跡する場合は、トポロジー変更イベントによりアプリケーションが独自にクラスター参照を維持する必要があります。
名前空間で定義済み
Modules: NoReplicaSetOptions クラス: ベース、 LoadBalanced 、 ReplicaSetNoPrimary 、 ReplicaSetWithPrimary 、シャーディング、単一、不明
定数の概要の削減
- OPTIONS =
この定数は、プライベート API の一部です。 この定数は将来削除または変更される可能性があるため、可能な限り使用しないでください。
サーバー選択のためのさまざまなトポロジー。
{ 直接: Single, load_ Triggers: LoadBalanced, レプリカ_セット: ReplicaSetNoPrimary, シャーディングされた場合: シャード, }.freeze
インスタンス メソッドの概要を折りたたむ
-
#Initial (クラスター、モニタリング、オプション)=ReplicaSet, ...
private
指定されたオプションの初期クラスター トポロジーを取得します。
インスタンス メソッドの詳細
#Initial (クラスター、モニタリング、オプション) =ReplicaSet 、...
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
指定されたオプションの初期クラスター トポロジーを取得します。
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 |
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/cluster/topLOGy.rb', 行90 デフォルト 初期(クラスター, モニタリング, ) 接続 = [:connect]&.to_sym cls = 場合 [:direct_ connection] 場合 接続 & & 接続 != :direct 発生 ArgumentError, " 競合するトポロジー オプション: direct_ connection=true と connect= #{ connect } end 場合 [:load_ ユーザー分散] 発生 ArgumentError, "競合するトポロジー オプション: direct_ connection=true と load_ balance=true " end Single elsif [:direct_ connection] == false & & 接続 & & 接続 == :direct 発生 ArgumentError, "競合するトポロジー オプション: direct_ connection=false と connect= #{ connect } " elsif 接続 & & 接続 != :load_ ユーザー分散 場合 [:load_ ユーザー分散] 発生 ArgumentError, " 競合するトポロジー オプション: connect= #{オプション [ :connect ] 。 } と load_ balanced=true を 検査し ます 。 end オプション.fetch([:connect].to_sym) elsif .key?(:replica_set) || .key?(:replica_set_name) 場合 [:load_ ユーザー分散] 発生 ArgumentError, "競合するトポロジー オプション: レプリカ_セット/replica_set_name と load_standard=true " end ReplicaSetNoPrimary elsif [:load_ ユーザー分散] || 接続 == :load_ ユーザー分散 LoadBalanced else 不明 end # ここでのオプションは、クライアント/クラスター/サーバー オプションです。 #特にレプリカセット名のキーは # topology. # replica_set_name が指定されている場合(ドライバーによって内部的に指定される場合など)、 # そのキーを使用します。 番号それ以外の場合(例: クライアントから渡されたオプション)、 # レプリカセットを replica_set_name に移動 場合 (cls <= ReplicaSetNoPrimary || cls == Single) & & ![:replica_set_name] = .dup [:replica_set_name] = .削除(:replica_set) end cls.新着情報(, モニタリング, クラスター) end |