クラス: Mongo::Cluster::Triggers::Base

継承:
オブジェクト
  • オブジェクト
すべて表示
次による拡張機能。
転送可能
次のことが含まれます。
ログ可能 、監視::公開可能
定義:
lib/mongo/cluster/トポロジー/base.rb

Overview

すべてのトポロジに共通の動作を定義します。

以来

  • 2.7.0

既知のサブクラスを直接確認

LoadBalancedReplicaSetNoPrimaryShardedSingleUnknown

定数の概要

Loggableに含まれる定数

ログ可能::PRFIX

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

から含まれるメソッド::public

#publish_cmap_event#publish_event#publish_sam_event

Loggableに含まれるメソッド

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

コンストラクターの詳細

#初期化(オプション、モニタリング、クラスター) =ベース

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

オプションを使用してトポロジーを初期化します。

パラメーター:

  • options ハッシュ

    オプション。

  • モニタリング 監視

    の監視。

  • クラスター クラスター

    クラスター。

オプション ハッシュ( options ):

  • :replica_set 記号

    接続するレプリカセットの名前。 クラスターから名前を検索するには、空白のままにすることができます( nil または空のstringを受け入れ)。 アドレスが異なるレプリカセットに属している場合、どのレプリカセットが選択される保証はありません。特に、ドライバーは、別のレプリカセットに属するプライマリよりも前に応答を返す場合、セカンダリのレプリカセット名を選択する可能性があります。 このオプションは、レプリカセットのトポロジーをインスタンス化するときにのみ指定できます。

  • :max_election_id BSON::ObjectId

    SDAM 仕様あたりの最大選挙 ID。 このオプションは、レプリカセットのトポロジーをインスタンス化するときにのみ指定できます。

  • :max_set_version 整数

    SDAM 仕様に設定された最大バージョン。 このオプションは、レプリカセットのトポロジーをインスタンス化するときにのみ指定できます。

以来

  • 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
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、56 行

デフォルト 初期化(options, モニタリング, クラスター)
  options = validate_options(options, クラスター)

  @options = options
  @monitoring = モニタリング
  @cluster = クラスター
  サーバー説明のリストは、次の時点でのみ修正されます:
  # トポロジー作成。 サーバーの説明が後で変更された場合、
  # の新しいトポロジー インスタンスを作成する必要があります。
  @server_descriptions = {}
  (サーバー = クラスター.server_list). 行う |サーバー|
    @server_descriptions[サーバー.address.to_s] = サーバー.説明
  end

  場合 is_a?(LoadBalanced)
    @ Compatible = true
  else
    begin
      server_descriptions. 行う |address_str, desc|
        ただし、 desc.不明な場合
          desc.機能.checkpoint_ドライバ_サポート。
        end
      end
    ヘルプ エラー::サポートされていない機能 => e
      @ Compatible = false
      @Compatibility_error = e
    else
      @ Compatible = true
    end
  end

  @ha_data_bearing_servers = false
  @ logical_session_timeout = server_descriptions.inject(nil) 行う |min, (address_str, desc)|
    # LST はデータを保持するサーバーからのみ読み取られます
    場合 desc.data_bearing?
      @ha_data_bearing_servers = true
      break ただし、 タイムアウト = desc.logical_session_timeout
      [タイムアウト, (min || タイムアウト)].min
    else
      min
    end
  end

  場合 mongo::Lint.有効か
    freeze
  end
end

インスタンス属性の詳細

#互換性_エラー =例外(読み取り専用)

deployment_error を返します。トポロジーがドライバーと互換性がない場合、非互換性に関する情報を含む例外を返します。 トポロジーがドライバーと互換性がある場合は、 nil です。

次の値を返します。

  • 例外

    互換性_エラー トポロジーがドライバーと互換性がない場合、非互換性に関する情報の例外。 トポロジーがドライバーと互換性がある場合は、 nil です。

以来

  • 2.7.0



151
152
153
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、151 行

デフォルト 互換性_エラー
  @Compatibility_error
end

# logical_session_timeout =整数? (読み取り専用)

注:

値は 分単位であり、秒単位で返されるドライバーの他のほとんどの時間とは異なります。

論理セッション タイムアウト値(分単位)。

次の値を返します。

  • (Integer, nil)

    論理セッション タイムアウト。

以来

  • 2.7.0



161
162
163
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、161 行

デフォルト logical_session_timeout
  @ logical_session_timeout
