类:Mongo::Cluster::Topology::Base
Overview
定义所有拓扑共有的行为。
直接已知子类
LoadBalanced 、 ReplicaSetNoPrimary 、 Sharded 、 Single 、 Unknown
常量摘要
Loggable中包含的常量
实例属性摘要折叠
-
# Compatibility_error ⇒ 异常
只读
Compatibility_error 如果拓扑结构与驱动程序不兼容,则引发异常,其中包含有关不兼容的信息。
-
#logical_session_timeout ⇒ Integer?
只读
逻辑会话超时值(以分钟为单位)。
-
#monitoring ⇒ monitoring
只读
监控监控。
-
# options ⇒ 哈希
只读
选项 选项。
-
# server_descriptions ⇒ 哈希
只读
Server_descriptions 地址字符串到服务器描述的映射,集群中的每台服务器都有一个映射。
实例方法摘要折叠
-
#addresses ⇒ Array<String>
地址MongoDB Server地址。
-
#兼容? ⇒ true|false
Compatable 拓扑结构是否与驱动程序兼容。
-
# data_ Bearing_servers? ⇒ true | false
private
have_data_ Bearing_servers 拓扑结构是否具有任何数据承载服务器,用于逻辑会话超时计算。
-
#initialize (options, Monitoring, cluster) ⇒ 基础
构造函数
private
使用选项初始化拓扑结构。
-
# max_election_id ⇒ BSON::ObjectId
主节点报告的最大的 ElectionId。
-
#max_set_version ⇒ Integer
主节点报告的最大 setVersion。
- # new_max_election_id (description) ⇒ 对象 private
- # new_max_set_version (description) ⇒ 对象 private
-
# replica_set_name ⇒ string
获取为此拓扑配置的副本集名称。
-
# server_hosts_match_any? (patterns) ⇒ true | false
private
将每个服务器解决与模式列表进行比较。
Monitoring::Publishable 中包含的方法
#publish_cmap_event 、 #publish_event 、 #publish_sdam_event
Loggable中包含的方法
#log_debug 、 #log_error 、 #log_ Fatal 、 #log_info 、 #log_warn 、 #logger
构造函数详情
#initialize (options, Monitoring, cluster) ⇒基础
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
使用选项初始化拓扑结构。
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/ 集群/ 拓扑结构/base.rb', line 54 def 初始化(, 监控, 集群) = (, 集群) @options = @monitoring = 监控 @cluster = 集群 # 服务器描述列表在 # 拓扑创建。 如果服务器描述稍后发生变化, # 应创建新的拓扑结构实例。 @server_descriptions = {} 集群.server_list.每 do |server| @server_descriptions[server.地址.to_s] = server.描述 end if is_a?(LoadBalanced) @兼容 = true else 开始 server_descriptions.每 do |_address_str, desc| desc.功能.check_driver_support! 除非 desc.未知? end 救援 错误::不支持的功能 => e @兼容 = false @compatibility_error = e else @兼容 = true end end @have_data_ Bearing_servers = false @logic_session_timeout = server_descriptions.注入(nil) do |min, (_address_str, desc)| # 只能从承载数据的服务器读取 LST if desc.data_ Bearing? @have_data_ Bearing_servers = true 中断 除非 超时 = desc.logic_session_timeout [ 超时, min || 超时 ].min else min end end return 除非 mongo::Lint.已启用? 冻结 end |
实例属性详细信息
# Compatibility_error ⇒异常(只读)
返回 Compatibility_error 如果拓扑与驱动程序不兼容,则返回包含有关不兼容信息的异常。 如果拓扑结构与驱动程序兼容,则返回 nil。
148 149 150 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 148 def Compatibility_error @compatibility_error end |
#logic_session_timeout ⇒整数? (只读)
该值以分钟为单位,与驱动程序中的大多数其他时间以秒为单位返回不同。
逻辑会话超时值(以分钟为单位)。
158 159 160 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 158 def logic_session_timeout @logic_session_timeout end |
#监控⇒监控(只读)
返回监控监控。
115 116 117 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 115 def 监控 @monitoring end |
# options ⇒哈希(只读)
返回 options 选项。
102 103 104 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 102 def @options end |
# server_descriptions ⇒哈希(只读)
返回 server_descriptions 地址字符串到服务器描述的映射,集群中的每台服务器都有一个映射。
133 134 135 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 133 def server_descriptions @server_descriptions end |
实例方法详细信息
#addresses ⇒ Array<String>
返回地址 服务器地址。
110 111 112 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 110 def 地址 集群.地址.map(和:seed) end |
#兼容? ⇒ true|false
返回兼容拓扑结构是否与驱动程序兼容。
139 140 141 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 139 def 兼容? @兼容 end |
# data_ Bearing_servers? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 have_data_ Bearing_servers拓扑结构是否具有任何数据承载服务器,以用于逻辑会话超时计算。
165 166 167 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 165 def data_ Bearing_servers? @have_data_ Bearing_servers end |
# max_election_id ⇒ BSON::ObjectId
主节点报告的最大的 ElectionId。 可能为零。
175 176 177 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 175 def max_election_id [:max_election_id] end |
#max_set_version ⇒ Integer
主节点报告的最大 setVersion。 可能为零。
185 186 187 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 185 def max_set_version [:max_set_version] end |
# new_max_election_id (description) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
190 191 192 193 194 195 196 197 198 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 190 def new_max_election_id(描述) if 描述.election_id && (max_election_id.nil? || 描述.election_id > max_election_id) 描述.election_id else max_election_id end end |
# new_max_set_version (description) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
201 202 203 204 205 206 207 208 209 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 201 def new_max_set_version(描述) if 描述.set_version && (max_set_version.nil? || 描述.set_version > max_set_version) 描述.set_version else max_set_version end end |
# replica_set_name ⇒ string
获取为此拓扑配置的副本集名称。
125 126 127 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 125 def replica_set_name [:replica_set_name] end |
# server_hosts_match_any? (patterns) ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将每个服务器解决与模式列表进行比较。
220 221 222 223 224 225 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 220 def server_hosts_match_any?(模式) server_descriptions.任何? do |addr_spec, _desc| 地址, _port = addr_spec.拆分(' : ') 模式.任何? { |模式| 地址.end_with?(模式) } end end |