类: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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
使用选项初始化拓扑结构。
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 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 56 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.未知? desc.功能.check_driver_support! end 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 if mongo::Lint.已启用? 冻结 end end |
实例属性详细信息
# Compatibility_error ⇒异常(只读)
返回 Compatibility_error 如果拓扑与驱动程序不兼容,则返回包含有关不兼容信息的异常。 如果拓扑结构与驱动程序兼容,则返回 nil。
151 152 153 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 151 def Compatibility_error @compatibility_error end |
#logic_session_timeout ⇒整数? (只读)
该值以分钟为单位,与驾驶员中的大多数其他时间以秒为单位返回不同。
逻辑会话超时值(以分钟为单位)。
161 162 163 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 161 def logic_session_timeout @logic_session_timeout end |
#监控⇒监控(只读)
返回监控监控。
118 119 120 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 118 def 监控 @monitoring end |
# options ⇒哈希(只读)
返回 options 选项。
105 106 107 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 105 def @options end |
# server_descriptions ⇒哈希(只读)
返回 server_descriptions 地址字符串到服务器描述的映射,集群中的每台服务器都有一个映射。
136 137 138 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 136 def server_descriptions @server_descriptions end |
实例方法详细信息
#addresses ⇒ Array<String>
返回地址 服务器地址。
113 114 115 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 113 def 地址 集群.地址.map(和:seed) end |
#兼容? ⇒ true|false
返回兼容拓扑结构是否与驱动程序兼容。
142 143 144 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 142 def 兼容? @兼容 end |
# data_ Bearing_servers? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 have_data_ Bearing_servers拓扑结构是否具有任何数据承载服务器,以用于逻辑会话超时计算。
168 169 170 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 168 def data_ Bearing_servers? @have_data_ Bearing_servers end |
# max_election_id ⇒ BSON::ObjectId
主节点报告的最大的 ElectionId。 可能为零。
178 179 180 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 178 def max_election_id [:max_election_id] end |
#max_set_version ⇒ Integer
主节点报告的最大 setVersion。 可能为零。
188 189 190 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 188 def max_set_version [:max_set_version] end |
# new_max_election_id (description) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
193 194 195 196 197 198 199 200 201 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 193 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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
204 205 206 207 208 209 210 211 212 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 204 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
获取为此拓扑配置的副本集名称。
128 129 130 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 128 def replica_set_name [:replica_set_name] end |
# server_hosts_match_any? (patterns) ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
将每个服务器解决与模式列表进行比较。
223 224 225 226 227 228 |
# File 'lib/ Mongo/ 集群/ 拓扑结构/base.rb', line 223 def server_hosts_match_any?(模式) server_descriptions.任何? do |addr_spec, _desc| 地址, _port = addr_spec.拆分(/:/) 模式.任何? { |模式| 地址.end_with?(模式) } end end |