end

#monitoringmonitoring (readonly)

モニタリングを返す。

次の値を返します。

  • (monitoring)

    「 監視 」を参照してください。

以来

  • 2.7.0



118
119
120
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、118 行

デフォルト モニタリング
  @monitoring
end

オプション=ハッシュ(読み取り専用)

オプション オプションを返します。

次の値を返します。

  • ハッシュ

    options のオプション。

以来

  • 2.7.0



105
106
107
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、105 行

デフォルト options
  @options
end

# server_descriptions =ハッシュ(読み取り専用)

server_descriptions クラスター内の各サーバーに 1 つずつ、アドレス文字列とサーバーの説明を返します。

次の値を返します。

  • ハッシュ

    server_descriptions クラスター内の各サーバーに 1 つある、アドレス文字列とサーバーの説明のマップ。

以来

  • 2.7.0



136
137
138
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、136 行

デフォルト server_descriptions
  @server_descriptions
end

インスタンス メソッドの詳細

アドレス= 個 =配列 <String>

サーバーのアドレスを返します。

次の値を返します。

  • <String>配列未満

    は、 サーバーのアドレスを指定します。

以来

  • 2.7.0



113
114
115
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、113 行

デフォルト address
  クラスター.address.map(&:シード)
end

互換性があるかどうか = true|false

互換性のあるトポロジーがドライバーと互換性があるかどうかを返します。

次の値を返します。

  • true|false

    互換性あり トポロジーがドライバーと互換性があるかどうか。

以来

  • 2.7.0



142
143
144
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、142 行

デフォルト 互換性があるかどうか
  @ Compatible
end

data_bearing_servers の数= true | false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

論理セッション タイムアウトを計算する目的で、トポロジーにデータを保持するサーバーがあるかどうかを返します。

次の値を返します。

  • true | false

    has_data_bearing_servers 論理セッション タイムアウトを計算する目的で、トポロジーにデータを保持するサーバーがあるかどうか。

以来

  • 2.7.0



168
169
170
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、168 行

デフォルト data_bearing_servers?
  @ha_data_bearing_servers
end

# max_election_id = BSON::ObjectId

プライマリによって報告された最大の electionId 。 場合は nil です。

次の値を返します。

  • BSON::ObjectId

    選挙 ID。

以来

  • 2.7.0



178
179
180
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、178 行

デフォルト max_election_id
  options[:max_election_id]
end

#max_set_versionInteger

プライマリによって報告された最大の setVersion 。 場合は nil です。

次の値を返します。

  • (整数)

    セットのバージョン。

以来

  • 2.7.0



188
189
190
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、188 行

デフォルト max_set_version
  options[:max_set_version]
end

# new_max_election_id (記述) =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.7.0



193
194
195
196
197
198
199
200
201
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、193 行

デフォルト new_max_election_id(説明)
  場合 説明.election_id & &
      (max_election_id.nil? ||
          説明.election_id > max_election_id)
    説明.election_id
  else
    max_election_id
  end
end

# new_max_set_version (記述) =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.7.0



204
205
206
207
208
209
210
211
212
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、204 行

デフォルト new_max_set_version(説明)
  場合 説明.set_version & &
      (max_set_version.nil? ||
          説明.set_version > max_set_version)
    説明.set_version
  else
    max_set_version
  end
end

# replica_set_name = string

このトポロジーに構成されたレプリカセット名を取得します。

例:

レプリカセット名を取得します。

topology.replica_set_name

次の値を返します。

  • ( string )

    構成されたレプリカセットの名前。

以来

  • 2.0.0



128
129
130
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、128 行

デフォルト replica_set_name
  options[:replica_set_name]
end

server_hosts_match_any? (パターン)=true| false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

各サーバーアドレスをパターン リストと比較します。

パラメーター:

  • pattern <String>配列未満

    各サーバーを比較するためのURLサフィックス 。

次の値を返します。

  • true | false

    アドレスのいずれかがパターンのいずれかに一致するかどうか。

以来

  • 2.7.0



223
224
225
226
227
228
# ファイル 'lib/mongo/cluster/トポロジー/base.rb' は、223 行

デフォルト server_hosts_match_any?(pattern)
  server_descriptions.any? 行う |addr_spec, _desc|
    addr, _port = addr_spec.分裂(/:/)
    pattern.any? { |パターン| addr.end_with?(パターン) }
  end
end